Slack令牌提取工具

一款通过Chrome DevTools协议自动提取Slack MCP令牌(xoxc和xoxd)的工具,适用于需要自动化Slack MCP工作流的场景。

  • by bmr5416
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 bmr5416/slack-mcp

使用说明

🔐 Slack令牌提取器

提取Slack MCP令牌的自动化工具(xoxc 和 xoxd)使用Chrome DevTools协议。令牌会自动保存到 .env 便于与MCP服务器一起使用。

🎯 特性

  • 一键提取 通过书签
  • 自动谷歌SSO登录 检测和处理
  • Chrome 开发者工具协议 用于HttpOnly cookie访问
  • 保存到.env (git自动忽略)
  • 浏览器保持打开状态 因此令牌仍然有效

📋 先决条件

  • Node.js(v16或更高版本)
  • 谷歌浏览器
  • 使用Google SSO的Slack工作区

🚀 快速开始

看 QUICKSTART.md 获取分步说明。

太长,读不下去了

# Terminal 1: Start Chrome with debugging
npm run chrome

# Terminal 2: Start server
npm run server

# Browser: Open bookmarklet page, drag button to bookmarks
open public/bookmarklet.html

# Click bookmarklet anytime to extract tokens

📂 项目结构

slack-mcp/
├── public/
│   └── bookmarklet.html           # Bookmarklet setup page
├── scripts/
│   ├── extract-tokens.js          # Main extraction script
│   ├── start-chrome.sh            # Chrome launcher with debugging
│   └── token-server.js            # HTTP server for bookmarklet
├── .env                           # Configuration & tokens (gitignored)
├── .env.example                   # Template
├── .gitignore                     # Protects sensitive files
├── package.json                   # Dependencies
├── QUICKSTART.md                  # Step-by-step guide
└── README.md                      # This file

🔒 安全

Git忽略文件

  • .env -您的工作区URL和提取的令牌
  • Chrome-Debug/ -Chrome配置文件数据

最佳实践

  1. 永不承诺 .env 文件
  2. Chrome运行时令牌有效
  3. 关闭Chrome以使令牌无效
  4. 定期旋转令牌

📖 运作原理

挑战

Slack的 d cookie(xoxd令牌)是 仅限Http,这意味着JavaScript无法访问它。传统的书签工具失败了。

解决方案

  1. Chrome 开发者工具协议 -启动Chrome --remote-debugging-port=9222
  2. 木偶连接 -连接到正在运行的Chrome实例
  3. CDP会议 -使用 Network.getAllCookies 绕过HttpOnly限制
  4. 自动化流程:
    • 在新选项卡中打开Slack
    • 检测并点击“使用谷歌登录”
    • 等待谷歌重定向(如果已经登录,则自动登录)
    • 通过CDP提取两个令牌
    • 保存到 .env

📝 输出格式

.env 文件包含:

SLACK_MCP_XOXC_TOKEN=xoxc-...
SLACK_MCP_XOXD_TOKEN=xoxd-...
SLACK_TEAM_ID=T12345
SLACK_TOKENS_UPDATED=2025-01-20T...

奖金:该脚本还会自动更新您在以下位置的Claude Desktop配置文件:

~/Library/Application Support/Claude/claude_desktop_config.json

代币在 slack MCP服务器配置会自动更新!

🔧 配置

工作区设置

  1. 复制 .env.example 到 .env:

    cp .env.example .env
    
  2. 编辑 .env 并设置您的工作区URL:

    SLACK_WORKSPACE_URL=https://your-workspace.slack.com
    

备注:这是唯一需要的配置。令牌会自动提取和保存。

🐛 故障排除

错误:“无法连接到Chrome”

Chrome必须在启用调试的情况下运行:

npm run chrome

错误:“提取已在进行中”

另一个提取正在进行中。等待它完成或重新启动服务器。

令牌未出现在.env中

  1. 检查终端是否有错误
  2. 验证Chrome调试是否正在运行: curl http://localhost:9222/json/version
  3. 确保您已完成谷歌登录

未找到“使用Google登录”

脚本将等待手动登录。只需在浏览器选项卡中登录Slack,它就会自动继续。

📦 脚本

  • npm run chrome -通过远程调试启动Chrome
  • npm run server -启动书签小程序的HTTP服务器
  • npm run extract -直接运行提取(不需要书签)

🤝 使用MCP

提取后,令牌处于 .env。将它们与Slack MCP服务器一起使用:

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "<your-xoxc-token>",
        "SLACK_TEAM_ID": "<your-team-id>"
      }
    }
  }
}

或来源 .env 文件直接。

⚠️ 免责声明

此工具供您个人在Slack工作区中使用。令牌是敏感凭证:

  • 确保代币安全
  • 不要共享代币
  • 如果令牌受到威胁,请进行轮换
  • 仅用于授权目的

📄 许可证

MIT许可证-使用风险自负


专为自动化Slack MCP工作流程而构建