项目简介

这是一个实现了 Model Context Protocol (MCP) 的服务器,其主要功能是作为一个桥梁,让大型语言模型 (LLM) 客户端能够方便地调用钉钉群机器人的能力,发送各种消息到指定的群聊。

主要功能点

  • 发送文本消息: 通过LLM客户端的指令,向钉钉群机器人发送普通文本消息。
  • 发送Markdown消息: 支持发送格式化的Markdown消息,使得信息展示更清晰。
  • @所有人: 在发送消息时,可以选择@群内所有成员。

安装步骤

本项目作为MCP服务器运行,需要Node.js环境(用于npx方式)或Docker环境。

  1. 获取钉钉机器人信息:

    • 在钉钉群设置中创建或选择一个自定义机器人。
    • 复制机器人的Webhook地址和Secret(如果开启了签名校验)。
    • 从Webhook地址中提取 'access_token'。例如,如果Webhook是 'https://oapi.dingtalk.com/robot/send?access_token=abcdefg',则 'access_token' 就是 'abcdefg'。
  2. 配置环境变量: 在运行MCP服务器的环境中设置以下环境变量:

    • 'DINGTALK_BOT_ACCESS_TOKEN': 钉钉机器人的访问令牌(必须)。
    • 'DINGTALK_BOT_SECRET': 钉钉机器人的签名密钥(如果机器人开启了签名校验,可选)。
  3. 运行服务器: 你可以通过以下方式运行服务器:

    • 使用npx (需要Node.js环境): 打开终端,设置好环境变量后,运行 'npx -y mcp-dingding-bot'
    • 使用Docker: 如果你配置了Docker环境,可以先构建或拉取Docker镜像(例如 'shawyeok/mcp-dingding-bot'),然后设置好环境变量并运行容器。

服务器配置

要让MCP客户端(如支持MCP协议的LLM应用)连接到此服务器,需要在客户端的配置中添加此MCP服务器的信息。以下是一个典型的客户端配置示例(JSON格式,不包含实际代码):

{
  "mcpServers": {
    "dingding-bot": { // 服务器的别名,客户端内部使用
      "command": "npx", // 或 "docker" 等,启动服务器的命令
      "args": [
        "-y",
        "mcp-dingding-bot" // 或 docker run 的参数
      ],
      "env": { // MCP客户端在启动服务器时会设置的环境变量
        "DINGTALK_BOT_ACCESS_TOKEN": "<你的钉钉机器人访问令牌>",
        "DINGTALK_BOT_SECRET": "<你的钉钉机器人密钥>" // 可选
      }
    }
  }
}

请将上述配置中的命令、参数以及环境变量值替换为你实际使用的运行方式和钉钉机器人信息。配置完成后,客户端启动时会自动根据这些信息启动并连接到此MCP服务器。

基本使用方法

一旦MCP客户端成功连接到此钉钉机器人MCP服务器,LLM就能够感知到服务器提供的工具能力。LLM可以根据对话上下文或用户的需求,通过MCP协议调用服务器注册的工具,例如 'send_text_message' 或 'send_markdown_message'。

例如,LLM可能会生成一个调用 'send_text_message' 工具的请求,附带需要发送的文本内容和是否@所有人的参数。MCP服务器接收到请求后,会调用内部逻辑通过钉钉API发送消息到配置好的群聊,并将发送结果(成功或失败信息)返回给LLM客户端。

用户通常无需直接与此服务器交互,而是通过与支持MCP协议的LLM客户端对话,间接利用此服务器提供的钉钉消息发送能力。

信息

分类

AI与计算