Skip to main content
On this page

adk-mcp-slack

Optional Slack MCP — npm slack-mcp-server (korotovsky/slack-mcp-server). A python3 wrapper reads ~/.config/creds/slack/slack.token.json (override path via $SLACK_CREDENTIALS_FILE) and passes bot_token → SLACK_MCP_XOXB_TOKEN and user_token → SLACK_MCP_XOXP_TOKEN before exec-ing the server. Accepts both the curated {bot_token, user_token} shape written by creds_login_slack AND the raw Slack oauth.v2.access response shape ({access_token, authed_user.access_token}). Mint the token with creds_login_slack (mac-setup); scopes requested during OAuth come from ~/.config/creds/slack/app.json. If the token file is missing or has no usable token, the MCP shows as not-connected and Slack-touching skills degrade per shared/constitution.md §VI. Posting requires bot_token. See SETUP.md.

Source

mcp/adk-mcp-slack.json

Environment variables referenced

(none)

Configuration

JSON
{  "name": "adk-mcp-slack",  "command": "python3",  "args": [    "-c",    "import json, os, sys\np = os.environ.get('SLACK_CREDENTIALS_FILE') or os.path.expanduser('~/.config/creds/slack/slack.token.json')\nenv = os.environ.copy()\ntry:\n    with open(p) as f:\n        d = json.load(f)\n    # Accept curated shape {bot_token, user_token, ...} OR raw Slack oauth.v2.access\n    # response {access_token (bot), authed_user: {access_token (user), ...}, ...}.\n    bot = d.get('bot_token') or d.get('access_token')\n    user = d.get('user_token') or ((d.get('authed_user') or {}).get('access_token'))\n    if bot: env['SLACK_MCP_XOXB_TOKEN'] = bot\n    if user: env['SLACK_MCP_XOXP_TOKEN'] = user\n    if not bot and not user:\n        sys.stderr.write(f'adk-mcp-slack: no bot_token or user_token in {p}\\n')\nexcept FileNotFoundError:\n    sys.stderr.write(f'adk-mcp-slack: token file not found at {p} \\u2014 run creds_login_slack first\\n')\nexcept Exception as e:\n    sys.stderr.write(f'adk-mcp-slack: failed to read {p}: {e}\\n')\nos.execvpe('npx', ['npx', '-y', 'slack-mcp-server@latest'], env)"  ],  "env": {    "SLACK_MCP_ADD_MESSAGE_TOOL": "true"  },  "description": "Optional Slack MCP — npm slack-mcp-server (korotovsky/slack-mcp-server). A python3 wrapper reads ~/.config/creds/slack/slack.token.json (override path via $SLACK_CREDENTIALS_FILE) and passes bot_token → SLACK_MCP_XOXB_TOKEN and user_token → SLACK_MCP_XOXP_TOKEN before exec-ing the server. Accepts both the curated {bot_token, user_token} shape written by creds_login_slack AND the raw Slack oauth.v2.access response shape ({access_token, authed_user.access_token}). Mint the token with `creds_login_slack` (mac-setup); scopes requested during OAuth come from ~/.config/creds/slack/app.json. If the token file is missing or has no usable token, the MCP shows as not-connected and Slack-touching skills degrade per shared/constitution.md §VI. Posting requires bot_token. See SETUP.md."}