Skip to main content
Glama
nileshpatil6

telegram-slack-mcp

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

然后直接说:

“电报上有哪些真人发来的未读消息?” “读一下我和 Priya 的最近 30 条消息,然后帮我起草一条回复。” “在我所有的 Slack 工作区里搜索部署复盘。”


为什么会有这个项目

大多数 Telegram 集成使用的是 Bot API,它只能看到发给你创建的机器人的消息。它无法读取已经有过的对话。telegram-slack-mcp 使用 MTProto,也就是官方应用使用的同一协议,并且以你的身份进行认证——所以 Claude 看到的是你真实拥有的聊天。

对于 Slack,一般的连接器只能被限制在单个工作区内。telegram-slack-mcp 为每个工作区配置一个用户 token,并把它们当作同一个表面来使用,因此“全部搜索”就是全部。

Related MCP server: telegram-mcp-server

安装

选择你已具备的运行时即可。两者提供相同的工具。

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
{
  "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 开发工具 → 创建一个应用。

  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,我的号码是 +91…”, 它会调用 login_start,Telegram 向你发送验证码,你粘贴验证码后,它调用 login_complete。仅在这一次——会话数据保存于 ~/.chat-mcp,并且永久保留。

启用了两步验证?把验证码和你的 Cloud 密码一起给 Claude。

Slack —— 5 分钟

  1. 打开 https://api.slack.com/apps → 创建新 App → 从 manifest 文件生成。

  2. 粘贴 slack-app-manifest.yaml —— 它会预先填好所有 scope。

  3. 安装到工作区,然后复制用户 OAuth Token(xoxp-…,不是 xoxb-)。

  4. 对每个你想连接的工作区重复第 3 步。同一个 App,一个工作区一个 token。

  5. 同时配置好全部 token,用英文逗号分隔:

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

工具

Telegram

工具函数

说明

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 可以是 @用户名、ID 或名称的一部分

search_messages(query, chat?, limit)

全文搜索,可以限定单个聊天或全部

unread_summary(limit, per_chat, kind)

未读汇总;使用 kind: "dm" 跳过大量频道

send_message(chat, text, reply_to?)

以你的身份回复—— 默认关闭,除非设置 TELEGRAM_ALLOW_SEND=1

Slack

工具函数

作用

whoami()

显示所有已连接的工作区,以及每个工作区中的身份

list_channels(limit, query, workspace, types)

跨工作区列出频道

list_dms(limit, workspace)

列出单聊和群组私信

read_channel(channel, limit, before_ts, workspace)

读取某个频道或私信

read_thread(channel, thread_ts, limit, workspace)

读取线程内的回复

search_messages(query, limit, workspace)

支持 in:#chan 和 from:@user 语法

unread_summary(limit, per_chat, workspace)

查看所有地方的未读内容

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_SEND

0

设为 1 后允许 Claude 以你的身份发送 Telegram 消息

SLACK_USER_TOKENS

—

每个工作区一个 xoxp- token,逗号分隔

SLACK_ALLOW_SEND

0

设为 1 后允许 Claude 以你的身份发布到 Slack

CHAT_MCP_DIR

~/.chat-mcp

Telegram 会话保存的位置

在两个服务器中,发送功能默认都是关闭的。默认读取是安全的;你必须有意识地开启写入功能。

隐私

本项目不向任何属于本项目的服务器发送任何数据。项目本身就没有这类服务器。

telegram-slack-mcp 完全在你自己的机器上运行。它产生的唯一网络流量是直接访问 Telegram 和 Slack 官方 API,并且使用你自己的凭据。没有 telemetry,没有 analytics,没有 crash reporting,没有 licence check,没有 “phone home”——当你 grep 源码,也找不到任何服务器端点。

数据流转路径如下:

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

你的凭据永远不会到达 Claude。你的会话文件和 xoxp- token 始终保留在 ~/.chat-mcp 和你的环境变量中;服务器在本地使用它们进行 API 调用,只把消息本身返回。

真正传到 Claude 的,是你要求它查看的聊天内容——因为这才是这个工具的意义。如果你让 Claude 读取一段对话,那么那段对话就会进入你的 Claude 会话中,在 Anthropic 的隐私政策内处理,和你自己粘贴这些文字没有区别。其他内容不会被读取,也没有后台读取。

此项目的作者无法看到其中任何数据。

安全

请仔细阅读本部分。

  • 它们以你,而不是以机器人身份执行操作。 你发出的任何消息,都将显示为从你的账号发出,那些聊天里的人无法区分。

  • 会话保存是一个完整凭据。 ~/.chat-mcp/telegram.session 以及你的 xoxp- token,等同于直接以你身份登录。任何复制了它们的人,都能完全控制你的账号。这些信息从不离开你的机器,而且这里也没有任何东西会 home。

  • Claude 读取的所有内容,都会进入到模型的上下文环境中。 不要把这个工具指向你已经不想发送给模型的数据账户。

  • Telegram 将这称为自动化。 为个人账号做自动化,会受到 Telegram 服务条款的限制。轻度的个人读取和回复使用很常见,风险也较低;但批量自动化可能导致账号封禁。你的账号的主要保护,你自行承担。

  • 随时可以撤销Session:Telegram → 设置 → 设备列表,或者删除 Slack 应用中的 token。删除 ~/.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 — token 就是 bot token(xoxb-)。你需要的是用户 OAuth token(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

License

MIT

Related MCP Connectors

Related MCP Servers