Skip to main content
Glama
JTSTBP

NewCrm MCP Server Foundation

by JTSTBP

NewCrm MCP Server Foundation

This project is a separate MCP server for the existing NewCrm CRM. It does not modify the CRM codebase and does not connect directly to MongoDB.

Current scope is intentionally limited to a clean foundation for future MCP integration.

Architektur

ChatGPT Work ↓ OAuth 2.1 ↓ NewCrm MCP Server ↓ Existing NewCrm Backend APIs ↓ MongoDB

The MCP server is designed to communicate with the existing CRM through the existing backend API layer wherever possible.

Related MCP server: @kemosoft/mcp-heymax-crm

Aktueller Status

The project intentionally does not include:

  • OAuth-Implementierung

  • MCP-Tools

  • HubSpot-Integration

  • Schreiboperationen

  • Erstell-, Aktualisierungs- oder Löschvorgänge

  • MongoDB-Zugriff

  • Massenexporte

  • Webhooks

  • Batch-Updates

Projektstruktur

NewCrm-MCP/
├── src/
│   ├── audit/
│   │   └── logger.js
│   ├── auth/
│   │   └── tokenValidator.js
│   ├── config/
│   │   └── env.js
│   ├── permissions/
│   │   └── roleDefinitions.js
│   ├── services/
│   │   └── crmApiClient.js
│   ├── tools/
│   │   └── index.js
│   └── server.js
├── .env.example
├── .gitignore
├── package.json
├── README.md
└── node_modules/

Installation

  1. Öffnen Sie ein Terminal im Projektordner.

  2. Installieren Sie die Abhängigkeiten:

npm install

Umgebungsvariablen

Kopieren Sie die Beispieldatei und setzen Sie Werte in Ihrer lokalen .env-Datei:

copy .env.example .env

Die .env-Datei sollte Werte wie die folgenden enthalten:

  • PORT

  • HOST

  • NODE_ENV

  • CRM_API_BASE_URL=https://www.jtcrm.in/api

  • MCP_SERVER_NAME

  • MCP_SERVER_VERSION

  • LOG_LEVEL

  • CRM_API_TIMEOUT_MS

Committen Sie keine Geheimnisse oder echten Token in die Versionskontrolle. Speichern Sie kein dauerhaftes Admin-JWT oder eine Produktionsanmeldeinformation im Projekt.

CRM-API-Integration

Dieses Projekt enthält einen wiederverwendbaren CRM-API-Client für sicheren Nur-Lese-Zugriff auf die vorhandenen NewCrm-Backend-APIs.

Derzeit unterstützter Endpunkt:

  • GET /api/leads

Der Dienst ist absichtlich nur auf explizit konfigurierte Endpunkte beschränkt. Er akzeptiert keine beliebigen URLs von MCP-Benutzern.

Beispielverwendung:

import { getLeads } from "./src/services/crmApiClient.js";

const result = await getLeads({
  authToken: process.env.CRM_API_TEST_AUTH_TOKEN,
});

Dies hält die Integration für zukünftige CRM-API-Aufrufe wiederverwendbar, während direkter MongoDB-Zugriff und Schreiboperationen vermieden werden.

Sichere Testanleitung

Für Entwicklung oder Tests übergeben Sie ein benutzerbezogenes JWT zur Laufzeit vom Aufrufer oder einen lokalen ephemeren Umgebungswert. Legen Sie kein gemeinsames Admin-Token in .env ab.

Beispiel für einen lokalen Testablauf:

$env:CRM_API_TEST_AUTH_TOKEN="<user_jwt_here>"
node --input-type=module -e "import { getLeads } from './src/services/crmApiClient.js'; const result = await getLeads({ authToken: process.env.CRM_API_TEST_AUTH_TOKEN }); console.log(result);"

Der Dienst protokolliert das Token selbst nie und sendet den x-auth-token-Header nur, wenn ein Aufrufer ihn bereitstellt.

Server ausführen

npm start

Optionaler Entwicklungsmodus:

npm run dev

So funktioniert /mcp

Dieses Projekt verwendet das offizielle MCP-SDK mit Streamable-HTTP-Transport.

Der Server stellt einen einzelnen MCP-Endpunkt unter /mcp bereit.

  • POST /mcp behandelt die MCP-JSON-RPC-Initialisierung und Folgeanfragen.

  • Eine neue Sitzung wird erstellt, wenn eine Initialisierungsanfrage empfangen wird.

  • Jede Sitzung speichert ihren zugehörigen Streamable-HTTP-Transport.

  • DELETE /mcp schließt eine Sitzung, wenn sie nicht mehr benötigt wird.

  • GET /mcp gibt derzeit 405 Method Not Allowed zurück, da diese Grundlage noch keine Streaming-GET-Anfragen unterstützt.

Dies ist die richtige Grundlage für zukünftige Tool- und Backend-Integrationen, ohne CRM-Funktionalität vorzeitig hinzuzufügen.

Testen des Servers

Nach dem Starten des Servers bestätigen Sie, dass er erfolgreich lauscht:

curl -i http://127.0.0.1:3002/mcp

Erwartetes Verhalten:

  • Der Server sollte mit HTTP 405 auf GET-Anfragen an /mcp antworten.

  • Der Server sollte auch POST-Anfragen für die MCP-Initialisierung und den JSON-RPC-Verkehr akzeptieren, sobald ein kompatibler Client verbunden ist.

Ein erfolgreicher Start wird durch Protokolle ähnlich wie die folgenden angezeigt:

{"timestamp":"...","level":"info","message":"NewCrm MCP foundation server started","host":"127.0.0.1","port":3002,"endpoint":"/mcp"}

Hinweise

Dieses Repository ist absichtlich vom bestehenden NewCrm-Projekt isoliert. Es ist ein eigenständiger MCP-Grundlagenserver und enthält keinen direkten Datenbankzugriff oder CRM-spezifische Geschäftslogik.

Related MCP Connectors

Related MCP Servers