Bitrix24_MCP_Server

Bitrix24_MCP_Server

3.4

If you are the rightful owner of Bitrix24_MCP_Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Bitrix24 MCP Server is a server application providing a REST API for interacting with Bitrix24 CRM using the Model-Controller-Presenter architectural pattern.

Bitrix24 MCP Server

ΠžΠ±Π·ΠΎΡ€

Bitrix24 MCP (Model-Controller-Presenter) Server - это сСрвСрноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ REST API для взаимодСйствия с Bitrix24 CRM. Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ MCP для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈ обСспСчСния Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ раздСлСния отвСтствСнности ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ

  • ΠŸΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ основным сущностям Bitrix24 CRM (сдСлки, Π»ΠΈΠ΄Ρ‹, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ‚.Π΄.)
  • Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ использования Π½Π° клиСнтской сторонС
  • Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²
  • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ
  • CORS ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° для взаимодСйствия с Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-прилоТСниями

ВрСбования

  • Node.js (вСрсия 14.x ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅)
  • npm (вСрсия 6.x ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅)
  • Доступ ΠΊ Bitrix24 с настроСнным webhook

Установка

  1. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:
git clone https://github.com/your-username/bitrix24-mcp-server.git
cd bitrix24-mcp-server
  1. УстановитС зависимости:
npm install
  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» .env Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:
PORT=3000
BITRIX_DOMAIN=your-domain.bitrix24.ru
BITRIX_WEBHOOK_TOKEN=your-webhook-token
LOG_LEVEL=info
  1. ЗапуститС сСрвСр:
npm start

АрхитСктура

Π‘Π΅Ρ€Π²Π΅Ρ€ построСн Π½Π° основС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° MCP (Model-Controller-Presenter):

  • Model (Bitrix24Model): ΠžΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° взаимодСйствиС с API Bitrix24 ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ….
  • Controller (Bitrix24Controller): ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ HTTP-запросы, примСняСт бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π΅Ρ€Π°.
  • Presenter (Bitrix24Presenter): Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ для прСдставлСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.

API Endpoints

Π—Π°Π΄Π°Ρ‡ΠΈ

  • GET /api/tasks - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка Π·Π°Π΄Π°Ρ‡
    • Query ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
      • filter - JSON-строка с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)

ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹

  • GET /api/contacts - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ²
    • Query ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
      • filter - JSON-строка с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)

Π‘Π΄Π΅Π»ΠΊΠΈ

  • GET /api/deals - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка сдСлок
    • Query ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
      • filter - JSON-строка с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)
  • GET /api/deals/:id - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сдСлки ΠΏΠΎ ID
  • POST /api/deals - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ сдСлки
    • Body: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ сдСлки
  • PUT /api/deals/:id - ОбновлСниС сдСлки
    • Body: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для обновлСния
  • GET /api/deal-categories - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²ΠΎΡ€ΠΎΠ½ΠΎΠΊ ΠΏΡ€ΠΎΠ΄Π°ΠΆ
  • GET /api/deal-stages/:categoryId? - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ стадий сдСлок для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²ΠΎΡ€ΠΎΠ½ΠΊΠΈ

Π›ΠΈΠ΄Ρ‹

  • GET /api/leads - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка Π»ΠΈΠ΄ΠΎΠ²
    • Query ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
      • filter - JSON-строка с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)
  • GET /api/leads/:id - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΠ΄Π° ΠΏΠΎ ID
  • POST /api/leads - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π°
    • Body: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π»ΠΈΠ΄Π°
  • PUT /api/leads/:id - ОбновлСниС Π»ΠΈΠ΄Π°
    • Body: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для обновлСния
  • GET /api/lead-statuses - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ статусов Π»ΠΈΠ΄ΠΎΠ²

Активности (Π΄Π΅Π»Π°)

  • GET /api/activities - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка активностСй
    • Query ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
      • filter - JSON-строка с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)
  • GET /api/activities/:id - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ активности ΠΏΠΎ ID
  • POST /api/activities - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ активности
    • Body: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ активности
  • PUT /api/activities/:id - ОбновлСниС активности
    • Body: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для обновлСния

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ

  • GET /api/users - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
    • Query ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
      • filter - JSON-строка с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)
  • GET /api/users/:id - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ ID

Π’Π°ΠΉΠΌΠ»Π°ΠΉΠ½

  • POST /api/timeline-comment/:entityType/:entityId - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ коммСнтария Π² Ρ‚Π°ΠΉΠΌΠ»Π°ΠΉΠ½
    • Body: { "comment": "ВСкст коммСнтария" }

ВСлСфония

  • GET /api/call-statistics - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ статистики Π·Π²ΠΎΠ½ΠΊΠΎΠ²
    • Query ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
      • filter - JSON-строка с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)

Π€Π°ΠΉΠ»Ρ‹

  • GET /api/files/:id - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ„Π°ΠΉΠ»Π΅
  • GET /api/files/:id/download - Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка сдСлок

// ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄
async function getDeals() {
  try {
    const response = await fetch('http://localhost:3000/api/deals');
    const data = await response.json();
    console.log(data.deals);
  } catch (error) {
    console.error('Ошибка ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ сдСлок:', error);
  }
}

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π°

// ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄
async function createLead() {
  try {
    const leadData = {
      TITLE: 'Новый Π»ΠΈΠ΄ с сайта',
      NAME: 'Иван',
      LAST_NAME: 'Иванов',
      STATUS_ID: 'NEW',
      PHONE: [{ VALUE_TYPE: 'WORK', VALUE: '+7 (999) 123-45-67' }],
      EMAIL: [{ VALUE_TYPE: 'WORK', VALUE: 'ivan@example.com' }]
    };
    
    const response = await fetch('http://localhost:3000/api/leads', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(leadData)
    });
    
    const result = await response.json();
    console.log('Π›ΠΈΠ΄ создан:', result);
  } catch (error) {
    console.error('Ошибка ΠΏΡ€ΠΈ создании Π»ΠΈΠ΄Π°:', error);
  }
}

ОбновлСниС сдСлки

// ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄
async function updateDeal(dealId, stageId) {
  try {
    const dealData = {
      STAGE_ID: stageId
    };
    
    const response = await fetch(`http://localhost:3000/api/deals/${dealId}`, {
      method: 'PUT',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(dealData)
    });
    
    const result = await response.json();
    console.log('Π‘Π΄Π΅Π»ΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°:', result);
  } catch (error) {
    console.error('Ошибка ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ сдСлки:', error);
  }
}

Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ встроСнный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ логирования для отслСТивания запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ логирования ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ .env с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° LOG_LEVEL.

ДоступныС ΡƒΡ€ΠΎΠ²Π½ΠΈ логирования:

  • error - Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ошибки
  • warn - прСдупрСТдСния ΠΈ ошибки
  • info - ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ сообщСния, прСдупрСТдСния ΠΈ ошибки (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ)
  • debug - отладочная информация ΠΈ всС Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок

Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ошибки ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ HTTP-статусы ΠΈ сообщСния:

  • 400 Bad Request - Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ запроса
  • 404 Not Found - рСсурс Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
  • 500 Internal Server Error - внутрСнняя ошибка сСрвСра

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚Π²Π΅Ρ‚Π° с ошибкой:

{
  "error": "Ошибка ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Bitrix24 API"
}

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ HTTPS для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅
  • Π₯Ρ€Π°Π½ΠΈΡ‚Π΅ webhook-Ρ‚ΠΎΠΊΠ΅Π½ Π² бСзопасном мСстС ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π΅Π³ΠΎ Π² ΠΊΠΎΠ΄
  • РСгулярно обновляйтС webhook-Ρ‚ΠΎΠΊΠ΅Π½ для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ рисков

ЛицСнзия

MIT

MCP Π‘Π΅Ρ€Π²Π΅Ρ€ (mcp-server.js)

ΠžΠ±Π·ΠΎΡ€

mcp-server.js - это рСализация MCP (Model Context Protocol) сСрвСра для Bitrix24, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Π½Π°Π±ΠΎΡ€ инструмСнтов для взаимодСйствия с Bitrix24 API Ρ‡Π΅Ρ€Π΅Π· REST API сСрвСр. MCP сСрвСр Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ слой ΠΌΠ΅ΠΆΠ΄Ρƒ языковой модСлью (LLM) ΠΈ REST API сСрвСром Bitrix24, позволяя языковой ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Bitrix24 Ρ‡Π΅Ρ€Π΅Π· структурированныС инструмСнты.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹

MCP сСрвСр ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ @modelcontextprotocol/sdk для создания ΠΈ рСгистрации инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ языковой модСлью. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ инструмСнт прСдставляСт собой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая:

  1. ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ схСмы Zod
  2. ВыполняСт запрос ΠΊ REST API сСрвСру Bitrix24
  3. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² структурированном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅

MCP сСрвСр запускаСтся Ρ‡Π΅Ρ€Π΅Π· stdio транспорт, Ρ‡Ρ‚ΠΎ позволяСт Π΅ΠΌΡƒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с языковой модСлью Ρ‡Π΅Ρ€Π΅Π· стандартныС ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°.

ДоступныС инструмСнты

MCP сСрвСр прСдоставляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ инструмСнтов:

Π›ΠΈΠ΄Ρ‹
  • getLeads - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка Π»ΠΈΠ΄ΠΎΠ² с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ
  • getLead - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Π»ΠΈΠ΄Π΅ ΠΏΠΎ ID
  • createLead - созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π°
  • updateLead - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π»ΠΈΠ΄Π°
  • getLeadStatuses - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка статусов Π»ΠΈΠ΄ΠΎΠ²
Π‘Π΄Π΅Π»ΠΊΠΈ
  • getDeals - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка сдСлок с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ
  • getDeal - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ сдСлкС ΠΏΠΎ ID
  • createDeal - созданиС Π½ΠΎΠ²ΠΎΠΉ сдСлки
  • updateDeal - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ сдСлки
  • getDealCategories - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка Π²ΠΎΡ€ΠΎΠ½ΠΎΠΊ ΠΏΡ€ΠΎΠ΄Π°ΠΆ
  • getDealStages - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка стадий сдСлок для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²ΠΎΡ€ΠΎΠ½ΠΊΠΈ
ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹
  • getContacts - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ
  • getContact - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ ΠΏΠΎ ID
Активности
  • getActivities - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка активностСй с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ
  • getActivity - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ активности ΠΏΠΎ ID
  • createActivity - созданиС Π½ΠΎΠ²ΠΎΠΉ активности
  • updateActivity - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ активности
ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ
  • getUsers - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ
  • getUser - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ ΠΏΠΎ ID
Π—Π°Π΄Π°Ρ‡ΠΈ
  • getTasks - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка Π·Π°Π΄Π°Ρ‡ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ
ВСлСфония
  • getCallStatistics - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ статистики Π·Π²ΠΎΠ½ΠΊΠΎΠ²
Π€Π°ΠΉΠ»Ρ‹
  • getFile - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ„Π°ΠΉΠ»Π΅ ΠΏΠΎ ID
Π’Π°ΠΉΠΌΠ»Π°ΠΉΠ½
  • addTimelineComment - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ коммСнтария Π² Ρ‚Π°ΠΉΠΌΠ»Π°ΠΉΠ½ сущности
Бводная информация
  • getCrmSummary - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сводной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ CRM (количСство Π»ΠΈΠ΄ΠΎΠ², сдСлок, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΈ Ρ‚.Π΄.)
Π‘Π»ΡƒΠΆΠ΅Π±Π½Ρ‹Π΅ инструмСнты
  • checkApiConnection - ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° соСдинСния с API сСрвСром

Настройка ΠΈ использованиС

  1. УстановитС зависимости:
cd mcp-server
npm install
  1. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ REST API сСрвСр Bitrix24 Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 3000 (ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ API_BASE_URL Π² Ρ„Π°ΠΉΠ»Π΅ mcp-server.js).

  2. ЗапуститС MCP сСрвСр:

node mcp-server.js
  1. НастройтС ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ модСль для использования MCP сСрвСра, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΅Π³ΠΎ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ MCP сСрвСров.

Настройка Claude Desktop для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с MCP сСрвСром

Для использования Bitrix24 MCP сСрвСра с Claude Desktop, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ claude_desctop_config.json. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ содСрТимого Ρ„Π°ΠΉΠ»Π° claude_desctop_config.json:

{
  "mcpServers": {
    "bitrix24": {
      "command": "node",
      "args": ["/ΠΏΠΎΠ»Π½Ρ‹ΠΉ/ΠΏΡƒΡ‚ΡŒ/ΠΊ/mcp-server/mcp-server.js"],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

Π“Π΄Π΅:

  • bitrix24 - ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя MCP сСрвСра, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для обращСния ΠΊ Π½Π΅ΠΌΡƒ
  • command - ΠΊΠΎΠΌΠ°Π½Π΄Π° для запуска сСрвСра (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ node)
  • args - массив Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ mcp-server.js
  • env - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ окруТСния (ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ пустым, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС настройки ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² mcp-server.js)
  • disabled - Ρ„Π»Π°Π³, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ Π»ΠΈ сСрвСр (Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ false для Ρ€Π°Π±ΠΎΡ‚Ρ‹)
  • autoApprove - массив ΠΈΠΌΠ΅Π½ инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ Π±Π΅Π· явного подтвСрТдСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (рСкомСндуСтся ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ пустым для бСзопасности)

ПослС настройки Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ пСрСзапуститС Claude Desktop, ΠΈ MCP сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ Claude. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты Bitrix24 MCP сСрвСра Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ с Claude.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования инструмСнта Ρ‡Π΅Ρ€Π΅Π· ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ модСль

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π° инструмСнта getLeads
const result = await model.useToolWithMcp("Bitrix24MCP", "getLeads", { filter: JSON.stringify({ STATUS_ID: "NEW" }) });
console.log(result); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список Π½ΠΎΠ²Ρ‹Ρ… Π»ΠΈΠ΄ΠΎΠ²

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ инструмСнт Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ структурированный ΠΎΡ‚Π²Π΅Ρ‚ Π΄Π°ΠΆΠ΅ Π² случаС возникновСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Ошибки Π»ΠΎΠ³ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² консоль для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Для добавлСния Π½ΠΎΠ²Ρ‹Ρ… инструмСнтов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ server.tool(), ΡƒΠΊΠ°Π·Π°Π²:

  1. Имя инструмСнта
  2. Π‘Ρ…Π΅ΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² с использованиСм Zod
  3. ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, которая выполняСт запрос ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚