项目简介
这是一个实现了 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 或更高版本。
-
使用 pip 安装项目:
pip install discord-mcp-server -
安装 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 客户端启动并连接,客户端可以通过调用注册的工具来发送消息:
- 发现工具: 客户端可以调用 MCP 的 'list_tools' 方法来发现服务器提供的工具列表。
- 调用工具: 客户端调用 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 响应返回给客户端。
信息
分类
通信与社交