mcp-crm
mcp-crm
Учебный проект: сервер Model Context Protocol, который предоставляет CRM MCP-клиенту через stdio.
Вход выполняется через Microsoft Entra с использованием потока с кодом устройства. Полученный идентификационный токен обменивается на токен доступа к CRM, поэтому запросы к CRM выполняются от имени вошедшего пользователя и возвращают только те данные, которые этот пользователь имеет право видеть.
Требования
Node.js 20+
Регистрация приложения в Entra с включённым потоком с кодом устройства (публичный клиент)
CRM API, который принимает токен Entra по адресу
POST /api/auth/entraи отдаётGET /api/accounts
Related MCP server: M365 Copilot Web Bridge
Настройка
npm installСоздайте файл .env в корне проекта:
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Все три значения обязательны — сервер выдаст ошибку при запуске, если какого-то из них нет. .env находится в gitignore; не коммитьте его.
Запуск
npx tsx src/index.ts # run directly
npx tsc # type-check and build to dist/Сервер общается по MCP через stdio, поэтому его обычно запускает клиент, а не вручную. Чтобы зарегистрировать его в Claude Code:
{
"mcpServers": {
"crm": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/mcp-crm/src/index.ts"]
}
}
}Журнал выводится в stderr, поскольку stdout несёт протокол MCP.
Инструменты
Tool | Description |
| Начинает вход через Entra с кодом устройства и возвращает код и URL для перехода. Возвращается сразу; вход завершается в фоне. |
| Сообщает, завершился ли вход, всё ещё он ожидает завершения или произошла ошибка. |
| Ищет реальные аккаунты CRM по названию. Требуется завершённый вход. Возвращает до 25 совпадений с полями |
| Ищет в небольшом жёстко заданном списке примеров аккаунтов. Аутентификация не требуется — используется для проверки связки без реальной CRM. |
Порядок входа
start_crm_login не может ждать завершения входа в Entra, поэтому он разделён на два этапа:
Вызовите
start_crm_login. Он вернёт код устройства и URL, который нужно открыть.Завершите вход в браузере.
Вызовите
crm_login_statusдля подтверждения. Как только он сообщит о вошедшем пользователе,search_crm_accountsзаработает.
Токен хранится только в памяти — перезапуск сервера означает, что нужно входить заново.
Лицензия
ISC
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceBridges stdio-based LLM harnesses to OAuth-protected remote MCP servers via Streamable HTTP, handling PKCE browser login and token refresh automatically.9
- AlicenseNot gradedqualityCmaintenanceExposes a user-authenticated Microsoft 365 Copilot Chat browser session as a stdio MCP server, enabling AI-powered chat interactions via MCP tools like copilot_chat and copilot_status.1MIT
- 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.Apache 2.0
- FlicenseNot gradedqualityBmaintenanceProvides MCP tools to interact with GoHighLevel CRM data, including contacts, conversations, call transcripts, broker lead overviews, pipelines/opportunities, and task creation. Supports both stdio and HTTP transports for local and remote use.
Related MCP Connectors
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Saipranoy/mcp-crm'
If you have feedback or need assistance with the MCP directory API, please join our Discord server