Token导航 LogoToken导航TokenDH.com
Straight Connect logo
办公协作stdio官方级别未说明来源级核验

Straight Connect

MCP Server

MCP服务器用于通信服务连接器,目前支持Telegram多账号配置,设计具有可扩展性,未来可添加更多服务(如Slack、Discord、电子邮件等)。

工具数

28

提示词数

0

GitHub Stars

1

资源数

0
PythonAPI集成团队协作

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AI-Guru

提供方

AI-Guru

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run config

详细介绍

直接连接

![](banner.png)

通信服务连接器的MCP服务器。目前支持Telegram多账户配置。专为可扩展性而设计——稍后可以添加更多服务(Slack、Discord、电子邮件等)。

建筑

mcp/
├── server.py            # FastAPI + FastMCP entry point
├── telegram_service.py  # Shared Telegram service layer
├── telegram_api.py      # REST API routes
├── telegram.py          # MCP tool definitions + config
├── requirements.txt     # Server dependencies
└── Dockerfile

src/
├── config.py          # Generates mcp.json from .env
└── chat.py            # Gradio + LangChain ReAct chat app

docker-compose.yaml
pyproject.toml
.env                   # Your configuration (not committed)
.env.example           # Configuration template

服务器公开了两个接口:

  • 主控程序 用于AI代理工具
  • REST API 用于直接HTTP访问

两个接口使用相同的底层 TelegramService 层,确保行为一致。

设置

  1. 复制环境模板并填写您的值:
cp .env.example .env
  1. 从获取机器人令牌 @植物学家 在Telegram上添加它们 .env.
  1. 启动MCP服务器:
docker compose up --build -d
  1. 验证它是否正在运行:
docker compose logs mcp

配置

所有配置都存在 .env。参见 .env.example 对于完整模板。

电报账户

# Comma-separated account labels
TELEGRAM_ACCOUNTS=nietzsche,aurelia

# Per-account bot tokens (label uppercased)
TELEGRAM_NIETZSCHE_BOT_TOKEN=your-token-here
TELEGRAM_AURELIA_BOT_TOKEN=your-token-here

工具级别

控制每个帐户可用的Telegram工具。设置全局默认值,并可选择覆盖每个帐户:

# Global default
TELEGRAM_LEVEL=basic

# Per-account override
TELEGRAM_NIETZSCHE_LEVEL=standard
TELEGRAM_AURELIA_LEVEL=full
级别工具(累积)
基本的get_me, send_message, get_updates
标准+ forward_message, edit_message_text, delete_message, send_photo, send_document
先进的+ get_chat, send_location, send_poll, pin_chat_message, unpin_chat_message, get_chat_member_count, get_chat_member
满的+ send_audio, send_video, send_voice, send_sticker, copy_message, set_message_reaction, leave_chat, send_contact, send_venue

允许聊天

可选择限制机器人帐户可以与哪些聊天进行交互。如果设置,则任何针对不在列表中的聊天的工具调用都将被拒绝。如果未设置,则允许所有聊天。

# Comma-separated chat IDs (user IDs, group IDs, @channel_usernames)
TELEGRAM_NIETZSCHE_ALLOWED_CHATS=123456789,-1001234567890
TELEGRAM_AURELIA_ALLOWED_CHATS=987654321,@mychannel

这适用于所有需要 chat_id 参数。对于 forward_messagecopy_message,检查源聊天和目标聊天。

允许的用户ID

限制机器人帐户将与哪些Telegram用户进行交互。来自未列出用户的传入更新将通过以下方式自动过滤掉 get_updates。如果未设置,则允许所有用户使用,并在启动时记录警告。

TELEGRAM_NIETZSCHE_ALLOWED_USER_IDS=123456789
TELEGRAM_AURELIA_ALLOWED_USER_IDS=5138099108,987654321

MCP端口

MCP_PORT=9831

聊天模型

被...使用 uv run chat 对于Gradio测试界面:

OPENAI_API_BASE=http://localhost:8000/v1
OPENAI_API_KEY=not-needed
CHAT_MODEL=openai:your-model-name

MCP端点

每个帐户都有自己的端点,由服务和帐户标签限定:

http://localhost:9831/mcp/telegram/

示例:

  • http://localhost:9831/mcp/telegram/nietzsche
  • http://localhost:9831/mcp/telegram/aurelia

没有共享 /mcp endpoint——每个URL只对一个帐户开放。这使得MCP客户端能够为每个帐户连接不同的工具命名空间。

REST API

REST API与MCP一起提供,用于直接HTTP访问。这两个接口使用相同的底层服务层。

基础URL: http://localhost:9831/api/telegram/{account}/...

Swagger文档: http://localhost:9831/docs

端点

方法端点描述级别
得到/{account}/me获取机器人信息基本
职位/{account}/chats/{chat_id}/messages发送消息基本
得到/{account}/updates获取更新(自动确认)基本
职位/{account}/chats/{chat_id}/forward转发消息标准
PUT/{account}/chats/{chat_id}/messages编辑消息标准
删除/{account}/chats/{chat_id}/messages/{message_id}删除消息标准
职位/{account}/chats/{chat_id}/photos发送照片标准
职位/{account}/chats/{chat_id}/documents发送文档标准
得到/{account}/chats/{chat_id}获取聊天信息高级
职位/{account}/chats/{chat_id}/location发送位置高级
职位/{account}/chats/{chat_id}/polls发送投票高级
职位/{account}/chats/{chat_id}/pin固定消息高级
职位/{account}/chats/{chat_id}/unpin打开邮件高级
得到/{account}/chats/{chat_id}/member-count获取会员数高级
得到/{account}/chats/{chat_id}/members/{user_id}获取会员信息高级
职位/{account}/chats/{chat_id}/audio发送音频已满
职位/{account}/chats/{chat_id}/video发送视频完整
职位/{account}/chats/{chat_id}/voice发送语音信息已满
职位/{account}/chats/{chat_id}/stickers发送贴纸完整
职位/{account}/chats/{chat_id}/copy复制邮件完整
职位/{account}/chats/{chat_id}/reactions设置反应
职位/{account}/chats/{chat_id}/leave离开聊天已满
职位/{account}/chats/{chat_id}/contacts发送联系人已满
职位/{account}/chats/{chat_id}/venues发送地点已满

示例

# Get bot info
curl http://localhost:9831/api/telegram/aurelia/me

# Send a message
curl -X POST http://localhost:9831/api/telegram/aurelia/chats/123456789/messages \
  -H "Content-Type: application/json" \
  -d '{"text": "Hello!"}'

# Get updates (auto-acknowledged)
curl "http://localhost:9831/api/telegram/aurelia/updates?limit=10"

# Get updates without acknowledging
curl "http://localhost:9831/api/telegram/aurelia/updates?auto_acknowledge=false"

客户端工具

生成mcp.json

打印从您的 .env:

uv run config

输出:

{
  "mcpServers": {
    "nietzsche": {
      "url": "http://localhost:9831/mcp/telegram/nietzsche"
    },
    "aurelia": {
      "url": "http://localhost:9831/mcp/telegram/aurelia"
    }
  }
}

聊天界面

启动Gradio web UI,使用LangChain ReAct代理连接到所有配置的MCP服务器:

uv run chat

启动时,它将:

  1. 连接到每个配置的MCP服务器
  2. 列出每个帐户的所有可用工具
  3. 测试配置的聊天模型
  4. 启动Gradio界面

工具名称以帐户标签作为前缀以消除歧义(例如。, nietzsche_telegram_send_message, aurelia_telegram_get_updates).

运作原理

  • 共享服务层:MCP工具和REST API都使用 TelegramService 对于所有Telegram操作,确保行为一致
  • URL 路由:ASGI中间件重写 /mcp// 连接到内部FastMCP端点,并通过以下方式设置帐户上下文 contextvars
  • 动态注册:只有已配置的服务才注册其工具。如果 TELEGRAM_ACCOUNTS 为空,不存在Telegram工具
  • 电平门控:工具根据所有帐户的最高级别进行注册。在调用时进行每个帐户级别的检查,如果帐户级别不足,则返回错误
  • 聊天白名单:每个帐户可选 ALLOWED_CHATS 限制机器人可以与哪些聊天进行交互
  • 用户筛选:每个帐户可选 ALLOWED_USER_IDS 筛选传入更新,使其仅包含来自指定用户的消息
  • 自动确认更新:默认情况下, get_updates 自动确认检索到的更新,因此在后续调用中不会再次返回
  • 可扩展性:新服务遵循相同的模式——添加配置类,有条件地注册工具,中间件通过自动路由 /mcp//

目录标签

目录标签

PythonAPI集成团队协作通信服务本地部署多账号管理Telegram集成RESTAPIMCP工具

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

28

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotokenremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP