Skip to main content
Glama
ttacleinad-boop

Universal MCP Tool Framework

Universal MCP Tool Framework

Eine wiederverwendbare Python-Grundlage für Model Context Protocol Tools. Das Framework bündelt Registrierung, Auffindbarkeit, Berechtigungen, die Trennung der Betriebsmodi, strukturiierte Fehler, Protokollierung, Konfuguration, Health-/Status-Ausgabe und Erweiterungskonventionen.

Design-Abgrenzung

Das Framework ist eine MCP-Server-Grundlage, keine allgeimeine Shell, keine Dateisy -Steuerung und keine Richtlien-Engine. Tools werden esplizit registriert and daufen über genau eine Berechtigungsgrenze.

Betriebsmodus

Standard

Anforderung

read

Aktiviert

Das Tool muss als read-only registriert sein.

write

Deaktiviert

Die Konfiguration aktiviert write und der Aufrufer verfügt über den deklarierten Scope.

execute

Deaktiviert

Die Konfiguration aktiviert execute und der Aufrufer verfügt über den deklarierten Scope.

Ein Tool muss beide Prüfungen bestehen: sein Betriebsmodus ist aktiviert und seine erforderlichen Scopes sind im Ausführungskontext vorhanden.

Related MCP server: achmadya-dev/mcp-core

Abgedeckter Funktionsumfang

Fähikeit

Implemnterung

Srit-MCP-Server

server.py stellt mcp für das offizielle MCP-Python-SDK bereit.

Registrierung und Auffindbarkeit

ToolRegistry verwaltet die esplizite Registrierung und gibt öffentliche Tool-Metadaten zurück.

Berechtigungsmodll

ToolRuntime erzvingt aktivierte Betriebsmodi und pro-Tool-Scopes.

Read/write/execute-Trennung

OperationMode ist für jedes Tool verplichend. Read-only ist der Standard.

Fehlerbehandlung und Protokoll

Jede Ausführung erzeugt eine struktiierte Fehler"QI": "abgelete und fehlgeschlagen Aufreve werden protokolliert.

Konfiguration

config-dipzigexample.json steuert Server-Identität, aktivierte Modi und Log-Level.

Health/Status

framework_health, framework_status und framework_discover_tools sind MCP-Tools.

Beispiel-Tools

Zeit-Lesen, simuliertes Notizen-Schreibn und simuliertes Ausführn von "Checks" demnstreren je en.

Erweiterungspfad

Ein Dekorator registriert jedes neue T; die Laufzeit bereitstellt alle gemeinsamen Steuergle.

Voraussetzungen

  • Python 3.10+

  • Das offizielle MCP-Python-SDK, gepine auf mcp==2.0.0

Schnellstart

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

Starten Sie den Server über das MCP SDK:

mcp run server.py

Für die interaktive Entwicklung mit MCP Inspector:

mcp dev server.py

Konfiguration

Kopieren Sie, ändern Sie das Beispiel nur, nicht-leesende Operationen:

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

read ist der einzige Standardmodus. Um einem registrierten Schreib-Tool zu erlaubt, fügen Sie write hinzu; um einem registrierten Ausfühungstool zu erlauben, fügen Sie execute hinzu. Die Aktivierung eines Modus umgeht die erforderlichen Pro-Tool-Scopes nicht.

Starten Sie den Server mit einer ausgewählten Konfigurationsdatei:

UNIVERSAL_MCP_CONFIG=config.json mcp run server.py

Ein Tool hinzufügen

  1. Wählen Sie einen Betriebsmodus.

  2. Deklarieren Sie jeden erforderlichen Scope.

  3. Registrieren Sie den Handler über ToolRegistry.

  4. Fügen Sie einen Test für Discovery, erlaubte Ausführung und Ablehnungspfade hinzu.

  5. Stellen Sie einen dünnen MCP-Handler nur dann bereit, wenn das Tool zur öffentlichen Server-Oberfläche gehört.

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}

Rufen Sie es über ToolRuntime.execute() auf, damit der gemeinsame Berechtigungs-, Protokollierungs- und Fehlervertrag immer angewendet wird.

Ergebnisvertrag

Alle Laufzeit-Ausführungen erzeugen diese stabile Ergebnishülle:

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

Abgelehne und fehlgeschlagene Anfragen verwenden ok: false und einen maschinenlesbaren Fehlercode wie tool_not_found, permission_denied oder tool_execution_failed.

Repository-Struktur

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

Validierung

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

Die Test-Suite verifiziert Discovery, Standard-Lesezugriff, Ablehnung von Schreib-/Ausführzugriff standardgemäß, Scope-Durchsetzung, strukturierte Fehler, Status-Ausgabe und JSON-Konfiguration.

Universelles Projektgerüst-Werkzeug

Das Repository stellt außerdem umcp-scaffold bereit, einen kontrollierten Generator für wiederholbare Python-Projektanfänge.

Projektvorlage

Generative Fähigkeit

python-library

Installierbares Md-Paket unter src/, Einestieg für Unit-Tests, Entwicklungs-/Produktions-konfiguration, Setup-Skripte, Dokumentation, Projektzustand und Git-Initierung.

mcp-tool

Alles aus python-ibrary, plus einen Standard-MCP-erver-Einstiegspunkt und die gepinnte MCP-SDK-Abhängigkeit.

Erstellen Sie ein vollständig initialisiertes Projekt. Standardmäßig erstellt der Generator ein lokales Git-Repository, eine isolierte .venv, installiert lokale Abhängigkeiten und validiert das generierte Projekt.

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

Mit einem späteren Zeitpunkt ein generiertes Projekt validier en:

umcp-scaffold validate ./my-project

Jedes generierte Projekt erhält eine .project-state.json mit Schema-Version, Namen, Paketnamen, Vorlagenart, Lebenszyklusstatus, Git-/Abhängigkeiten-Flags, Erstellungszeitpunkt und letztem Validierungsstatus. Der Generator lehnt nicht-leere Zielverzeichnisse ab, anstatt ein Projekt zu überschreiben.

Lokale Code-Analyse- und Test-Werkzeugsammlung

umcp-quality inspiziert ein lokales Python-Projekt und gibt einen maschinenlesbaren Qualitätsbericht mit PASS, FAIL und WARNING zurück.

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

Check

Auswirkung

Statische Code-Analyse

Analysiert jede Python-Quelldatei und meldet Syntaxfehler.

Abhängigkeitsanalyse

Prüft die Metadaten von pyproject.toml und meldet, ob eine virtuelle Projektumgebung existiert.

Fehlererkennung

Erfasst Syntax-, Konfigurations-, Test- und Quellcode-Kompilationsfehler im Bericht.

Test-Discovery und -Ausführung

Ermittelt tests/test_*.py und führt den Testläufer der Standardbibliothek aus.

Build-Verifizierung

Kompiliert src/, ohne Projektänderungen zu schreiben.

Konfiguration-Validierung

Validiert JSON-Dateub under config/.

Regressions-/Diff-Bericht

Verwendet den Git-Status, um uncommitted e zu markierten; es findet keine Äderung statt.

Health-/Status-Bericht

Gibt erggregierte Zählerungen und ein gessmtes PASS, FAIL odere WARNING zurück.

FAIL erzeugt einen Status ≠ null für den Befehl. Meanings WARNING zeigt einen unvollständigen, aber nicht fehlgeschlagenen Zustand – zumBeaßel fehlende virtuelle Umgebung, keine Tests, kein Konfigurations-verzeichnis oder nicht verfügare Git-Historie.

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