GoContact MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GoContact MCP¿Cuántos leads cargó cada proveedor la semana pasada y cuántos acabaron en venta?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GoContact MCP
Servidor MCP que conecta Claude con la API de GoContact para consultar leads, ventas y actividad del contact center en lenguaje natural.
"¿Cuántos leads cargó cada proveedor la semana pasada y cuántos acabaron en venta?" Antes: esperar días a un Excel. Ahora: una pregunta.
El problema
Los datos del contact center (leads cargados, llamadas, ventas por agente y por proveedor) llegaban en informes preparados a mano. Tardaban días, y sin ellos no se podía optimizar la inversión en captación ni el trabajo del equipo de ventas.
Related MCP server: dbt Semantic Layer MCP Server
La solución
Un servidor MCP de solo lectura que:
Pide los informes al Report Designer de GoContact por API.
Los descarga, limpia y cruza entre sí (leads ↔ llamadas ↔ ventas).
Aplica las reglas de negocio del equipo (qué es una venta, qué llamada está contestada, a qué proveedor pertenece cada lead).
Se los entrega a Claude, que responde preguntas, genera informes y detecta desviaciones.
flowchart LR
U[Equipo de marketing] -->|pregunta| C[Claude]
C -->|herramientas MCP| S[GoContact MCP]
S -->|generateReport / download| G[(API GoContact)]
S -->|contacts, databases, owners| G
R[business_rules.json] --> S
S -->|datos limpios y cruzados| C
C -->|respuesta, tabla, informe| UHerramientas
Herramienta | Para qué sirve |
| Leads cargados en el mes, por base, formulario, proveedor, producto y outcome |
| Detalle por lead cruzado con sus llamadas: ¿acabó en venta segura? |
| Ventas registradas en el script, por producto, campaña, agente y proveedor |
| Por agente: llamadas, contestadas, minutos de conversación, ventas y conversión |
| Actividad de campañas salientes y colas entrantes de servicio |
| Datos diarios compactos de un mes para montar un informe de seguimiento |
| Bases de datos de GoContact disponibles |
| Cabeceras reales de cada CSV, para ajustar la configuración |
| Diagnóstico: token e informe de prueba |
Lo importante no es el código: son las definiciones
Conectar una API es la parte fácil. Lo difícil fue que los números cuadraran con el cierre manual. Algunas decisiones que salieron de validar contra datos reales (más detalle en docs/reglas-de-negocio.md):
Una llamada con tiempo de conversación no siempre está contestada. Casi la mitad de las llamadas marcadas "No Contactado" tenían segundos de conversación (buzones, locuciones). Contestada = outcome válido y conversación.
Venta segura = tres condiciones a la vez en el script: grupo "Venta", producto válido y gestión de contratación válida.
El proveedor se asigna por el id de formulario, no por el campo "proveedor", que viene escrito de mil maneras. El campo solo se usa como respaldo.
Las llamadas transferidas tienen varios tramos. Se conservan todos (cada uno es trabajo de un agente) y solo se eliminan las filas duplicadas.
La fecha de carga del lead no es la fecha de creación de la base. Si el informe no la trae, se pide a la API de contactos.
Todas estas reglas están en config/business_rules.json, fuera del código, para que alguien de negocio pueda cambiarlas sin tocar Python.
Instalación
git clone https://github.com/marinscada/gocontact-mcp.git
cd gocontact-mcp
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # credenciales y plantillas
cp config/business_rules.example.json config/business_rules.json # tus reglas de negocioPreparar GoContact
Crea un usuario de servicio con acceso a las campañas y colas que quieras consultar.
En el Report Designer, crea tres plantillas: Contact state by last load date (leads), Calls With Script (ventas) y All Calls (llamadas). Incluye Contact ID, agente y UUID de llamada. No incluyas datos personales (nombre, teléfono, email, DNI): no hacen falta.
Pon sus
templateIden.env.Ejecuta
columnas_informey ajusta el bloquecolumnasdebusiness_rules.jsona las cabeceras reales.
Uso local con Claude Desktop
En claude_desktop_config.json:
{
"mcpServers": {
"gocontact": {
"command": "/ruta/a/.venv/bin/python",
"args": ["/ruta/a/gocontact-mcp/server.py"],
"env": {
"MCP_TRANSPORT": "stdio",
"GOCONTACT_BASE": "https://TU-DOMINIO.gocontact.es/poll",
"GOCONTACT_USER": "usuario_servicio@dominio",
"GOCONTACT_PASS": "...",
"GC_TEMPLATE_LEADS": "123",
"GC_TEMPLATE_VENTAS": "124",
"GC_TEMPLATE_LLAMADAS": "125"
}
}
}
}Uso remoto (para todo el equipo)
Con MCP_TRANSPORT=streamable-http, alojado con HTTPS y OAuth delante, y dado de alta como conector personalizado en Claude.
Seguridad
Solo lectura: ninguna herramienta modifica datos en GoContact.
Sin datos personales: las plantillas se diseñan sin ellos y las respuestas trabajan con IDs y agregados.
Credenciales fuera del código: van en variables de entorno;
.envybusiness_rules.jsonestán en.gitignore.Escucha en local por defecto (
HOST=127.0.0.1). El servidor no incluye autenticación propia: para exponerlo en remoto, ponlo siempre detrás de un proxy con OAuth.
Rendimiento
Los informes se lanzan en paralelo y se descargan cuando están listos (GoContact los genera en diferido).
Se guardan 30 minutos en caché, así que preguntas encadenadas sobre el mismo mes son instantáneas.
El token se renueva solo antes de caducar (24 h).
Tests
pip install pytest
pytestPrueban las reglas de negocio (asignación de proveedor, venta segura, llamada contestada, fechas) sin llamar a GoContact.
Próximos pasos
Mover la caché a Redis para el despliegue remoto con varios usuarios.
Alertas automáticas cuando un proveedor cae por debajo de su conversión media.
Tests de integración con CSV de ejemplo anonimizados.
Sobre este proyecto
Construido por Andrea (Growth Marketing) con Claude como compañero de código, para dejar de depender de informes manuales y tomar decisiones con datos al momento.
Licencia MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
Ask questions in plain language, get answers from your business database. No SQL required.
Ask business questions in plain English. Get instant answers from your database, no SQL needed.
Ask your organization's connected business data in plain language, with each person's permissions.
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThis is a server that lets your LLMs (like Claude) talk directly to your BigQuery data! Think of it as a friendly translator that sits between your AI assistant and your database, making sure they can chat securely and efficiently.921 npm148MIT
- AlicenseNot gradedqualityDmaintenanceA server that enables querying the dbt Semantic Layer through natural language conversations with Claude Desktop and other AI assistants, allowing users to discover metrics, create queries, analyze data, and visualize results.11MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides tools to interact with the Respona Dashboard backend API. It allows users to query ticket data, analytics, and AI flags through natural language interactions.MIT
- 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.-