rag-tool-agent
RAG Tool Agent — MCP Server
Stellt die beiden Werkzeuge hinter dem Projekt rag-tool-agent-demo (retrieval-gestütztes Q&A über Notizen des FordA-Datensatzes und einen sicheren arithmetischen Taschenrechner) als einen richtigen Server für das Model Context Protocol bereit, sodass jeder MCP-kompatible Client — Claude Desktop, eine MCP-fähige Agent-Umgebung oder ein benutzerdefinierter Host — sie direkt aufrufen kann, statt nur über die eigene CLI des Projekts oder über den Flask-HTTP-Wrapper in rag-tool-api-docker.
Entwickelt, um eine konkrete, benannte Lücke zu schließen: Mehrere aktuelle Stellenausschreibungen im Bereich KI-Engineering/Agentic-Anwendungen verlangen ausdrücklich praktische Erfahrung mit MCP (und verwandten Agent-to-Agent-/Agent-to-UI-Protokollen). Dies ist eine kleine, echte, getestete Implementierung, keine Behauptung von Protokollerfahrung ohne Belege dahinter.
Warum es so aufgebaut ist
Der ursprüngliche Agent übernimmt sein Routing intern — ein handgeschriebenes if/else, das für jede eingehende Frage entscheidet: „calculator“ vs. „retrieval“ vs. „direct answer“. MCP kehrt das um: Der Client (der LLM-/Agent-Host) übernimmt das Routing, indem er Name, Beschreibung und JSON-Schema-Parameter jedes Tools liest und entscheidet, welches aufgerufen werden soll. Dieser Server implementiert also nicht die ursprüngliche Routing-Logik neu — er stellt die beiden zugrunde liegenden Fähigkeiten als eigenständige, unabhängig aufrufbare MCP-Tools bereit und überlässt das Routing jedem MCP-Client selbst. Das ist der eigentliche Punkt des Protokolls: Tools werden host-agnostisch, statt fest in die Dispatch-Logik eines einzelnen Agenten verdrahtet zu sein.
search_notes(query: str) -> str— eine Suche im Retrieval-Stil über ein kleines eingebettetes Notizkorpus zum FordA-Datensatz, zurückgegeben mit demselben Provenienz-Suffix[Grounded in N retrieved chunk(s) from ...], das auch der ursprüngliche Agent verwendet, damit ein Client eine fundierte Antwort von einer nicht fundierten unterscheiden kann. Verwendet einen einfachen Keyword-Overlap-Ranker, anstatt den FAISS-/Embeddings-Index des ursprünglichen Projekts neu abzuleiten — der Sinn dieses Projekts ist die MCP-Expositionsebene, nicht die Duplizierung dieser Arbeit.calculate(expression: str) -> str— Arithmetik-Tool, beschränkt auf+ - * / ()und numerische Literale; es wird ein sicherer Evaluator auf Basis vonastverwendet (kein bloßeseval()für beliebige Eingaben). Es wurde verifiziert, dass sowohl nicht-arithmetische Eingaben als auch Injektionsversuche wie__import__('os').system(...)abgelehnt werden.Erstellt mit dem offiziellen
mcp-Python-SDK (FastMCP), demselben SDK, das Anthropic für den Bau von MCP-Servern veröffentlicht.
Related MCP server: rag-mcp
Ausführen
pip install -r requirements.txt
python server.pyLäuft über stdio — den standardmäßigen lokalen Transport, den MCP-Clients wie Claude Desktop verwenden, um einen Server als Subprozess zu starten und mit ihm zu kommunizieren. Um Claude Desktop darauf auszurichten, fügen Sie in der MCP-Server-Konfiguration Folgendes hinzu:
{
"mcpServers": {
"rag-tool-agent": {
"command": "python",
"args": ["/absolute/path/to/server.py"]
}
}
}Tests ausführen
pytest tests/ -v11 Tests, alle erfolgreich — rufen die Tool-Funktionen direkt auf (kein MCP-Transport für die Abdeckung der Tool-Logik selbst auf Unit-Ebene erforderlich): fundierte Retrieval-Antworten, der Grounding-Count-Vertrag, arithmetische Korrektheit (einschließlich eines Divisionsbeispiels, das dem eigenen dokumentierten Beispiel des ursprünglichen Agenten entspricht), Ablehnung von nicht-arithmetischen Eingaben und Injektionsversuchen, Behandlung der Division durch Null sowie Selbstregistrierung der Tools mit Beschreibungen.
Als echter MCP-Server verifiziert, nicht nur als Funktionen
Über die Unit-Tests hinaus wurde dies Ende-zu-Ende mit dem echten mcp-Client-SDK (ClientSession + stdio_client) verifiziert — Starten von server.py als tatsächlichem Subprozess, Abschließen des MCP-initialize-Handshakes, Aufrufen von list_tools() und Aufrufen beider Tools über das echte Protokoll:
TOOLS: ['search_notes', 'calculate']
calculate -> 1320 / (3601 + 1320) = 0.2682381629750051
search_notes -> The FordA dataset is a univariate time-series
classification dataset... [Grounded in 3 retrieved chunk(s) from
forda_dataset_notes.md]
calculate(injection) -> Error: could not evaluate "__import__('os')" ...Das bestätigt, dass der Server echtes MCP spricht (Handshake, Tool-Erkennung, Tool-Aufruf) und nicht nur, dass die zugrunde liegenden Python-Funktionen in Isolation funktionieren.
Beziehung zu den anderen beiden Projekten
rag-tool-agent-demo— der ursprüngliche CLI-Agent: LangChain, FAISS, Ollama, LCEL-Retrieval-Kette, Taschenrechner-Tool, LLM-gesteuertes Routing.rag-tool-api-docker— dieser Agent als Flask-HTTP-API gekapselt, containerisiert (Docker, Multi-Stage-Build, Nicht-Root-Benutzer, Health Check), mit echten HTTP-Anfragen gegen einen laufenden Container verifiziert.Dieses Projekt — dieselben zugrunde liegenden Fähigkeiten (Retrieval, Taschenrechner) werden über MCP statt über HTTP bereitgestellt, sodass sie von jedem MCP-Host aufgerufen werden können und nicht nur von einem REST-Client.
This server cannot be deployed
Maintenance
Related MCP Connectors
Salesforce-grounded retrieval, diagnoses, and a vetted-Force marketplace for MCP clients.
Free OpenAI-compatible inference with signed provenance receipts and 3 focused MCP tools.
Find, vet, and run MCP tools through a secure audited gateway with prompt-injection risk scoring
Agentic search over your Dewey document collections from any MCP-compatible client.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables document search, read-only SQL querying, arithmetic calculation, and corpus introspection through MCP tools, allowing Claude to dynamically discover and chain these tools together to answer multi-step questions.-
- FlicenseNot gradedqualityCmaintenanceEnables querying local documents via retrieval-augmented generation, along with current UTC datetime and safe arithmetic evaluation through MCP tools over HTTP.-
- AlicenseAqualityCmaintenanceProvides a document store, web search, and safe calculator as MCP tools, enabling both offline and LLM-driven clients to discover and call them over the Model Context Protocol.6MIT
- FlicenseNot gradedqualityCmaintenanceEnables an LLM to perform safe arithmetic calculations and web searches through a standardized MCP interface, returning results to generate informed responses.-