Skip to main content
Glama
SantoshpHiremath

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 von ast verwendet (kein bloßes eval() 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: NotebookLM MCP Server

Ausführen

pip install -r requirements.txt
python server.py

Lä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/ -v

11 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.

F
license - not found
Not graded
quality - not tested
C
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

View all related MCP servers

Related MCP Connectors

  • Free OpenAI-compatible inference with signed provenance receipts and 3 focused MCP tools.

  • Agentic search over your Dewey document collections from any MCP-compatible client.

  • Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.

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/SantoshpHiremath/rag-tool-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server