Universal MCP Tool Framework
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Universal MCP Tool FrameworkWhat tools are registered?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Universal MCP Tool Framework
A reusable Python foundation for Model Context Protocol tools. The framework centralises registration, discovery, permissions, operation-mode separation, structured errors, logging, configuration, health/status output, and extension conventions.
Design Boundary
The framework is an MCP server foundation, not a generic shell, filesystem controller, or policy engine. Tools are registered explicitly and run through one permission boundary.
Operation mode | Default | Requirement |
| Enabled | Tool must be registered as read-only. |
| Disabled | Configuration enables |
| Disabled | Configuration enables |
A tool must pass both checks: its operation mode is enabled and its required scopes are present in the execution context.
Related MCP server: achmadya-dev/mcp-core
Included Surface
Capability | Implementation |
Standard MCP server |
|
Registration and discovery |
|
Permission model |
|
Read/write/execute separation |
|
Error handling and logging | Every execution returns a structured result envelope; rejected and failed calls are logged. |
Configuration |
|
Health/status |
|
Example tools | Time read, simulated note write, and simulated check execute tools demonstrate every mode. |
Extension path | One decorator registers each new tool; the runtime supplies all common controls. |
Requirements
Python 3.10+
The official MCP Python SDK, pinned to
mcp==2.0.0
Quick Start
python -m venv .venv
. .venv/bin/activate
pip install -e .
python -m unittest discover -s tests -p "test_*.py"Start the server through the MCP SDK:
mcp run server.pyFor interactive development with MCP Inspector:
mcp dev server.pyConfiguration
Copy and modify the example only when non-read operations are required.
{
"server_name": "Universal MCP Tool Framework",
"enabled_modes": ["read"],
"log_level": "INFO"
}read is the only default mode. To permit a registered write tool, add write; to permit a registered execution tool, add execute. Enabling a mode does not bypass required per-tool scopes.
Start the server with a selected configuration file:
UNIVERSAL_MCP_CONFIG=config.json mcp run server.pyAdd a Tool
Choose one operation mode.
Declare every required scope.
Register the handler through
ToolRegistry.Add a test for discovery, allowed execution, and rejection paths.
Expose a thin MCP handler only if the tool belongs in the public server surface.
from universal_mcp.models import OperationMode
from universal_mcp.registry import ToolRegistry
registry = ToolRegistry()
@registry.register(
name="inventory_get_item",
description="Return one inventory item by stable identifier.",
mode=OperationMode.READ,
required_scopes={"inventory:read"},
)
def inventory_get_item(item_id: str) -> dict[str, str]:
return {"item_id": item_id}Call it through ToolRuntime.execute() so the common permission, logging, and error contract always applies.
Result Contract
All runtime executions produce this stable envelope:
{
"ok": true,
"data": {},
"error": null
}Rejected and failed requests use ok: false and a machine-readable error code such as tool_not_found, permission_denied, or tool_execution_failed.
Repository Structure
.
├── config.example.json
├── pyproject.toml
├── server.py
├── src/universal_mcp/
│ ├── config.py
│ ├── examples.py
│ ├── models.py
│ ├── registry.py
│ ├── runtime.py
│ └── server.py
└── tests/test_framework.pyValidation
python -m unittest discover -s tests -p "test_*.py"The test suite verifies discovery, default read access, write/execute denial by default, scope enforcement, structured errors, status output, and JSON configuration.
Universal Project Scaffolding Toolkit
The repository also provides umcp-scaffold, a controlled generator for repeatable Python project starts.
Project template | Generated capability |
| Installable |
| Everything in |
Create a fully initialized project. By default, the generator creates a local Git repository, creates an isolated .venv, installs local dependencies, and validates the generated project.
umcp-scaffold create "My Project" ./my-project --type mcp-toolValidate a generated project later:
umcp-scaffold validate ./my-projectEvery generated project receives .project-state.json with its schema version, name, package name, template type, lifecycle state, Git/dependency flags, creation time, and last validation state. The generator rejects non-empty target directories rather than overwriting a project.
Local Code Analysis and Testing Toolkit
umcp-quality inspects a local Python project and returns a machine-readable quality report with PASS, FAIL, and WARNING results.
umcp-quality ./my-project
umcp-quality ./my-project --format markdownCheck | Outcome |
Static code analysis | Parses every Python source file and reports syntax errors. |
Dependency analysis | Verifies |
Error detection | Captures syntax, configuration, test, and source-compilation failures in the report. |
Test discovery and execution | Discovers |
Build verification | Compiles |
Configuration validation | Validates JSON files under |
Regression/diff reporting | Uses Git status to flag uncommitted changes; no Git mutation is performed. |
Health/status report | Returns aggregate counts and an overall PASS, FAIL, or WARNING. |
FAIL produces a non-zero command exit status. WARNING indicates an incomplete but non-failing condition, such as no virtual environment, no tests, no configuration directory, or unavailable Git history.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP hub server that aggregates tools from multiple domain packages into a single globally-available interface.1MIT
- AlicenseNot gradedqualityAmaintenanceProvides a shared MCP SDK wrapper for building MCP servers with stdio transport, tool registration, JSON-safe responses, and environment helpers.26MIT
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
MCP server for the Inistate platform: module discovery, entry management, and activity submission.
A basic MCP server to operate on the Postman API.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ttacleinad-boop/Universal-MCP-Tool-Framework'
If you have feedback or need assistance with the MCP directory API, please join our Discord server