UOFastMCP
Enables interaction with U2 UniData/UniVerse databases through MCP tools for file, record, dictionary, and BP program operations, with built-in admin UI, JWT authentication, RBAC, and audit logging.
README
UOFastMCP
Enterprise MCP server for U2 UniData/UniVerse — JWT auth, RBAC, audit logging, built-in admin UI to simplify the setup process.
Developer: RokiPark · License: MIT · Python: 3.11+
Install & Run
# 1. Create a folder and virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 2. Install
pip install uofast-mcp
# 3. Set required env var
export JWT_SECRET_KEY=$(python -c "import secrets; print(secrets.token_hex(32))")
# Windows: set JWT_SECRET_KEY=<paste output of above>
# 4. Start
uofast-mcp
Server starts at http://localhost:8000
First-Time Setup
- Open http://localhost:8000/admin
- Log in:
admin/changeme123!

- Click Server Setup in the left menu

- Follow the 5-step wizard:
- Check prerequisites
- Set JWT secret + change admin password
- Configure your U2 connection (with live test)
- Review generated
.envandunidata_config.ini - Copy your Claude / VSCode / CLI connection config

Connect Claude
Run the command from Step 5 of the wizard, or get it any time from http://localhost:8000/auth/login.
claude mcp add --transport sse UOFastMCP http://localhost:8000/sse \
--header "Authorization: Basic <your-base64-token>"
MCP Tools (20 tools)
| Category | Tools |
|---|---|
| Connections | list_connections, add_connection, close_connection |
| Files & Records | list_files, select_records, read_record, query_file, read_record_with_fields, write_record_with_fields |
| Dictionary | get_dict_items, query_with_dict_fields, read_dict_item, write_dict_item, update_dict_item, delete_dict_item |
| Commands & BP | execute_command, read_bp_program, write_bp_program, compile_bp_program |
Roles
| Role | Access |
|---|---|
admin |
Everything |
developer |
Read/write records, DICT, BP + manage connections |
analyst |
Read records, DICT + execute commands |
readonly |
Read connections, files, records, DICT |
service_account |
Same as readonly — customisable |
Manage users and permissions at http://localhost:8000/admin.
Admin UI
http://localhost:8000/admin — login with admin credentials.
| Section | URL | Purpose |
|---|---|---|
| Users | /admin/user/list |
Create/edit users, assign roles |
| Roles / Permissions | /admin/role/list |
Manage RBAC |
| Audit Logs | /admin/auditlog/list |
Every tool call logged — read-only |
| UniData Connections | /admin/connections |
View unidata_config.ini, test connections live |
| Server Setup | /admin/setup |
Change password, JWT secret, U2 connection |
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
JWT_SECRET_KEY |
Yes | — | Long random string — keep secret |
INITIAL_ADMIN_PASSWORD |
No | changeme123! |
Admin password on first startup |
DATABASE_URL |
No | sqlite+aiosqlite:///./data/security.db |
Security DB location |
ENABLE_DOCS |
No | true |
Set false to hide /docs in production |
API Endpoints
| Endpoint | Auth | Description |
|---|---|---|
GET /health |
None | Health check |
GET /sse |
Basic | MCP SSE connection |
GET/POST /auth/login |
None | Login page — returns ready-to-use connection config |
POST /auth/provision |
Admin | Create user + return their connection command |
GET /admin |
Admin session | Web admin UI |
GET /admin/connections |
Admin session | View UniData connections from unidata_config.ini |
GET /admin/setup |
Admin session | Server setup wizard |
GET /docs |
None | Swagger UI |
Troubleshooting
Server won't start — JWT_SECRET_KEY not set, or port 8000 in use (uvicorn uofast_mcp.app:app --port 8001).
401 Unauthorized — get credentials from /auth/login.
403 Forbidden — user's role lacks the required permission; check Admin → Role Permissions.
U2 connection fails — re-run Server Setup wizard to update credentials and test live.
Reset everything — delete data/security.db and restart (loses all users and audit logs).
License
MIT — © 2025 RokiPark. All rights reserved.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.