Customer MCP Server
Customer MCP Server
Customer MCP Server es un proyecto para conectar LLM con los datos de los clientes, utilizando el Model Context Protocol (MCP) para que el cliente de IA pueda acceder a los datos de los clientes de forma segura y con un marco de control claro.
Descripción general del sistema
Este sistema está diseñado para que el LLM pueda consultar información de los clientes únicamente a través de las herramientas definidas, sin necesidad de acceder directamente a la base de datos.
Funcionalidades
Recuperar información básica del cliente.
Buscar en el historial de comunicaciones del cliente mediante búsqueda semántica con embeddings vectoriales.
Resumir las compras y transacciones financieras con valor exacto.
Registrar un audit log de las transacciones.
Prevenir la inyección de prompts y el acceso no autorizado a los datos.
Related MCP server: safedb-mcp
Arquitectura
LLM Client
|
| MCP Protocol
v
MCP Server (Python)
|
+-------------------+
| |
v v
Semantic Search SQL / Financial
PostgreSQL + pgvector PostgreSQLCaracterísticas principales
1. Perfil del cliente
Recupera la información básica del cliente, como customer_id, name, email, phone, created_at.
2. Búsqueda semántica de interacciones
Busca el historial de conversaciones/interacciones del cliente mediante vectores de embedding.
Ideal para buscar significado en preguntas amplias, como refund issue, complaint, billing concern.
3. Resumen financiero
Calcula el número de pedidos y el importe total de compras a partir de la base de datos.
Utiliza agregación SQL para obtener valores precisos y fiables.
Devuelve el audit log de la transacción junto con una referencia hash.
Ejemplo de consulta híbrida
Ejemplo de pregunta:
"¿Qué problemas ha reportado el cliente y cuál es el importe total de sus compras?"
Flujo:
search_customer_interactions()
|
vBúsqueda de similitud pgvector
+get_customer_purchase_summary()
|
vAgregación SQL
|
vRespuesta combinada verificada
Proceso:
El servidor MCP realiza una búsqueda semántica en interaction_history mediante pgvector.
El servidor MCP obtiene el resumen financiero de purchase_orders mediante agregación SQL.
Combina los resultados:
Contexto del cliente
Interacción relevante
Importe financiero exacto
Los envía de vuelta al LLM.
4. Medidas de seguridad
Detecta patrones de inyección de prompts.
Valida customer_id antes de acceder a los datos.
Limita el acceso a los datos únicamente a través de las herramientas MCP.
Tecnologías utilizadas
Python 3.12+
FastMCP
asyncpg
pydantic
openai
google-genai
PostgreSQL 17 + pgvector
Docker Compose
Estructura del proyecto
customer-mcp/
├── app/
│ ├── config.py
│ ├── database.py
│ ├── embeddings.py
│ ├── mcp_server.py
│ ├── security.py
│ └── tools/
│ ├── customer.py
│ ├── financial.py
│ └── semantic_search.py
├── docs/
│ └── ARCHITECTURE.md
├── sql/
│ ├── 01_extensions.sql
│ ├── 02_schema.sql
│ ├── 03_indexes.sql
│ ├── 04_seed.sql
│ └── 05_security.sql
├── docker-compose.yml
├── requirements.txt
├── test_customer.py
├── test_embedding.py
├── test_financial.py
├── test_search.py
├── test_security.py
└── README.mdRequisitos previos
Python 3.12 o superior.
Docker Desktop.
Acceso a la red para instalar paquetes desde PyPI.
Instalación y configuración
1. Crear un entorno virtual
py -3.12 -m venv venvEn Windows:
venv\Scripts\activate2. Instalar dependencias
pip install -r requirements.txt3. Configurar las variables de entorno
Crea un archivo .env con el siguiente ejemplo:
DATABASE_URL=postgresql://mcp_readonly_user:CHANGE_ME@localhost:5432/customer_mcp
GEMINI_API_KEY=your_gemini_api_key_here4. Iniciar la base de datos PostgreSQL
docker compose up -dDocker Compose creará el contenedor PostgreSQL + pgvector e inicializará la base de datos automáticamente desde los scripts SQL de la carpeta sql/.
Nota: Los scripts SQL en docker-entrypoint-initdb.d solo se ejecutan la primera vez que se crea el volumen de PostgreSQL.
Si deseas volver a inicializar todo:
docker compose down -v
docker compose up -d
Orden de inicialización
sql/01_extensions.sql Habilitar extensiones de PostgreSQL Habilitar pgvector sql/02_schema.sql Crear tablas de clientes Crear tabla de historial de interacciones Crear tablas de compras Crear estructura de auditoría inmutable sql/03_indexes.sql Crear índices de base de datos Crear índice pgvector HNSW para búsqueda semántica sql/04_seed.sql Insertar datos de clientes de demostración Insertar historial de interacciones Insertar registros de compras Insertar registros de auditoría sql/05_security.sql Crear usuario de base de datos de solo lectura Otorgar permiso SELECT
Comprobar el contenedor
docker ps5. Ejecutar MCP Server
python -m app.mcp_serverMCP Inspector
También puedes inspeccionar las herramientas MCP a través de la interfaz de usuario.
mcp-inspector python -m app.mcp_serverHerramientas MCP disponibles
get_customer_profile
Recupera el perfil del cliente.
Fuente de datos:
tabla customers
Devuelve:
customer_id
first_name
last_name
email
phone
created_at
Ejemplo de entrada:
{
"customer_id": "550e8400-e29b-41d4-a716-446655440000"
}search_customer_interactions
Búsqueda semántica para consultar el historial de interacciones mediante pgvector.
Ejemplo de entrada:
{
"customer_id": "550e8400-e29b-41d4-a716-446655440000",
"query": "refund issue",
"limit": 3
}get_customer_purchase_summary
Recupera el resumen de compras con valor exacto mediante agregación SQL.
Ejemplo de entrada:
{
"customer_id": "550e8400-e29b-41d4-a716-446655440000"
}Herramientas MCP disponibles
Herramienta | Propósito |
get_customer_profile | Recuperar información del perfil del cliente |
search_customer_interactions | Búsqueda semántica del historial de conversaciones del cliente |
get_customer_purchase_summary | Recuperar el resumen financiero exacto y el audit log |
Pruebas
Puedes ejecutar los siguientes archivos de prueba desde la raíz del repositorio:
python test_embedding.py
python test_search.py
python test_financial.py
python test_security.py
python test_customer.pyNotas de seguridad
El LLM no puede acceder directamente a la base de datos.
El acceso a los datos debe realizarse únicamente a través de las herramientas MCP.
Se aplica validación de entrada para customer_id.
Se detectan patrones de inyección de prompts.
Los datos financieros utilizan agregación SQL para devolver valores exactos.
El audit log es una estructura inmutable de solo añadir.
El usuario de base de datos para MCP utiliza permisos de privilegio mínimo.
No se permiten operaciones UPDATE / DELETE / DDL.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
Hosted SQL Server MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Authenticated LLM MCP Agent
Related MCP Servers
- FlicenseAqualityDmaintenanceAn MCP server that connects LLMs to SQL databases for development assistance, enabling query execution, schema exploration, and data manipulation while providing safety controls against destructive operations.5-
- AlicenseAqualityBmaintenanceSecure MCP server for safe, read-only DB access by AI agents, with SQL guardrails, table allowlists, PII masking, and audit logs617 npm9MIT
- FlicenseNot gradedqualityDmaintenanceA governed MCP server for integrating AI agents with customer data, featuring role-based access control, field redaction, and human-in-the-loop approval for secure support operations.1-
- AlicenseNot gradedqualityDmaintenanceA governed analytics MCP server that provides LLM agents with safe, read-only access to data warehouses through a layered safety pipeline including AST validation, column/row governance, PII masking, cost limits, and audit.MIT