Skip to main content
Glama
mcp-crm

mcp-crm

by Saipranoy

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/entra akzeptiert und GET /api/accounts bereitstellt

Related MCP server: Relay MCP

Einrichtung

npm install

Erstellen 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.com

Alle 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

start_crm_login

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.

crm_login_status

Meldet, ob diese Anmeldung abgeschlossen ist, noch aussteht oder fehlgeschlagen ist.

search_crm_accounts

Durchsucht echte CRM-Konten nach Namen. Erfordert eine abgeschlossene Anmeldung. Gibt bis zu 25 Treffer mit id, name, status und sales_rep zurück.

search_accounts

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:

  1. Rufen Sie start_crm_login auf. Diese gibt den Device-Code und die zu öffnende URL zurück.

  2. Schließen Sie die Anmeldung im Browser ab.

  3. Rufen Sie crm_login_status auf, um die Anmeldung zu bestätigen. Sobald sie einen angemeldeten Benutzer meldet, funktioniert search_crm_accounts.

Das Token wird ausschließlich im Arbeitsspeicher gehalten – ein Neustart des Servers bedeutet eine erneute Anmeldung.

Lizenz

ISC

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    Enables 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.
    16
    152 npm
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides 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.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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 npm
    MIT