mcp-data-agent
MCP Data Agent
Реальный сервер Model Context Protocol (MCP), предоставляющий инструменты аналитика данных для работы с базой данных продаж, а также LLM-агент (Gemini), который обнаруживает эти инструменты во время выполнения и решает, какой из них вызвать для ответа на вопрос — суть MCP в том, что определения инструментов живут на сервере, а не захардкожены в агенте.
Почему это настоящая реализация MCP, а не имитация
src/mcp_server.py— это настоящий MCP-сервер, построенный на официальном Python SDKmcp, предоставляющий 4 инструмента (list_tables,run_sql_query,get_column_stats,plot_bar_chart) через стандартный транспорт stdio.src/smoke_test_client.py— это тест на уровне протокола без участия LLM — он запускает сервер как реальный подпроцесс, подключается через stdio, вызываетlist_tools()и вызываетrun_sql_queryчерез реальный протокол MCP. Это доказывает, что сервер работает, независимо от того, работает ли агент поверх него.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 работает в ручном режиме отката: он перечисляет инструменты, обнаруженные на живом сервере, и вызывает один из них напрямую, так что механику MCP можно продемонстрировать без каких-либо API-ключей. С ключом (скопируйте .env.example в .env) он выполняет полный цикл агента.
Тесты
tests/test_pipeline.py вызывает функции инструментов сервера напрямую (интроспекция схем, отклонение SQL-запросов, не являющихся SELECT, статистика), а также — настоящее доказательство того, что это рабочая реализация MCP — запускает smoke_test_client.py, который запускает сервер как реальный подпроцесс и общается с ним через реальный протокол stdio. API-ключ не нужен, поэтому это выполняется в CI при каждом пуше, на Python 3.12.
pip install -r requirements.txt pytest
pytest tests/ -vИнструменты, предоставляемые сервером
Tool | Purpose |
| Интроспекция схемы |
| Только чтение SQL — отклоняет всё, что не является |
| Сводная статистика для |
| Агрегирует по региону/категории и сохраняет PNG |
Проверено vs. не проверено независимо
Проверено: MCP-сервер и протокольная обвязка (обнаружение инструментов, выполнение инструментов через stdio) —
smoke_test_client.pyзапускает это от начала до конца без LLM в цикле, а ручной путь отката вmcp_client_agent.pyиспользует тот же реальный протокол.Реализовано на основе текущего SDK
google-genai, но не запускалось с живым ключом в этом окружении: сам цикл вызова инструментов 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 (официальный SDK Model Context Protocol) · google-genai · SQLite · matplotlib
Лицензия
MIT — см. 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