MCP Analytics Server
MCP Analytics Server
Un servidor Model Context Protocol (MCP) de nivel de producción construido en Python que expone herramientas analíticas tipadas, deterministas y protegidas por seguridad sobre un conjunto de datos empresariales almacenado en DuckDB.
Un agente de IA externo (por ejemplo, GPT a través del OpenAI Agents SDK, Claude Desktop o Cursor) puede descubrir y ejecutar consultas analíticas dinámicamente sin necesidad de acceso directo a la base de datos ni de ejecutar SQL sin restricciones.
✨ Aspectos destacados
Servidor MCP en Python: Totalmente compatible con el estándar oficial del Model Context Protocol a través de
stdio.Arquitectura agnóstica de modelo: El servidor no contiene ningún LLM en su interior. Expone contratos de herramientas limpios y deterministas que cualquier agente compatible con MCP puede invocar.
Analítica columnar integrada: Impulsado por DuckDB para agregaciones columnares rápidas y eficientes sobre datos empresariales normalizados.
Guardia SQL basada en AST: Utiliza
sqlglotpara analizar y validar consultas ad-hoc, permitiendo estrictamente sentenciasSELECTde solo lectura y eliminando los riesgos de inyección o mutación SQL.Contratos estrictamente tipados: Todas las respuestas se validan mediante modelos Pydantic v2 antes de llegar al cliente.
Cliente de demostración GPT interactivo: Agente de demostración listo para usar que aprovecha el OpenAI Agents SDK y prompts de razonamiento basados en evidencia.
Desarrollo dirigido por especificaciones: Ingeniería incremental mediante OpenSpec para una trazabilidad completa de requisitos.
Related MCP server: databricks-mcp
🏛️ Arquitectura del sistema
flowchart TD
User([User]) <--> Agent[GPT Agent / OpenAI Agents SDK]
Agent <-->|MCP Protocol / stdio| Server[MCP Analytics Server]
subgraph Server_Internal [MCP Analytics Server Boundary]
Server --> Tools[Tool Layer]
Tools --> DataTools[Dataset Tools]
Tools --> ChurnTools[Churn Analytics Tools]
Tools --> SQLTool[Read-Only SQL Tool]
SQLTool --> SQLGuard[SQL Guard Security Layer]
DataTools --> AnalyticsSvc[AnalyticsService]
ChurnTools --> AnalyticsSvc
SQLGuard --> DBSvc[DatabaseService]
AnalyticsSvc --> DBSvc
DBSvc --> DuckDB[(DuckDB)]
end
DuckDB --> Table[(customers Table - Telco Dataset)]🛡️ Ejecución segura de SQL y límites de seguridad
Cualquier entrada SQL recibida de un agente de IA se trata como entrada no confiable. El servidor aplica una validación estricta del AST mediante sqlglot antes de la ejecución de la consulta:
Allowed Operations:
✅ SELECT contract, AVG(monthly_charges) FROM customers GROUP BY contract
✅ WITH cohorts AS (SELECT * FROM customers WHERE tenure > 24) SELECT COUNT(*) FROM cohorts
Blocked Operations:
❌ DELETE FROM customers WHERE churn = true (Mutation Rejected)
❌ DROP TABLE customers (DDL Rejected)
❌ SELECT * FROM customers; DROP TABLE customers (Multi-statement Rejected)
❌ ATTACH 'external.db' (Engine I/O Rejected)Límite de filas: Las consultas ad-hoc están limitadas a
MAX_RESULT_ROWS = 100para proteger la ventana de contexto del agente.Listas blancas de tablas: Solo se pueden consultar las tablas analíticas autorizadas (
customers).
🧰 Catálogo de herramientas MCP
Nombre de la herramienta | Propósito | Parámetros clave | Tipo de retorno |
| Metadatos de alto nivel del conjunto de datos, recuentos de filas y columnas, nombre de la tabla principal, variable objetivo. | Ninguno |
|
| Inspección de esquema que devuelve todas las columnas disponibles y sus tipos de datos de base de datos. | Ninguno |
|
| Métricas estadísticas ( |
|
|
| Recuento total de clientes, recuento de bajas, recuento de retenidos y tasa de abandono histórica en | Ninguno |
|
| Métricas de abandono segmentadas agrupadas por una dimensión aprobada ( |
|
|
| Ejecución de SQL analítico protegido para cálculos personalizados complejos no cubiertos por las herramientas estándar. |
|
|
🚀 Guía de inicio rápido
1. Requisitos previos
Python 3.11+
Git
2. Instalación
# Clone repository
git clone https://github.com/Jojeda96/mcp-analytics-server.git
cd mcp-analytics-server
# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .\.venv\Scripts\Activate.ps1
# Install in editable mode with development tools
pip install -e ".[dev]"3. Construir la base de datos analítica
# Ingest raw Telco CSV, validate schema, normalize, and build DuckDB
python scripts/build_database.py4. Ejecutar el servidor MCP
# Run server standalone over stdio
mcp-analytics
# or
python -m mcp_analytics.server5. Ejecutar el cliente de demostración GPT interactivo
Configura tu clave de API de OpenAI en .env:
cp .env.example .env
# Edit .env and set OPENAI_API_KEY=sk-...Ejecuta la demostración interactiva:
# Interactive REPL mode
python client/gpt_demo.py
# Or evaluate all 10 standard demonstration questions in batch
python client/gpt_demo.py --all-examples🔌 Conexión a clientes MCP
Claude Desktop / Cursor
Añade la siguiente configuración a tu claude_desktop_config.json o a la configuración de MCP de Cursor:
{
"mcpServers": {
"telco-analytics": {
"command": "python",
"args": ["-m", "mcp_analytics.server"],
"cwd": "/absolute/path/to/mcp-analytics-server",
"env": {
"DUCKDB_PATH": "data/processed/telco.duckdb",
"LOG_LEVEL": "INFO",
"MAX_RESULT_ROWS": "100"
}
}
}
}🧪 Pruebas y aseguramiento de calidad
# Run complete test suite (Unit & Integration) with coverage
pytest --cov=src --cov-report=term-missing
# Run Ruff linter and formatter checks
ruff check .
ruff format --check .
# Run static type checking
mypy src client scripts tests📐 Flujo de trabajo de desarrollo (OpenSpec)
Este proyecto se desarrolló siguiendo el Desarrollo Dirigido por Especificaciones (SDD) con OpenSpec. Cada capacidad se rastrea mediante propuestas explícitas, especificaciones delta, documentos de diseño y tareas verificables:
openspec/
├── specs/ # Consolidated capabilities
│ ├── project-foundation/
│ ├── telco-data-foundation/
│ ├── core-analytics-service/
│ ├── core-mcp-tools/
│ ├── safe-readonly-sql-tool/
│ ├── openai-gpt-demo-client/
│ └── portfolio-hardening/
└── changes/archive/ # Historical change audit trail📂 Estructura del proyecto
mcp-analytics-server/
├── .github/workflows/ci.yml # GitHub Actions CI matrix pipeline
├── assets/ # Diagrams and visual assets
├── client/
│ └── gpt_demo.py # Interactive OpenAI Agents SDK demo client
├── data/
│ ├── raw/ # Source CSV files
│ └── processed/ # Generated DuckDB database
├── docs/
│ ├── architecture.md # Deep-dive architecture and layers
│ ├── security.md # Threat model and AST SQL Guard details
│ └── decisions.md # Architecture Decision Records (ADRs)
├── examples/
│ ├── questions.md # 10 evaluated demo business questions
│ └── mcp-config.example.json # Standard client configuration
├── scripts/
│ ├── download_dataset.py # Dataset provenance & download instructions
│ ├── validate_dataset.py # Strict raw data schema & domain validator
│ └── build_database.py # Data cleaner and DuckDB table builder
├── src/mcp_analytics/
│ ├── config.py # Pydantic Settings and environment config
│ ├── errors.py # Domain exception hierarchy
│ ├── server.py # MCP server lifecycle and CLI entrypoint
│ ├── schemas/ # Pydantic response models
│ ├── security/ # AST SQLGuard parser
│ ├── services/ # DatabaseService & AnalyticsService
│ └── tools/ # Dataset, Analytics & SQL MCP tools
├── tests/
│ ├── fixtures/ # Curated sample CSV test fixtures
│ ├── unit/ # Fast unit tests for logic and security
│ └── integration/ # Database and MCP tool integration tests
├── Dockerfile # Containerization recipe
├── pyproject.toml # Package definition & tool configs
├── CHANGELOG.md # Version release notes
├── LICENSE # MIT License
└── README.md📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.
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
- AlicenseBqualityCmaintenanceEnables LLMs to interact with DuckDB databases through MCP tools for SQL queries, table management, data import/export, and schema inspection, with optional read-only mode for safety.12MIT
- AlicenseAqualityBmaintenanceSafe, read-only SQL analytics for AI agents over MCP, enabling exploration, profiling, and querying of data without mutation risk.5MIT
- FlicenseNot gradedqualityCmaintenanceEnables running read-only SQL queries and exploring DuckDB databases through MCP tools like listing tables, describing schemas, and fetching paginated data.
- AlicenseAqualityCmaintenanceA read-only DuckDB MCP server offering context-efficient analytics tools (list_datasets, describe_table, profile_column, explain, query) with a semantic layer for business rules, security guards, and disclosed truncation to help LLMs produce correct answers while minimizing token usage.5MIT
Related MCP Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
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/Jojeda96/mcp-analytics-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server