Enterprise MCP server for U2 UniData/UniVerse — JWT auth, RBAC, audit logging, admin UI
Project description
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 | Purpose |
|---|---|
| Users | Create/edit users, assign roles |
| Roles / Permissions | Manage RBAC |
| Audit Logs | Every tool call logged — read-only |
| Server 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/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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uofast_mcp-1.1.4.tar.gz.
File metadata
- Download URL: uofast_mcp-1.1.4.tar.gz
- Upload date:
- Size: 64.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e64abc7799bdbe453fe1336f71cc544e008acb778d9cbaf5cf8fa6c03625a31e
|
|
| MD5 |
ed7ef7061595ff8a595925ee4dfd16ad
|
|
| BLAKE2b-256 |
d0e39066dae241b20c53f456a0ac117dcf3849992179d8b4a5069f680bc8622a
|
File details
Details for the file uofast_mcp-1.1.4-py3-none-any.whl.
File metadata
- Download URL: uofast_mcp-1.1.4-py3-none-any.whl
- Upload date:
- Size: 73.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57c2987c6d80c68c3747c53dd5736eaea04143c8bfd2316b5eec1b57215874bf
|
|
| MD5 |
9e775bc0a2d21be3d5c27e8d0c5c01e3
|
|
| BLAKE2b-256 |
32cf94a1d82f204c875291c30962c115ccf342601a322ed7393a8becc154cca3
|