Skip to main content
Glama
ttacleinad-boop

Universal MCP Tool Framework

Universal MCP Tool Framework

Una base reutilizable en Python para herramientas del Model Context Protocol. El framework centraliza el registro de herramientas, el descubrimiento, los permisos, la separación por modos de operación, los errores estructurados, el registro de logs, la configuración, la salida de salud/estado y las convenciones de extensión.

Límites de diseño

El framework es una base para servidores MCP, no un shell genérico, un controlador del sistema de archivos ni un motor de políticas. Las herramientas se registran explícitamente y pasan por una única frontera de permisos.

Modo de funcionamiento

Por defecto

Requisito

read

Habilitado

La herramienta debe estar registrada como de solo lectura.

write

Deshabilitado

La configuración habilita write y el llamador dispone del ámbito declarado.

execute

Deshabilitado

La configuración habilita execute y el llamador dispone del ámbito declarado.

Una herramienta debe superar ambas comprobaciones: que su modo de operación esté habilitado y que sus ámbitos requeridos estén presentes en el contexto de ejecución.

Related MCP server: achmadya-dev/mcp-core

Superficie incluida

Capacidad

Implementación

Servidor MCP estándar

server.py expone mcp para el SDK oficial de MCP para Python.

Registro y descubrimiento

ToolRegistry gestiona el registro explícito y devuelve los metadatos públicos de las herramientas.

Modelo de permisos

ToolRuntime hace cumplir los modos de operación habilitados y los ámbitos por herramienta.

Separación de lectura/escritura/ejecución

OperationMode es obligatorio para cada herramienta. El valor por defecto es solo lectura.

Gestión de errores y registros

Cada ejecución devuelve una estructura de resultado estable; los solictudes rechazaas y fallidas se registran en el registr.

Configación

config.example.json controla la indentidad del servidor, los modos habilitaos y el niel de registro.

Salud/estado

framework_health, framework_status y framework_discover_tools son herramientas MCP.

Herramientas de ejempo

Las herramientas de lectra de hora, escritura de notas similada y ejecución de verificacción simlada demuestran todos los modos.

Vía de extensión

Un solo decorador registra cada nuava herramienta; el runtime aporta todos los controlos comunes.

Requisitos

  • Python 3.10+

  • El SDK oficial de MCP para Python, filjado en mcp==2.0.0

Inicio rápido

python -m venv .venv
. .venv/bin/activate
pip install -e .
python -m unittest discover -s tests -p "test_*.py"

Inicie el servidor mediante el SDK de MCP:

mcp run server.py

Para desarrollo interativo con MCP Inspector:

mcp dev server.py

Configración

Copie y modifique el ejemplo solor si se requieren operaciones diferentes de la lectura.

{
  "server_name": "Universal MCP Tool Framework",
  "enabled_modes": ["read"],
  "log_level": "INFO"
}

read es el único modo habilitado por defecto. Para permitir una herramienta de escritura registrada, añada write; para permitir una herramienta de ejecución registrada, añada execute. Habilitar un modo no evita los ámbitos requeridos por herramienta.

Inicie el servidor con un archivo de configración elgido:

UNIVERSAL_MCP_CONFIG=config.json mcp run server.py

Añadir una herramienta

  1. Elija un mod de operación.

  2. Declare todos los ámbitos noncesarios.

  3. Registro el manejador mediante ToolRegistry.

  4. Añada una prueba para el descubrimiento, la ejecución permita y las rutas de rechazo.

  5. Expongra un manejador MCP ligero sol si la herramient-a pertence a la supeficie pública del servidor.

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}

Inloqué la a través de ToolRuntime.execute() para que el entrato común de permisos, logs y erroros se apliquie siempre.

Contrato de resulados

Todas las ejecuciones del entorno en runtime production esta esstructura de resultado estable:

{
  "ok": true,
  "data": {},
  "error": null
}

Los solitudes rechazadas y fildidas usan ok: false y un códugo de eroro diferencial por máquina como tool_not_found, permission_denied o tool_ezucución_failed.

Estructura del repositorio

.
├── 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.py

Validación

python -m unittest discover -s tests -p "test_*.py"

La suite de pruebas verifica el descubrimiento, el acceso de solo lecturas por defecto, la denegación de write/execute por defecto, el cumplimiento de los ámbitos, los erroes estructurados, la salida de estado y la configurización JSON.

Kit universal de scaffholding de proyectos

El repositorio proporciona también umcp-scaffold, un generador cotrolado para el arranque repetble de proyectos Pythón.

Plantilla de proyecto

Capacidad generada

python-library

Paquete src/ instalable, plantilla de pruebas unitarias, configración de desarrollo/produceción, scripts de configurización, documentación, estad de proyecto e inicializción de Git.

mcp-tool

Todo lo incluido en python-librar y icho un punto de entraad estándar de servidor MCP y la dependencia fija del Pallar libreo.

umcp-scaffold create "My Project" ./my-project --type mcp-tool

Cree un proyecto comp letamente iniaciizado. Por defect, el generador creare repositorio Git loc, creare un .Venv aislao, instale de pependencias localos y valide el proyecto generado.

umcp-scaffold validate ./my-project

Valid e intermedi de propyectos generados:

umcp-quality ./my-project
umcp-quality ./my-project --format markdown

Cada proyeto generado recibe un .project-state.json con su esada de versión, nombre, nombre del paquete, tipo de plantilla, estad de cilo de vida, indicadores de Git/dependencias, hora de creción y últimes estad de validación. El generador recha los diretorios destino no vacíos en vez de sobreescribir un proyeto.

Kit de análisis de código local y de pruebas

umcp-quality inspecciona un proyco Python local y produce un reporte de calidad legieble por máququinna con resultados PASS, FAIL y WARNING.

umcp-quality ./my-project
umcp-quality ./my-project --format markdown

Prueba

Resultado

Análisis estátco de código

Analia todos los archivos fuentes Pythons y reporta errores de sintáxis.

Análisis de dependencias

Vería los metadados de pyproject.toml `y informa si existe un entorno virutal en el proyeto.

Detección de errorres

Entraa en el informe errores de sintaxis, configuración, prueas y fallas de compilación de código.

Descumbrimiento y ejecución de pruebas

Descubre los test_*.py y acepta el runner de pruebas de la biblioteca stándar.

Verificción de compilación

Compila src/ sin modificar el proy.

Validación de configuración

Valida archivos JSON bajo confi/.

Informe de diffs/regresiones

Usa Git estatus para marcar cambios no confirmados; sin mutación de Git.

Informe de salud / estado

Devuélve un contat agregado y un PASS/FAILE/WARNING globl.

FAIL produce un estatus de salida de comando diferente de cero. WARNING indica a una condición incompleta pero no fallida, como la ausencia de un entorno virtual, de pruebas, de directorio de configuración o historial de Git no disponible.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides a shared MCP SDK wrapper for building MCP servers with stdio transport, tool registration, JSON-safe responses, and environment helpers.
    26
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Universal MCP proxy server that discovers, searches, and executes tools across all configured MCP servers from a single entry point.
    7
  • F
    license
    Not graded
    quality
    C
    maintenance
    Framework for building and running MCP servers as HTTP services. Define tools as pure Python functions, wire up with two lines, run with one command.

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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