mcp-data-agent
MCP Data Agent
Ein echter Model Context Protocol (MCP)-Server, der Datenanalysten-Tools über eine Verkaufsdatenbank bereitstellt, plus einen LLM-Agenten (Gemini), der diese Tools zur Laufzeit entdeckt und entscheidet, welches er aufruft, um eine Frage zu beantworten – der eigentliche Punkt von MCP ist, dass die Tool-Definitionen auf dem Server liegen, nicht fest im Agenten verdrahtet.
Warum dies eine echte MCP-Implementierung ist, kein Mock
src/mcp_server.pyist ein echter MCP-Server, aufgebaut auf dem offiziellenmcp-Python-SDK, der 4 Tools (list_tables,run_sql_query,get_column_stats,plot_bar_chart) über den standard- stdio-Transport bereitstellt.src/smoke_test_client.pyist ein Test auf Protokollebene, an dem überhaupt kein LLM beteiligt ist – er startet den Server als echten Unterprozess, verbindet sich über stdio, ruftlist_tools()auf und ruftrun_sql_queryüber das tatsächliche MCP-Kabelprotokoll auf. Das ist der Beweis dafür, dass der Server funktioniert, unabhängig davon, ob der Agent darüber funktioniert.src/mcp_client_agent.pyist der Agent: Er listet die Tools des Servers auf, konvertiert deren JSON-Schemas direkt in Gemini- Funktionsdeklarationen (parameters_json_schema=tool.input_schema– keine manuelle Schemaübersetzung) und führt die standard Tools-Calling-Schleife aus: Frage das Modell → führe jede angeforderte Tool-Ausführung über die echte MCP-Sitzung aus → reiche das Ergebnis zurück → wiederhole, bis das Modell eine endgültige Antwort gibt.
Related MCP server: agente-ecommerce-mcp-memoria
Erfordert Python 3.10+
Das mcp-Paket unterstützt kein Python 3.9. Wenn Ihr Standard-python
älter ist, verwenden Sie py -3.12 (oder eine beliebige andere 3.10+-Interpretation) für jeden
der nachfolgenden Befehle.
Pipeline
pip install -r requirements.txt
python src/generate_data.py # -> data/sales.db (3,000 synthetic orders)
python src/smoke_test_client.py # protocol-only sanity check, no LLM
python src/mcp_client_agent.py "Which category has the highest revenue?"Ohne gesetzte GEMINI_API_KEY führt mcp_client_agent.py einen manuellen Fallback aus:
es listet die Tools auf, die vom Live-Server entdeckt wurden, und ruft eines direkt auf,
sodass die MCP-Verkabelung ohne API-Schlüssel demonstrierbar ist. Mit einem Schlüssel (kopieren
Sie .env.example nach .env) läuft der volle Agenten-Schleife.
Tests
tests/test_pipeline.py ruft die Tool-Funktionen des Servers direkt auf (Schema-
Introspection, SQL-Ablehnung von Nicht-SELECT-Anweisungen, Statistiken) und – der
echte Beweis für eine funktionierende MCP-Implementierung – führt
smoke_test_client.py aus, der den Server als echten Unterprozess startet
und mit ihm über das echte stdio-Protokoll kommuniziert. Kein API-Schlüssel nötig, sodass
er in CI bei jedem Push auf Python 3.12 läuft.
pip install -r requirements.txt pytest
pytest tests/ -vVom Server bereitgestellte Tools
Tool | Zweck |
| Schema-Einblick |
| Schreibgeschütztes SQL – Lehnt alles ab, was kein |
| Zusammenfassende Statistiken für |
| Aggregiert nach Region/Kategorie und speichert ein PNG |
Verifiziert vs. nicht unabhängig verifiziert
Verifiziert: Der MCP-Server und die Protokolli-Verbindung (Tool-Entdeckung, Tool- Ausführung über stdio) –
smoke_test_client.pyführt ihn von Ende zu Ende aus, ohne dass ein LLM in der Schleife ist, und der manuelle Fallback-Pfad inmcp_client_agent.pynutzt das gleiche echte Protokoll.Gegen das aktuelle
google-genai-SDK implementiert, aber in dieser Umgebung nicht gegen echten Live-Schlüssel getestet: Die Gemini-Tool-Calling-Schleife selbst. Die Funktionsforderungen und Funktionsantwort-Typen wurden direkt gegen das installierte SDK geprüft, aber der eigentliche Multi-Turn-Aufruf erfordert einen API-Schlüssel, den diese Umgebung nicht besitzt. Führen Sie ihn mit Ihrem eigenenGEMINI_API_KEYaus, um diesen Pfad zu üben.
Projektaufbau
data/ generated sales.db
src/ mcp_server, smoke_test_client, mcp_client_agent, generate_data
reports/ charts saved by plot_bar_chartStapel
Python 3.12 · mcp (offizielles Model Context Protocol SDK) · google-genai ·
SQLite · matplotlib
Lizenz
MIT – siehe LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Text-to-SQL MCP server: read-only queries on PostgreSQL, MySQL and SQL Server with your real schema
Related MCP Servers
- AlicenseAqualityDmaintenanceA production-grade MCP server for enterprise sales analytics, enabling LLM clients to query, analyze, and visualize sales data from a SQLite database through structured tools, resources, and prompts.6MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that exposes a LangChain agent with short-term memory to analyze real e-commerce data through predefined SQL tools, enabling natural language queries on sales, customers, and logistics.-
- FlicenseNot gradedqualityDmaintenanceMCP server that routes natural language queries to backend analytics tools (Sales, Finance, Customer, Service) using Google Gemini's function calling.-
- AlicenseNot gradedqualityCmaintenanceA production-style MCP server exposing six business tools (web search, database, CRM, email, calendar, analytics) to AI clients via a secure, authenticated interface, with mock mode and a reference agent client.MIT