mcp-crm
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
mcp-crm
A learning project: a Model Context Protocol server that exposes a CRM to an MCP client over stdio.
Sign-in goes through Microsoft Entra using the device-code flow. The resulting identity token is exchanged for a CRM access token, so CRM queries run as the signed-in user and return only what that user is allowed to see.
Requirements
Node.js 20+
An Entra app registration with the device-code (public client) flow enabled
A CRM API implementing the contract below
Related MCP server: ff-crm-mcp
Setup
npm installCopy .env.example to .env and fill it in:
cp .env.example .envENTRA_CLIENT_ID, ENTRA_TENANT_ID, and CRM_API_BASE_URL are required — the server throws on startup if any is missing. .env is gitignored; never commit it.
CRM contract
The server targets any CRM exposing these three routes. Paths are relative to CRM_API_BASE_URL and can be remapped with the optional CRM_AUTH_PATH and CRM_ACCOUNTS_PATH variables, so a CRM that mounts them elsewhere needs no code change.
Route | Purpose |
| Accepts |
| Query params |
| Returns one account object. |
All CRM requests send Authorization: Bearer <access_token>, so results reflect the signed-in user's own permissions.
Running
npx tsx src/index.ts # run directly
npx tsc # type-check and build to dist/The server speaks MCP over stdio, so it is normally launched by a client rather than by hand. To register it with Claude Code:
{
"mcpServers": {
"crm": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/mcp-crm/src/index.ts"]
}
}
}Log output goes to stderr, since stdout carries the MCP protocol.
Tools
Tool | Description |
| Begins Entra device-code sign-in and returns the code and URL to visit. Returns immediately; the sign-in completes in the background. |
| Reports whether that sign-in has finished, is still pending, or failed. |
| Searches real CRM accounts by name. Requires a completed sign-in. Returns up to 25 matches with |
| Fetches full details for a single CRM account by |
| Searches a small hardcoded list of sample accounts. No auth needed — used for testing the wiring without a live CRM. |
Sign-in flow
start_crm_login cannot block until Entra finishes, so it is split in two:
Call
start_crm_login. It returns the device code and the URL to open.Complete sign-in in the browser.
Call
crm_login_statusto confirm. Once it reports a signed-in user,search_crm_accountsandget_crm_accountwill work.
The token is held in memory only — restarting the server means signing in again.
License
ISC — see LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
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.
Unofficial remote MCP server for Less Annoying CRM: OAuth 2.1, read-only grants, 10 tools.
Manage contacts, organizations and their recorded relationships in your workspace. Setup: In a remote MCP client that supports Streamable HTTP and OAuth, add https://platform.samuelz.com/api/v1/mcp/operator?toolset=crm. Sign in to Samuelz and select your authorized workspace. An active workspace membership and the relevant module permissions are required. Review the requested permissions before authorizing. Existing approval requirements continue to apply.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables 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.5Apache 2.0
- 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.25 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to interact with the Crewmeister API over local stdio, covering operations for members, teams, time tracking, salary exports, and related platform resources.Apache 2.0