Skip to main content
Glama
dhandashreya

mcp-data-agent

by dhandashreya

MCP Data Agent

CI License

Реальный сервер Model Context Protocol (MCP), предоставляющий инструменты аналитика данных для работы с базой данных продаж, а также LLM-агент (Gemini), который обнаруживает эти инструменты во время выполнения и решает, какой из них вызвать для ответа на вопрос — суть MCP в том, что определения инструментов живут на сервере, а не захардкожены в агенте.

Почему это настоящая реализация MCP, а не имитация

  • src/mcp_server.py — это настоящий MCP-сервер, построенный на официальном Python SDK mcp, предоставляющий 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

list_tables

Интроспекция схемы

run_sql_query

Только чтение SQL — отклоняет всё, что не является SELECT, до того как запрос достигнет базы данных

get_column_stats

Сводная статистика для quantity, unit_price или revenue

plot_bar_chart

Агрегирует по региону/категории и сохраняет 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.

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