项目简介

这是一个实现了 Model Context Protocol (MCP) 的服务器应用,专门用于通过 Discord webhook 接口发送消息。它将 Discord 的消息发送功能封装成一个标准的 MCP 工具,供兼容 MCP 的客户端(如大模型应用)调用。

主要功能点

  • 消息发送: 提供统一接口向配置的 Discord 频道发送文本或 Markdown 格式消息。
  • MCP 工具: 将消息发送功能注册为名为 'send_message' 的 MCP 工具,支持参数验证和执行。
  • 标准化接口: 遵循 MCP 协议,通过 JSON-RPC 进行通信,方便与各种 MCP 客户端集成。
  • 配置灵活: 支持通过环境变量或命令行参数设置 Discord webhook URL。
  • 错误处理: 内建错误处理和重试机制,提高稳定性。

安装步骤

确保你已经安装了 Python 3.8 或更高版本。

  1. 使用 pip 安装项目:

    pip install discord-mcp-server
  2. 安装 uvx 工具(如果尚未安装):

    pip install uvx

服务器配置 (供 MCP 客户端使用)

MCP 客户端需要知道如何启动和连接到这个服务器。通常,这通过配置客户端的服务器连接参数来实现。对于本服务器,客户端配置应包含以下信息:

  • 服务器名称: 'discord-mcp'
  • 启动命令 (command): 'uvx'
  • 命令参数 (args): 'discord-mcp-server'
  • 环境变量 (env): 必须设置 'DISCORD_WEBHOOK_URL' 环境变量,其值为你的 Discord webhook URL。客户端可以在启动服务器时通过配置传递此环境变量。

示例 (概念性配置,非实际代码):

一个 MCP 客户端配置对象可能看起来像这样(具体格式取决于客户端库):

{
  "name": "discord-mcp",
  "command": "uvx",
  "args": ["discord-mcp-server"],
  "env": {
    "DISCORD_WEBHOOK_URL": "你的 Discord webhook URL"
  }
}

客户端会使用这些信息通过 Stdio 协议启动并连接到服务器。

基本使用方法

一旦服务器被兼容的 MCP 客户端启动并连接,客户端可以通过调用注册的工具来发送消息:

  1. 发现工具: 客户端可以调用 MCP 的 'list_tools' 方法来发现服务器提供的工具列表。
  2. 调用工具: 客户端调用 MCP 的 'call_tool' 方法,指定工具名称 ('send_message') 和参数。
    • 参数:
      • 'content' (必需): 要发送的消息内容。
      • 'msg_type' (可选,默认为 'text'): 消息格式,可以是 '"text"' 或 '"markdown"'。

例如,客户端调用 'send_message' 工具发送 Markdown 消息:

{
  "jsonrpc": "2.0",
  "method": "call_tool",
  "params": {
    "name": "send_message",
    "arguments": {
      "content": "# 今日要点\n- 完成报告\n- 参加会议",
      "msg_type": "markdown"
    }
  },
  "id": "some-unique-id"
}

服务器执行发送操作并将结果通过 JSON-RPC 响应返回给客户端。

信息

分类

通信与社交