项目简介

Bitrix24 MCP Server 是一个 MCP 服务器的实现,它作为 LLM 客户端和 Bitrix24 CRM 之间桥梁。该服务器不直接提供 REST API,而是作为 MCP 服务器,通过标准化的 MCP 协议与 LLM 客户端通信,将 Bitrix24 CRM 的数据和功能以 工具 (Tools) 的形式提供给 LLM 使用。开发者可以通过 LLM 客户端配置连接此 MCP 服务器,从而在 LLM 应用中无缝集成 Bitrix24 CRM 的能力。

注意: 该仓库包含两个主要部分:

  1. 'server.js' (REST API Server): 这是一个 Express.js 构建的 REST API 服务,但它不是 MCP 服务器。它作为 Bitrix24 数据的接口层,被 'mcp-server.js' 调用的后端服务。
  2. 'mcp-server/mcp-server.js' (MCP Server): 这才是真正的 MCP 服务器实现。它使用 '@modelcontextprotocol/sdk' 库构建,通过 Stdio 传输协议与 MCP 客户端通信,并调用 'server.js' 提供的 REST API 来获取 Bitrix24 数据,然后将这些数据封装成 MCP 工具 (Tools) 提供给 LLM 客户端使用。

因此,本仓库是有效的 MCP 服务器实现,指的是 'mcp-server/mcp-server.js' 部分。

主要功能点

  • 资源 (Resources) 代理 (间接实现): 虽然没有直接管理 MCP 资源,但通过 工具 (Tools) 间接提供了对 Bitrix24 CRM 各种实体(如: лиды, сделки, контакты, задачи 等)的访问能力,LLM 可以通过调用工具获取 CRM 数据,相当于将 Bitrix24 CRM 数据作为 LLM 的外部资源。
  • 工具 (Tools) 注册和执行: 'mcp-server.js' 使用 '@modelcontextprotocol/sdk' 注册了丰富的工具集,涵盖了 Bitrix24 CRM 的常用操作,例如:
    • 获取、创建、更新 лиды (Leads)
    • 获取、创建、更新 сделки (Deals)
    • 获取 контакты (Contacts)
    • 获取、创建、更新 активности (Activities/Дела)
    • 获取 пользователи (Users)
    • 获取 задачи (Tasks)
    • 获取 звонки统计 (Call Statistics)
    • 获取 文件信息 (File Information)
    • 添加 таймлайн комментарии (Timeline Comments)
    • 获取 CRM 摘要信息 (CRM Summary)
    • 检查 API 连接状态 (Check API Connection) 这些工具允许 LLM 通过标准化的方式调用 Bitrix24 CRM 的功能。
  • Prompt 模板 (Prompts): 仓库本身未直接提供 Prompt 模板功能。但由于其作为 MCP 服务器,可以与支持 Prompt 模板的 MCP 客户端(如 Claude Desktop)配合使用,在客户端定义 Prompt 模板,并利用此服务器提供的工具获取 CRM 上下文信息,从而实现可定制的 LLM 交互模式。
  • 基于 Stdio 传输协议: 'mcp-server.js' 使用 StdioServerTransport,支持通过标准输入输出流与 MCP 客户端进行 JSON-RPC 通信,方便集成到各种 LLM 客户端环境中。
  • 会话管理和能力声明: MCP 服务器负责会话管理,并通过注册的 工具 (Tools) 向客户端声明其能力。

简而言之,该 MCP Server 将 Bitrix24 CRM 的各种 API 功能封装成了易于 LLM 调用的工具,使得 LLM 能够方便地利用 Bitrix24 CRM 的数据和功能。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/OneAtDrt/Bitrix24_MCP_Server.git
    cd Bitrix24_MCP_Server
  2. 安装 REST API Server 依赖:

    npm install
  3. 配置 REST API Server:

    • 复制 '.env.example' 文件并重命名为 '.env'。
    • 根据您的 Bitrix24 实例信息,修改 '.env' 文件中的以下参数:
      • 'PORT': REST API Server 监听的端口,默认为 '3000'。
      • 'BITRIX_DOMAIN': 您的 Bitrix24 域名,例如 'your-domain.bitrix24.ru'。
      • 'BITRIX_WEBHOOK_TOKEN': 您的 Bitrix24 Webhook Token。
      • 'LOG_LEVEL': 日志级别,例如 'info', 'debug', 'error' 等。
  4. 启动 REST API Server:

    npm start

    确保 REST API Server 成功运行,默认监听 'http://localhost:3000'。

  5. 安装 MCP Server 依赖:

    cd mcp-server
    npm install
  6. 配置 MCP Server (可选):

    • 'mcp-server/mcp-server.js' 文件中定义了 'API_BASE_URL = "http://localhost:3000/api";',默认情况下 MCP Server 会连接到运行在 'http://localhost:3000' 的 REST API Server。如果您修改了 REST API Server 的端口或地址,需要同步修改 'mcp-server.js' 中的 'API_BASE_URL'。
  7. 启动 MCP Server:

    cd mcp-server
    node mcp-server.js

    MCP Server 启动后,将在控制台输出 "Bitrix24 MCP сервер успешно запущен и готов к работе" 等信息,表示 MCP Server 已经成功运行并等待 MCP 客户端连接。

服务器配置 (MCP 客户端)

要将此 MCP Server 连接到 MCP 客户端(例如 Claude Desktop),您需要在 MCP 客户端的配置文件中添加此服务器的配置信息。以 Claude Desktop 为例,您需要编辑 'claude_desktop_config.json' 文件,添加如下 'mcpServers' 配置:

{
  "mcpServers": {
    "bitrix24_connector": { //  服务器名称,可以自定义,在客户端中用于标识和调用此服务器。
      "command": "node",    //  启动 MCP Server 的命令,通常为 Node.js 的 'node' 命令。
      "args": [             //  启动命令的参数,指向 MCP Server 的入口文件 mcp-server.js 的**完整路径**。
        "/完整路径/Bitrix24_MCP_Server/mcp-server/mcp-server.js"
      ],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

请务必将 '/完整路径/Bitrix24_MCP_Server/mcp-server/mcp-server.js' 替换为您本地 'mcp-server.js' 文件的实际完整路径。

配置完成后,重启 MCP 客户端,客户端应该能够自动连接到此 MCP Server。

基本使用方法

成功连接 MCP Server 后,您可以在 LLM 客户端中使用注册的 工具 (Tools) 与 Bitrix24 CRM 进行交互。

例如,在 Claude Desktop 中,您可以使用如下方式调用 'getLeads' 工具获取 лиды (Leads) 列表:

// 假设您在 Claude Desktop 中使用 JavaScript 环境
const leads = await model.useToolWithMcp("bitrix24_connector", "getLeads", {});
console.log(leads);

其中:

  • '"bitrix24_connector"': 是您在 'claude_desktop_config.json' 中配置的 'server name' (服务器名称)。
  • '"getLeads"': 是您要调用的 工具 (Tool) 的名称,例如 'getDeals', 'createLead', 'updateDeal' 等,请参考 'mcp-server/mcp-server.js' 文件中定义的工具列表。
  • '{}': 是传递给 工具 (Tool) 的参数,根据不同工具的要求传递不同的参数,例如 'getLeads' 工具可以传递 'filter' 参数进行数据过滤。

更详细的工具使用方法和参数说明,请参考 'mcp-server/mcp-server.js' 文件中每个 工具 (Tool) 的定义和描述。

信息

分类

商业系统