使用说明
🧠 MCP Gateway — Integración de Ventas y Pedidos
Este proyecto implementa un Gateway MCP (Model Context Protocol) que actúa como intermediario entre dos servicios independientes:
- 🟢
mcp-ventas-node→ Servicio MCP en Node.js para operaciones de ventas. - 🐍
mcp-pedidos-py→ Servicio MCP en Python para operaciones de pedidos.
El gateway unifica ambos servicios y los expone a través de un único servidor MCP, lo que permite integrarlos fácilmente con Claude Desktop u otros clientes compatibles con MCP.
📂 Estructura del Proyecto
MCP/
├── apps/
│ ├── mcp-gateway/
│ │ ├── src/gateway.ts
│ │ └── dist/gateway.js
│ ├── mcp-ventas-node/
│ │ ├── src/index.ts
│ │ └── dist/index.js
│ └── mcp-pedidos-py/
│ ├── server.py
│ └── .venv/
├── db/
│ ├── docker-compose.yml
│ └── init.sql
└── README.md
🧭 Arquitectura
Claude (cliente MCP)
│ STDIO
▼
┌─────────────────────────────┐
│ mcp-gateway │
│ (proxy MCP principal) │
├─────────────┬───────────────┤
│ │
▼ ▼
Ventas (Node) Pedidos (Py)
│ │
└─────► PostgreSQL ◄─────┘
🐳 Base de Datos (PostgreSQL)
cd db
docker compose up -d
📌 Esto levanta un contenedor con:
- Puerto: 5430
- Usuario:
mcp - Password:
mcp - Base de datos:
mcpdb
🟢 Servicio de Ventas (Node.js)
cd apps/mcp-ventas-node
npm install
npm run build
node dist/index.js
Tools:
ventas_total_mes_anteriorventas_por_dia
🐍 Servicio de Pedidos (Python)
cd apps/mcp-pedidos-py
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python server.py
Tools:
pedidos_crearpedidos_estado_por_id
🧰 Gateway MCP (Node.js)
cd apps/mcp-gateway
npm install
npm run build
export PGHOST=localhost
export PGPORT=5430
export PGDATABASE=mcpdb
export PGUSER=mcp
export PGPASSWORD=mcp
node dist/gateway.js
🧑💻 Configuración en Claude Desktop
Ruta (macOS):
~/Library/Application Support/Claude/claude_desktop_config.json
Contenido sugerido:
{
"mcpServers": {
"mcp-gateway": {
"command": "node",
"args": [
"/Users/danielpinedasalazar/Documents/Implementacion e Integracion/MCP/apps/mcp-gateway/dist/gateway.js"
],
"env": {
"PGHOST": "localhost",
"PGPORT": "5430",
"PGDATABASE": "mcpdb",
"PGUSER": "mcp",
"PGPASSWORD": "mcp"
}
}
}
}
🧪 Ejemplos de uso en Claude
ventas_total_mes_anterior
ventas_por_dia { "n": 7 }
pedidos_crear { "cliente": "ACME", "monto": 150 }
pedidos_estado_por_id { "id": 10 }
