Skip to main content
Glama
JTSTBP

NewCrm MCP Server Foundation

by JTSTBP

NewCrm MCP Server Foundation

Этот проект представляет собой отдельный MCP-сервер для существующей CRM NewCrm. Он не изменяет кодовую базу CRM и не подключается напрямую к MongoDB.

Текущий объём работ намеренно ограничен чистой основой для будущей MCP-интеграции.

Архитектура

ChatGPT Work ↓ OAuth 2.1 ↓ NewCrm MCP Server ↓ Существующие API бэкенда NewCrm ↓ MongoDB

MCP-сервер спроектирован так, чтобы взаимодействовать с существующей CRM через существующий слой API бэкенда, где это возможно.

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

Текущий статус

Проект намеренно не включает:

  • Реализацию OAuth

  • MCP-инструменты

  • Интеграцию с HubSpot

  • Операции записи

  • Операции создания, обновления или удаления

  • Доступ к MongoDB

  • Массовые экспорты

  • Вебхуки

  • Пакетные обновления

Структура проекта

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/

Установка

  1. Откройте терминал в папке проекта.

  2. Установите зависимости:

npm install

Переменные окружения

Скопируйте пример файла и задайте значения в вашем локальном файле .env:

copy .env.example .env

Файл .env должен содержать такие значения, как:

  • 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

Не коммитьте секреты или реальные токены в систему контроля версий. Не храните постоянный административный JWT или любые производственные учётные данные в проекте.

Интеграция с CRM API

Этот проект включает переиспользуемый клиент CRM API для безопасного доступа только на чтение к существующим API бэкенда NewCrm.

Текущая поддерживаемая конечная точка:

  • GET /api/leads

Сервис намеренно ограничен только явно сконфигурированными конечными точками. Он не принимает произвольные URL от пользователей MCP.

Пример использования:

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

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

Это сохраняет интеграцию переиспользуемой для будущих вызовов CRM API, избегая при этом прямого доступа к MongoDB и операций записи.

Рекомендации по безопасному тестированию

Для разработки или тестирования передавайте JWT с областью действия пользователя во время выполнения от вызывающей стороны или из локального временного значения окружения. Не помещайте общий административный токен в .env.

Пример локального тестового сценария:

$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);"

Сервис никогда не будет логировать сам токен и отправляет заголовок x-auth-token только тогда, когда вызывающая сторона его предоставляет.

Запуск сервера

npm start

Дополнительный режим разработки:

npm run dev

Как работает /mcp

Этот проект использует официальный MCP SDK с транспортом Streamable HTTP.

Сервер предоставляет единственную конечную точку MCP по адресу /mcp.

  • POST /mcp обрабатывает инициализацию MCP JSON-RPC и последующие запросы.

  • Новая сессия создаётся при получении запроса на инициализацию.

  • Каждая сессия хранит связанный с ней транспорт Streamable HTTP.

  • DELETE /mcp закрывает сессию, когда она больше не нужна.

  • GET /mcp в настоящее время возвращает 405 Method Not Allowed, поскольку эта основа ещё не поддерживает потоковые GET-запросы.

Это правильная основа для будущих инструментов и интеграций с бэкендом без преждевременного добавления функциональности CRM.

Тестирование сервера

После запуска сервера убедитесь, что он успешно прослушивает порт:

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

Ожидаемое поведение:

  • Сервер должен отвечать HTTP 405 на GET-запросы к /mcp.

  • Сервер также должен принимать POST-запросы для инициализации MCP и JSON-RPC трафика после подключения совместимого клиента.

Об успешном запуске свидетельствуют логи, похожие на:

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

Примечания

Этот репозиторий намеренно изолирован от существующего проекта NewCrm. Это автономный базовый MCP-сервер, который не включает прямой доступ к базе данных или специфичную для CRM бизнес-логику.

Related MCP Connectors

Related MCP Servers