Skip to main content
Glama
Saipranoy

mcp-crm

by Saipranoy

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

start_crm_login

Начинает вход через Entra с кодом устройства и возвращает код и URL для перехода. Возвращается сразу; вход завершается в фоне.

crm_login_status

Сообщает, завершился ли вход, всё ещё он ожидает завершения или произошла ошибка.

search_crm_accounts

Ищет реальные аккаунты CRM по названию. Требуется завершённый вход. Возвращает до 25 совпадений с полями id, name, status и sales_rep.

search_accounts

Ищет в небольшом жёстко заданном списке примеров аккаунтов. Аутентификация не требуется — используется для проверки связки без реальной CRM.

Порядок входа

start_crm_login не может ждать завершения входа в Entra, поэтому он разделён на два этапа:

  1. Вызовите start_crm_login. Он вернёт код устройства и URL, который нужно открыть.

  2. Завершите вход в браузере.

  3. Вызовите crm_login_status для подтверждения. Как только он сообщит о вошедшем пользователе, search_crm_accounts заработает.

Токен хранится только в памяти — перезапуск сервера означает, что нужно входить заново.

Лицензия

ISC

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Bridges stdio-based LLM harnesses to OAuth-protected remote MCP servers via Streamable HTTP, handling PKCE browser login and token refresh automatically.
    9
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides 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.

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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