Telegram-Bridge-MCP
使用说明(Markdown)
-
项目简介
- 该仓库实现了一个 MCP(Model Context Protocol)服务器,用来把 Telegram 机器人作为“上下文源”和“交互入口”,提供资源、工具、提示模板等上下文相关能力,供 LLM 客户端通过 JSON-RPC 进行访问与控制。
-
主要功能点
- 资源管理:提供可由 MCP 客户端直接读取的资源(如行为指南、设置手册、格式化参考等)。
- 工具注册与执行:定义多种工具,LLM/客户端可通过 MCP 调用外部功能(发送消息、等待回复、传输文件、转写语音等)。
- Prompt 与文本渲染:支持将提示模板与主题注入逻辑,渲染出用于与用户交互的文本。
- 会话与安全:内置会话管理、能力声明以及基于用户/聊天的安全过滤。
- 多传输协议:默认通过 STDIO 进行本地调试,亦支持 SSE、WebSocket 等传输方式(通过 MCP 客户端接入)。
-
安装步骤
- 克隆仓库并安装依赖(Node.js 18+,推荐使用 pnpm)。
- 构建项目以生成 dist 目录下的可执行文件。
- 配置环境变量,例如 BOT_TOKEN、ALLOWED_USER_ID、ALLOWED_CHAT_ID。
- 直接以 Node 运行 dist/index.js,或通过 MCP 客户端将服务器以 stdio 方式接入。
-
服务器配置(MCP 客户端需要的最小信息) 为了让 MCP 客户端能够启动并连接该 MCP 服务器,提供一个配置样例(JSON)如下: { "server_name": "telegram-bridge-mcp", "servers": { "telegram": { "type": "stdio", "command": "node", "args": ["dist/index.js"], "cwd": "/absolute/path/to/telegram-bridge-mcp", "env": { "BOT_TOKEN": "YOUR_TOKEN", "ALLOWED_USER_ID": "YOUR_USER_ID", "ALLOWED_CHAT_ID": "YOUR_CHAT_ID" } } } } 说明:
- server_name 为 MCP 服务器的名称,与仓库中的 server 启动逻辑相匹配。
- telegram 是该 MCP 服务器对外暴露的 MCP 服务名称,type 为 stdio,command 为执行入口,args 指定运行 dist/index.js 的参数。
- cwd 需要指向实际项目根目录的绝对路径。
- env 中的 BOT_TOKEN、ALLOWED_USER_ID、ALLOWED_CHAT_ID 需要你在 pairing 流程中获取并填入实际值。
-
基本使用方法
- 在开发阶段,直接通过 Node 运行 dist/index.js,观察日志输出与交互。
- 使用 MCP 客户端(如 VS Code 集成或 Claude Desktop 配置)将 telegram 服务接入,按照 MCP 客户端文档提供的方式对接。
- 对于生产,请参考 README 的 Docker 方案,将镜像作为服务运行,确保环境变量正确挂载。
-
额外信息
- 服务器包含大量工具实现(如 send_message、notify、wait_for_message、get_updates 等),并提供资源与行为指引,便于与 LLM 客户端在同一上下文内协作。
- 如需进一步定制,请查看 src 目录中的各工具实现,以及 server.ts/ index.ts 的入口逻辑。
-
参考示例
- README 中的快速开始与部署示例,包含本仓库的 Docker 使用方式和跨平台部署的要点。