UVG Local MCP Server
UVG Local MCP Server
Autor: Anggelie Velásquez — Matrikelnummer 221181 Universidad del Valle de Guatemala — Kurs CC3067
1. Beschreibung
Lokaler MCP-Server (Model Context Protocol), von Grund auf in Standard-Python 3 implementiert, ohne FastMCP oder ein offizielles MCP-SDK. Der Server kommuniziert über stdio mit einem Client und verwendet manuell implementiertes JSON-RPC 2.0.
Related MCP server: @belal-elsabbagh-apex/copilot-mcp
2. Ziel
Die Kenntnis des Lebenszyklus eines MCP-Servers (initialize → notifications/initialized → tools/list → tools/call) demonstrieren, indem das Protokoll manuell aufgebaut wird, ohne auf Bibliotheken zurückzugreifen, die diese Logik verbergen.
3. Architektur
Cliente MCP <-- stdio (stdin/stdout) --> server.py
│
┌─────────┴─────────┐
│ │
jsonrpc.py tools.py
(formato JSON-RPC 2.0) (herramientas)server.py: Einstiegspunkt, Leseschleife für stdin und Methodenrouting.jsonrpc.py: Erstellung von JSON-RPC-2.0-Antworten/-Fehlern und grundlegende Validierung.tools.py: zentrale Registrierung von Werkzeugen (Metadaten + Schema + Ausführungsfunktion).
4. Verwendetes Protokoll
Transport: stdio (Standard-Eingabe / Standard-Ausgabe).
Framing: eine JSON-RPC-2.0-Nachricht pro Zeile (JSON Lines / NDJSON). Es wird kein
Content-Length-Framing verwendet.Nachrichtenformat: JSON-RPC 2.0, manuell implementiert (ohne JSON-RPC- oder MCP-Bibliotheken).
Gemeldete MCP-Protokollversion:
2024-11-05(FeldprotocolVersionin der Antwort aufinitialize).stdoutist ausschließlich für JSON-RPC-Antworten reserviert. Alle Logs werden anstderrgesendet.
5. Implementierte MCP-Methoden
Methode | Typ | Beschreibung |
| Anfrage | Gibt |
| Benachrichtigung | Bestätigung des Clients; erzeugt keine Antwort. |
| Anfrage | Gibt die Liste der verfügbaren Werkzeuge mit ihrem |
| Anfrage | Führt ein Werkzeug mit den empfangenen Argumenten aus. |
Jede andere Methode gibt den JSON-RPC-Fehler -32601 Method not found zurück.
6. Verfügbare Werkzeuge
analizar_texto
Eingabe: { "texto": "Hola mundo" }
Gibt zurück: Anzahl der Zeichen, Anzahl der Wörter, Anzahl der Zeilen, Text in Groß- und Kleinschreibung.
calcular_estadisticas
Eingabe: { "numeros": [10, 20, 30, 40] }
Gibt zurück: Anzahl, Summe, Durchschnitt, Minimum und Maximum.
Validiert, dass numeros eine nicht leere Liste mit ausschließlich numerischen Werten ist.
informacion_sistema
Ohne Argumente. Gibt zurück: Betriebssystem, Python-Version, Plattform und aktuelles Arbeitsverzeichnis. Gibt keine Passwörter, Tokens, Umgebungsvariablen oder Dateiinhalte preis.
7. Anforderungen
Python 3.8 oder höher.
Es sind keine externen Abhängigkeiten erforderlich (siehe requirements.txt).
8. Installation
git clone https://github.com/Anggelie/mcp-local-server-uvg.git
cd mcp-local-server-uvg9. So führen Sie den Server manuell aus
In PowerShell wartet der Server auf Nachrichten über stdin:
python src/server.pySie können eine JSON-Zeile schreiben und die Eingabetaste drücken, zum Beispiel:
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {}}Der Server antwortet mit einer JSON-Zeile auf stdout. Zum Beenden drücken Sie Ctrl+Z und dann Enter (Ende von stdin unter Windows).
Sie können auch die gesamte Beispieldatei auf einmal senden:
Get-Content examples/requests.jsonl | python src/server.py10. So testen Sie es
Automatische Tests (unittest)
python -m unittest discover tests -vDemo-Client (Unterprozess)
python examples/test_client.pyDieses Skript startet src/server.py als Unterprozess und führt automatisch den Zyklus initialize -> initialized -> tools/list -> tools/call für die 3 Werkzeuge aus, zusätzlich zu einem Fall einer nicht existierenden Methode.
11. So konfigurieren Sie es in einem MCP-Client
Eine Beispielkonfiguration ist in client-config/claude_desktop_config.example.json enthalten:
{
"mcpServers": {
"uvg-local-server": {
"command": "python",
"args": [
"C:\\RUTA\\AL\\PROYECTO\\src\\server.py"
]
}
}
}Wichtig: Ersetzen Sie C:\RUTA\AL\PROYECTO durch den tatsächlichen Pfad, in dem Sie dieses Repository auf Ihrem Rechner geklont haben.
12. Beispiele
Siehe examples/requests.jsonl, das eine JSON-RPC-Nachricht pro Zeile enthält und initialize, notifications/initialized, tools/list und tools/call für die drei Werkzeuge sowie Fehlerfälle abdeckt.
13. Projektstruktur
mcp-local-server-uvg/
│
├── src/
│ ├── server.py # Punto de entrada del servidor
│ ├── jsonrpc.py # Utilidades JSON-RPC 2.0
│ └── tools.py # Registro de herramientas
│
├── tests/
│ ├── test_jsonrpc.py
│ └── test_tools.py
│
├── examples/
│ ├── requests.jsonl
│ └── test_client.py
│
├── client-config/
│ └── claude_desktop_config.example.json
│
├── .gitignore
├── requirements.txt
├── README.md
└── README_ES.md14. Fehlerbehandlung
Die Standard-JSON-RPC-2.0-Codes werden implementiert:
Code | Bedeutung | Wann es auftritt |
| Parse-Fehler | Die empfangene Zeile ist kein gültiges JSON. |
| Ungültige Anfrage |
|
| Methode nicht gefunden | Die angeforderte Methode ist nicht implementiert. |
| Ungültige Parameter | Fehlende oder falsch typisierte Argumente in |
| Interner Fehler | Unerwarteter Fehler während der Ausführung (sollte den Server nicht zum Absturz bringen). |
This server cannot be deployed
Maintenance
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Model Context Protocol server for Studex tools, notifications, and profile integrations
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides file reading and mathematical calculation tools through the Model Context Protocol. Enables reading file contents and evaluating mathematical expressions via stdio transport.-
- FlicenseNot gradedqualityAmaintenanceEnables EHR Copilot operations such as order cloning, queue building, and execution trace analysis over stdio.-
- AlicenseNot gradedqualityCmaintenanceEnables local tool calling over Model Context Protocol via stdio, providing deterministic tools such as calc.add, text.word_count, and text.summarize_naive after JSON-RPC handshake and discovery.MIT
- AlicenseNot gradedqualityBmaintenanceProvides a production-ready Model Context Protocol server with dual STDIO and Streamable HTTP transports, enabling file operations, memory, database queries, RAG, web search, GitHub integration, background tasks, and prompt-based workflows.MIT