Skip to main content
Glama
dhandashreya

mcp-data-agent

by dhandashreya

MCP Data Agent

CI License

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.py ist ein echter MCP-Server, aufgebaut auf dem offiziellen mcp-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.py ist ein Test auf Protokollebene, an dem überhaupt kein LLM beteiligt ist – er startet den Server als echten Unterprozess, verbindet sich über stdio, ruft list_tools() auf und ruft run_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.py ist 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/ -v

Vom Server bereitgestellte Tools

Tool

Zweck

list_tables

Schema-Einblick

run_sql_query

Schreibgeschütztes SQL – Lehnt alles ab, was kein SELECT ist, bevor es die Datenbank erreicht

get_column_stats

Zusammenfassende Statistiken für quantity, unit_price oder revenue

plot_bar_chart

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.py führt ihn von Ende zu Ende aus, ohne dass ein LLM in der Schleife ist, und der manuelle Fallback-Pfad in mcp_client_agent.py nutzt 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 eigenen GEMINI_API_KEY aus, 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_chart

Stapel

Python 3.12 · mcp (offizielles Model Context Protocol SDK) · google-genai · SQLite · matplotlib

Lizenz

MIT – siehe LICENSE.

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
    A
    quality
    C
    maintenance
    A 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.
    6
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    An 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.
  • A
    license
    Not graded
    quality
    C
    maintenance
    A 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

View all related MCP servers

Related MCP Connectors

  • Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.

  • Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.

  • GibsonAI MCP server: manage your databases with natural language

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/dhandashreya/mcp-data-agent'

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