mcpField
T
telegram-slack-mcp

telegram-slack-mcp

本地服务
github.com/nileshpatil6通信协作08 周前更新

关于 telegram-slack-mcp

telegram-slack-mcp 提供两个 MCP 服务,让 Claude 通过个人账户读取 Telegram 聊天和多个 Slack 工作区。它支持搜索消息、查看媒体,并默认关闭代用户发送消息的功能。

主要功能

  1. 01读取 Telegram 私聊、群组和频道
  2. 02跨 Slack 工作区搜索与读取
  3. 03查看聊天中的图片和文件
  4. 04通过二维码登录 Telegram
  5. 05发送消息默认关闭

适用场景

  1. 01汇总未读消息
  2. 02查找特定聊天或工作区中的消息
  3. 03查看聊天里分享的图片或文件
  4. 04起草回复并在启用后代账户发送

MCP 相关

项目提供 Telegram 和 Slack 两个 MCP 服务,将个人账户中的聊天、消息搜索及媒体读取能力开放给 MCP 客户端。发送消息功能需通过配置显式启用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"nileshpatil6-telegram-slack": {
"command": "npx",
"args": [
"-y",
"telegram-slack-mcp"
],
"env": {
"TELEGRAM_API_ID": "<TELEGRAM_API_ID>",
"TELEGRAM_API_HASH": "<TELEGRAM_API_HASH>",
"TELEGRAM_ALLOW_SEND": "<TELEGRAM_ALLOW_SEND>",
"SLACK_USER_TOKENS": "<SLACK_USER_TOKENS>",
"SLACK_ALLOW_SEND": "<SLACK_ALLOW_SEND>",
"CHAT_MCP_DATA_DIR": "<CHAT_MCP_DATA_DIR>"
}
}
}
}
启动命令npx -y telegram-slack-mcp
需要配置的环境变量
TELEGRAM_API_IDapi_id from https://my.telegram.org (Telegram server only)
TELEGRAM_API_HASH密钥api_hash from https://my.telegram.org (Telegram server only)
TELEGRAM_ALLOW_SENDSet to 1 to allow sending Telegram messages as you. Off by default.
SLACK_USER_TOKENS密钥One Slack user token (xoxp-) per workspace, comma separated (Slack server only)
SLACK_ALLOW_SENDSet to 1 to allow posting to Slack as you. Off by default.
CHAT_MCP_DATA_DIRWhere the Telegram session is stored. Defaults to ~/.chat-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmtelegram-slack-mcp0.5.1
pypitelegram-slack-mcp0.2.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

telegram-slack-mcp

让 Claude 读取你的真实聊天记录。

两个 MCP 服务,可将 Claude 连接到你个人的 Telegram 和 Slack 账号 — 读取你真实的私信、群组和频道,而不是机器人收件箱。

npm PyPI License

claude mcp add telegram -- npx -y telegram-slack-mcp telegram
claude mcp add slack    -- npx -y telegram-slack-mcp slack

然后直接对话:

“Telegram 上有哪些来自真人的未读消息?” “读取我和 Priya 最近的 30 条消息,并起草一条回复” “在我所有的 Slack 工作区中搜索部署事后分析” “Priya 发给我的截图里是什么?”


为什么要做这个项目

大多数 Telegram 集成使用 Bot API,只能看到发给你创建的机器人的消息。它无法读取你现有的对话。telegram-slack-mcp 使用官方应用所用的同一协议 MTProto,以你的身份进行身份验证 — 因此 Claude 能看到你实际参与的聊天。

对于 Slack,常见的连接器只针对一个工作区。telegram-slack-mcp 为每个工作区使用一个用户令牌,并将它们视为同一个界面,因此“搜索所有地方”就真的意味着搜索所有地方。

安装

选择你已有的运行时。两种运行时提供相同的工具。

Node
claude mcp add telegram -- npx -y telegram-slack-mcp telegram
claude mcp add slack    -- npx -y telegram-slack-mcp slack
Python
claude mcp add telegram -- uvx telegram-slack-mcp telegram
claude mcp add slack    -- uvx telegram-slack-mcp slack
Claude Code 插件
/plugin marketplace add nileshpatil6/telegram-slack-mcp
/plugin install telegram@telegram-slack-mcp
/plugin install slack@telegram-slack-mcp
其他 MCP 客户端(Claude Desktop、Cursor 等)
{
  "mcpServers": {
    "telegram": {
      "command": "npx",
      "args": ["-y", "telegram-slack-mcp", "telegram"],
      "env": { "TELEGRAM_API_ID": "1234567", "TELEGRAM_API_HASH": "your_hash" }
    },
    "slack": {
      "command": "npx",
      "args": ["-y", "telegram-slack-mcp", "slack"],
      "env": { "SLACK_USER_TOKENS": "xoxp-one,xoxp-two" }
    }
  }
}

设置

Telegram — 2 分钟
  1. 前往 https://my.telegram.org → API development tools → 创建应用。

  2. 复制 api_id 和 api_hash,并设置:

    claude mcp add telegram      -e TELEGRAM_API_ID=1234567      -e TELEGRAM_API_HASH=your_hash      -- npx -y telegram-slack-mcp telegram
    
  3. 关联你的账号。你可以让 Claude 帮忙 — “登录 Telegram” — 也可以在终端中自行操作,无需 MCP 客户端:

    TELEGRAM_API_ID=1234567 TELEGRAM_API_HASH=your_hash npx -y telegram-slack-mcp login
    
    # PowerShell
    $env:TELEGRAM_API_ID="1234567"; $env:TELEGRAM_API_HASH="your_hash"
    npx -y telegram-slack-mcp login
    

    无论使用哪种方式,都需要扫描二维码,且会话会保存到 ~/.chat-mcp。

    通过 Claude 操作:

    它会调用 login,并返回一个页面链接,页面上会显示二维码(如果客户端支持,也会显示文本形式的验证码)。在手机 Telegram 中扫描 — 设置 → 设备 → 关联桌面设备 — 然后它会调用 login_status 进行确认。无需手机号、短信验证码,也无需在任何地方输入两步验证密码。在同一台机器上,你也可以点击“在 Telegram Desktop 中打开”,而不用扫描。

    会话会保存到 ~/.chat-mcp 并持续有效;只需操作一次。

无法扫描?使用手机号登录流程

login_start(phone) 会向你发送验证码,login_complete(code, password?) 会完成登录。请注意,使用此方式时,你的手机号和登录验证码会作为工具参数经过对话,因此会进入模型上下文。二维码流程不会将它们暴露在上下文中。

Slack — 5 分钟
  1. 前往 https://api.slack.com/apps → Create New App → From a manifest。

  2. 粘贴 slack-app-manifest.yaml — 它会预填所有权限范围。

  3. Install to Workspace,然后复制 User OAuth Token(xoxp-…,不是 xoxb-)。

  4. 对你需要的每个工作区重复第 3 步。同一个应用,每个工作区一个令牌。

  5. 让 Claude 帮忙:“连接我的 Slack” — login 工具会提示你输入令牌,逐个向 Slack 验证,然后将它们保存到 ~/.chat-mcp。无需在配置中填写任何内容。

    更喜欢使用环境变量?也可以:

    claude mcp add slack -e SLACK_USER_TOKENS=xoxp-aaa,xoxp-bbb -- npx -y telegram-slack-mcp slack
    

Slack 没有本地 OAuth 流程,因此你需要自行创建应用:Slack 的 OAuth 要求客户端密钥和 HTTPS 重定向 URL,因此通过 npm 分发的包无法完成该流程,除非公开提供密钥或运行回调服务。本项目没有服务端,所以会改为向你索取令牌。

工具

Telegram
工具功能
login()扫描二维码关联你的账号——无需手机号或验证码
login_status()检查是否已扫描二维码
login_start(phone)备用方式:向自己发送登录验证码
login_complete(code, password?)完成登录并保存会话
whoami()查看已连接的账号
list_chats(limit, query, unread_only, kind)最近的聊天;kind 可筛选 dm、group、channel、bot 等
read_chat(chat, limit, before_id)某个聊天的消息——chat 接受 @username、ID 或名称的一部分
search_messages(query, chat?, limit)全文搜索,可搜索一个或所有聊天
unread_summary(limit, per_chat, kind)未读消息概览;kind: "dm" 可跳过频道消息
read_media(chat, message_id, max_kb)查看照片或文件——返回实际图片,而不只是文件类型
send_message(chat, text, reply_to?)以你的身份回复——默认关闭,除非设置 TELEGRAM_ALLOW_SEND=1
Slack
工具功能
login()提示你输入 xoxp- 令牌,验证并保存
whoami()查看所有已连接的工作区,以及你在各工作区中的身份
list_channels(limit, query, workspace, types)跨工作区查看频道
list_dms(limit, workspace)一对一和群组私信
read_channel(channel, limit, workspace, before_ts)查看一个频道或私信
read_thread(channel, thread_ts, limit, workspace)查看某个主题中的回复
search_messages(query, limit, workspace)支持 in:#chan、from:@user
unread_summary(limit, per_chat, workspace)查看所有位置的未读消息
read_file(file_id, workspace, max_kb)查看 Slack 中分享的文件——返回实际图片
send_message(channel, text, workspace, thread_ts?)以你的身份发布消息——默认关闭,除非设置 SLACK_ALLOW_SEND=1

每个 Slack 工具都接受可选的 workspace(名称中的任意子字符串)。留空则会在所有工作区中操作;只有当多个工作区中存在同名频道时才必须填写,错误提示会告知你该填什么。

配置

变量默认值含义
TELEGRAM_API_ID—来自 my.telegram.org
TELEGRAM_API_HASH—来自 my.telegram.org
TELEGRAM_ALLOW_SEND0设置为 1 后,Claude 可以以你的身份发送 Telegram 消息
SLACK_USER_TOKENS—每个工作区一个 xoxp- 令牌,以逗号分隔
SLACK_ALLOW_SEND0设置为 1 后,Claude 可以以你的身份在 Slack 中发布消息
CHAT_MCP_DATA_DIR~/.chat-mcpTelegram 会话的存储位置

两个服务默认都关闭发送功能。读取是安全的默认设置;如需写入,必须主动选择启用。

隐私

任何内容都不会发送到属于本项目的服务器。本项目没有这样的服务器。

telegram-slack-mcp 完全在你的计算机上运行。它产生的唯一网络流量,是使用你自己的凭据直接访问 Telegram 和 Slack 各自的 API。没有遥测、分析、崩溃报告、许可证检查或“回传数据”——搜索源代码即可确认,根本找不到任何端点。

数据流向如下:

your machine  <-->  Telegram / Slack APIs      (your credentials, your account)
your machine  <-->  Claude                     (only what you ask Claude to read)

你的凭据绝不会传给 Claude。你的会话文件和 xoxp- 令牌会保存在 ~/.chat-mcp 和你的环境中;服务在本地使用它们进行 API 调用,并且只返回消息本身。

会传给 Claude 的是你询问的聊天内容——这正是该工具的用途。如果你让 Claude 阅读一段对话,该对话就会进入你的 Claude 对话,并按照 Anthropic 的隐私政策进行处理,和你自己粘贴文本完全一样。不会读取其他内容,也不会在后台读取任何内容:只有 Claude 调用工具时,服务才会执行操作。

本项目的作者无法看到其中任何内容。

安全

请阅读本部分。

  • 这些操作会以你的身份执行,而不是以机器人的身份。 发送的任何内容都会显示为由你的账号发送,聊天中的其他人无法分辨。
  • 保存的会话就是完整的凭证。 ~/.chat-mcp/telegram.session 和你的 xoxp- 令牌等同于登录了你的账号。任何复制了它们的人都能使用你的账号。它们永远不会离开你的设备,这里的任何内容都不会主动连接外部服务器。
  • Claude 读取的所有内容都会进入模型的上下文。 不要将此工具用于存有你不会发送给模型的数据的账号。
  • Telegram 将此类工具称为 userbot。 自动化个人账号受 Telegram 服务条款限制。少量个人读取和回复很常见,风险也较低;批量自动化会导致账号被封禁。由你决定,后果由你的账号承担。
  • 可随时撤销:Telegram → 设置 → 设备;也可以在 Slack 的应用设置中删除令牌。删除 ~/.chat-mcp 会清除本地会话。

故障排除

“Telegram 尚未登录”——运行登录流程:让 Claude 使用你的电话号码登录。登录状态会持续保存;如果此提示反复出现,请检查 CHAT_MCP_DATA_DIR 是否可写。

“缺少 Telegram 凭证”——服务器未收到 TELEGRAM_API_ID / TELEGRAM_API_HASH。使用 claude mcp add 时,通过 -e 传入它们。

Slack 完全没有返回任何内容——你很可能已通过一个空工作区或错误的工作区完成授权。运行 whoami,查看实际连接了哪些工作区。

"#general" 在多个工作区中都存在——传入 workspace 以消除歧义;错误信息会列出可选项。

Slack 搜索返回 not_allowed_token_type——该令牌是机器人令牌(xoxb-)。你需要 User OAuth 令牌(xoxp-)。

开发

git clone https://github.com/nileshpatil6/telegram-slack-mcp
cd telegram-slack-mcp
npm install && npm run build
node dist/cli.js telegram        # run the server on stdio

cd python && python -m build     # build the Python distribution

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。