mcp-crm
mcp-crm
Ein Lernprojekt: ein Model Context Protocol-Server, der einem MCP-Client über stdio ein CRM bereitstellt.
Die Anmeldung erfolgt über Microsoft Entra mit dem Device-Code-Flow. Das resultierende Identitätstoken wird gegen ein CRM-Zugriffstoken ausgetauscht, sodass CRM-Abfragen als angemeldeter Benutzer ausgeführt werden und nur das zurückgeben, was dieser Benutzer sehen darf.
Voraussetzungen
Node.js 20+
Eine Entra-App-Registrierung mit aktiviertem Device-Code-Flow für öffentliche Clients
Eine CRM-API, die ein Entra-Token am Endpunkt
POST /api/auth/entraakzeptiert undGET /api/accountsbereitstellt
Related MCP server: Relay MCP
Einrichtung
npm installErstellen Sie eine .env im Projektverzeichnis:
ENTRA_CLIENT_ID=<your app registration's client id>
ENTRA_TENANT_ID=<your directory tenant id>
CRM_API_BASE_URL=https://your-crm.example.comAlle drei sind erforderlich – der Server wirft beim Start einen Fehler, wenn auch nur eine fehlt. Die Datei .env ist per .gitignore ausgeschlossen; committe sie niemals.
Ausführen
npx tsx src/index.ts # run directly
npx tsc # type-check and build to dist/Der Server spricht MCP über stdio, wird also normalerweise von einem Client gestartet statt von Hand. Um ihn mit Claude Code zu registrieren:
{
"mcpServers": {
"crm": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/mcp-crm/src/index.ts"]
}
}
}Logausgaben gehen an stderr, da stdout das MCP-Protokoll transportiert.
Tools
Tool | Beschreibung |
| Beginnt die Entra-Device-Code-Anmeldung und gibt den Code und die zu öffnende URL zurück. Kehrt sofort zurück; die Anmeldung wird im Hintergrund abgeschlossen. |
| Meldet, ob diese Anmeldung abgeschlossen ist, noch aussteht oder fehlgeschlagen ist. |
| Durchsucht echte CRM-Konten nach Namen. Erfordert eine abgeschlossene Anmeldung. Gibt bis zu 25 Treffer mit |
| Durchsucht eine kleine hartkodierte Liste von Beispielkonten. Keine Authentifizierung erforderlich – dient zum Testen der Anbindung ohne ein echtes CRM. |
Ablauf der Anmeldung
start_crm_login kann nicht blockieren, bis die Anmeldung bei Entra abgeschlossen ist, deshalb ist der Ablauf in zwei Schritte unterteilt:
Rufen Sie
start_crm_loginauf. Diese gibt den Device-Code und die zu öffnende URL zurück.Schließen Sie die Anmeldung im Browser ab.
Rufen Sie
crm_login_statusauf, um die Anmeldung zu bestätigen. Sobald sie einen angemeldeten Benutzer meldet, funktioniertsearch_crm_accounts.
Das Token wird ausschließlich im Arbeitsspeicher gehalten – ein Neustart des Servers bedeutet eine erneute Anmeldung.
Lizenz
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.24 npmMIT