mcp-data-agent
MCP Data Agent
一个真实的 Model Context Protocol (MCP) 服务器,通过销售数据库暴露数据分析师工具,外加一个 LLM 代理(Gemini),该代理在运行时发现这些工具并决定调用哪些来回答问题——MCP 的真正意义在于工具定义位于服务器上,而不是硬编码到代理中。
为什么这是真正的 MCP 实现,而不是模拟
src/mcp_server.py是一个真正的 MCP 服务器,基于官方mcpPython SDK 构建,通过标准 stdio 传输暴露 4 个工具(list_tables、run_sql_query、get_column_stats、plot_bar_chart)。src/smoke_test_client.py是一个协议级测试,完全不涉及 LLM——它将服务器作为真实子进程启动,通过 stdio 连接,调用list_tools(),并通过实际的 MCP 线协议调用run_sql_query。这证明了服务器可以工作,与上层代理是否工作无关。src/mcp_client_agent.py是代理:它列出服务器的工具,将其 JSON 模式直接转换为 Gemini 函数声明(parameters_json_schema=tool.input_schema——无需手动转换模式),并运行标准的工具调用循环:询问模型 → 通过真实的 MCP 会话执行任何请求的工具调用 → 将结果反馈回去 → 重复,直到模型给出最终答案。
Related MCP server: agente-ecommerce-mcp-memoria
需要 Python 3.10+
mcp 包不支持 Python 3.9。如果你的默认 python 版本较旧,请对下面的每条命令使用 py -3.12(或你拥有的任何 3.10+ 解释器)。
流水线
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?"未设置 GEMINI_API_KEY 时,mcp_client_agent.py 运行手动回退:它列出从实时服务器发现的工具并直接调用其中一个,因此无需任何 API 密钥即可演示 MCP 管道。有密钥时(将 .env.example 复制为 .env),它会运行完整的代理循环。
测试
tests/test_pipeline.py 直接调用服务器的工具函数(模式自省、拒绝非 SELECT 语句的 SQL、统计),并且——这是真正 MCP 实现有效工作的证明——运行 smoke_test_client.py,该脚本将服务器作为实际子进程启动,并通过真实的 stdio 协议与之通信。无需 API 密钥,因此每次推送时都会在 CI 中、在 Python 3.12 上运行。
pip install -r requirements.txt pytest
pytest tests/ -v服务器暴露的工具
工具 | 用途 |
| 模式自省 |
| 只读 SQL——在到达数据库之前拒绝任何不是 |
|
|
| 按地区/类别聚合并保存 PNG |
已验证与未独立验证
已验证:MCP 服务器和协议连接(工具发现、通过 stdio 执行工具)——
smoke_test_client.py在循环中无 LLM 的情况下端到端运行它,mcp_client_agent.py中的手动回退路径也使用了相同的真实协议。针对当前
google-genaiSDK 实现,未在此环境中使用真实密钥运行:Gemini 工具调用循环本身。函数声明和函数响应类型已直接对照已安装的 SDK 检查过,但实际的多轮调用需要此环境没有的 API 密钥。使用你自己的GEMINI_API_KEY运行以测试该路径。
项目结构
data/ generated sales.db
src/ mcp_server, smoke_test_client, mcp_client_agent, generate_data
reports/ charts saved by plot_bar_chart技术栈
Python 3.12 · mcp(官方 Model Context Protocol SDK)· google-genai · SQLite · matplotlib
许可证
MIT——参见 LICENSE。
This server cannot be installed
Maintenance
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
- AlicenseAqualityCmaintenanceA 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 gradedqualityBmaintenanceAn 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 gradedqualityCmaintenanceMCP 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
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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