Slack用户MCP服务器

一个连接Slack的个人MCP服务器,通过用户令牌提供对工作区的全面访问,包括消息搜索、频道历史、私信和以用户身份发布消息。

  • by farsght
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 farsght/slack-user-mcp-server

使用说明

Slack用户MCP服务器

个人 MCP(模型上下文协议) 使用您的 用户令牌 (xoxp-...),让AI代理完全访问您的工作区,包括消息搜索、频道历史、DM和以自己的身份发布。

与基于机器人令牌的Slack集成不同,此服务器充当 你,因此它可以访问您所属的任何频道(包括私人频道和DM),并使用Slack搜索API。

特性

  • 搜索邮件 --完整的Slack搜索语法(from:me, in:#channel, has:link、日期过滤器等)
  • 频道历史 --从您所在的任何频道、DM或群消息中读取消息
  • 发布消息 --以自己的身份(而不是机器人)发送消息
  • 用户查找 --按姓名或电子邮件查找用户
  • 线程读取 --获取一个线程中的所有回复
  • 身份验证 --确认您的连接和身份

工具

工具 说明
slack_search_messages 使用Slack查询语法搜索邮件
slack_list_channels 列出频道(公共、私人、DM)
slack_get_channel_history 阅读频道的最新消息
slack_post_message 以自己的身份发送消息
slack_lookup_user 按姓名或电子邮件查找用户
slack_get_user_info 按ID获取详细的用户资料
slack_get_thread 阅读一个帖子中的所有回复
slack_auth_test 验证您的连接

设置

1.创建Slack应用程序并获取用户令牌

  1. 首选 api.slack.com/apps 并创建新应用程序 从头开始
  2. 在...之下 OAuth和权限,添加这些 用户令牌范围:
    • search:read
    • channels:read, channels:history
    • groups:read, groups:history
    • im:read, im:history
    • mpim:read, mpim:history
    • users:read, users:read.email
    • chat:write
  3. 将应用程序安装到您的工作区
  4. 复制 用户OAuth令牌 (开始于 xoxp-)

2.安装依赖关系并构建

cd slack-user-mcp-server
npm install
npm run build

3.连接到克劳德桌面

将此添加到您的Claude Desktop配置中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "slack-personal": {
      "command": "node",
      "args": ["/path/to/slack-user-mcp-server/dist/index.js"],
      "env": {
        "SLACK_USER_TOKEN": "xoxp-your-token-here"
      }
    }
  }
}

备注:如果你使用像这样的Node版本管理器 fnm 或 nvm,使用完整路径 node 而不仅仅是 "node".找到它 fnm exec --using=default -- which node 或 nvm which default.

4.重新启动克劳德桌面

退出并重新打开Claude Desktop。服务器将出现在您的MCP连接中。

示例查询

连接后,您可以向您的AI助手询问以下问题:

  • “搜索我最近的Slack消息”--使用 from:me
  • “最新的#general是什么?”--频道历史
  • “查找有关第一季度预算的消息”--全文搜索
  • “谁在营销团队?”——用户查询
  • “向#general发送一条消息,说构建是绿色的”——以自己的身份发布

搜索语法

搜索工具支持所有 松弛搜索修饰符:

修改器 示例 说明
from: from:me 或 from:@username 来自用户的消息
in: in:#channel 频道中的消息
has: has:link, has:reaction 按属性筛选
before: / after: after:2024-01-01 日期范围
is: is:thread 仅限线程消息

技术栈

  • TypeScript
  • MCP TypeScript SDK
  • Slack Web API(通过获取)
  • Zod用于输入验证
  • stdio传输