mcp-crm
mcp-crm
Un proyecto de aprendizaje: un servidor Model Context Protocol que expone un CRM a un cliente MCP a través de stdio.
El inicio de sesión se realiza a través de Microsoft Entra mediante el flujo de código de dispositivo. El token de identidad resultante se intercambia por un token de acceso al CRM, de modo que las consultas al CRM se ejecutan como el usuario autenticado y devuelven solo lo que ese usuario tiene permiso de ver.
Requisitos
Node.js 20+
Un registro de aplicación de Entra con el flujo de código de dispositivo (cliente público) habilitado
Una API de CRM que acepte un token de Entra en
POST /api/accounts/auth/entray sirvaGET /api/accounts
Related MCP server: Relay MCP
Configuración
npm installCrea un .env en la raíz del proyecto:
ENTRA_CLIENT_ID=<your app registration's client id>
ENTRA_TENANT_ID=<your directory tenant id>
CRM_API_BASE_URL=https://your-crm.example.comLos tres son necesarios: el servidor lanza un error en el arranque si falta alguno. .env está en .gitignore; nunca lo incluyas en control de versiones.
Ejecución
npx tsx src/index.ts # run directly
npx tsc # type-check and build to dist/El servidor habla en MCP a través de stdio, por lo que normalmente lo lanza un cliente en lugar de una persona. Para integrarlo con Claude Code:
{
"mcpServers": {
"crm": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/mcp-crm/src/index.ts"]
}
}
}La salida de registro se envía a stderr, ya que stdout transporta el protocolo MCP.
Herramientas
Herramienta | Descripción |
| Inicia el inicio de sesión de Entra mediante código de dispositivo y devuelve el código y la URL a visitar. Devuelve enseguida; el inicio de sesión se completa en segundo plano. |
| Indica si ese inicio de sesión ha finalizado, sigue pendiente o ha fallado. |
| Busca cuentas reales del CRM por nombre. Requiere un inicio de sesión completado. Devuelve hasta 25 coincidencias con |
| Busca en una pequeña lista fija de cuentas de ejemplo. No requiere autenticación: se usa para probar el cableado sin un CRM en vivo. |
Flujo de inicio de sesión
start_crm_login no puede bloquearse hasta que Entra termine, por lo que se divide en dos partes:
Llama a
start_crm_login. Devuelve el código de dispositivo y la URL que debes abrir.Completa el inicio de sesión en el navegador.
Llama a
crm_login_statuspara confirmar. En cuanto reporte un usuario conectado,search_crm_accountsfuncionará.
El token se guarda solo en memoria: reiniciar el servidor significa volver a iniciar sesión.
Licencia
ISC
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Authenticated MCP server for ClearPolicy policy and compliance workflows.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables managing Onde Inference accounts and model catalog operations through MCP tools such as login, app management, model registration, and assignment. Returns structured JSON over stdio for use with any MCP client.2Apache 2.0
- AlicenseBqualityFmaintenanceEnables local MCP clients to manage messaging workflows via stdio: list and read chats/messages, send messages, react to messages, manage typing/read state, and handle contact cards and requests.16152 npmMIT
- FlicenseNot gradedqualityBmaintenanceProvides a one-shot CLI to open an MCP session, run a single CRM gateway tool, and exit, plus a stdio-to-Streamable-HTTP bridge for registering the gateway as an MCP connector.-
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to query projects, fetch findings, trigger analysis, upload CycloneDX BOMs, and check async token status against an OWASP Dependency-Track instance via stdio.21 npmMIT