MCP网关服务

MCP网关是一个集成销售和订单服务的中间件,通过统一接口连接Node.js和Python服务,并支持与Claude Desktop等MCP兼容客户端集成。

  • by Danielpinedasalazar
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Danielpinedasalazar/MCP

使用说明

🧠 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_anterior
  • ventas_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_crear
  • pedidos_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 }