﻿---
title: "Slack MCP 用 --url 加预注册 client_id，不要抄 --transport http"
summary: "官方远程是 https://mcp.slack.com/mcp。Codex 写法是 mcp add slack --url … --oauth-client-id。Slack 文档那行 --transport http 是 Claude 语法。不带 client_id 会 DCR 失败。这不是 Cloud 里的 @Codex。"
category: mcp
level: intermediate
surfaces: [cli, app, ide]
tags: ["MCP", "Slack", "OAuth", "HTTP"]
canonical: /tips/mcp-slack-remote/
---

# Slack MCP 用 --url 加预注册 client_id，不要抄 --transport http

官方远程是 https://mcp.slack.com/mcp。Codex 写法是 mcp add slack --url … --oauth-client-id。Slack 文档那行 --transport http 是 Claude 语法。不带 client_id 会 DCR 失败。这不是 Cloud 里的 @Codex。

这是把 Slack **工作区**接到本机 Codex 的远程 MCP，不是 Cloud 频道里的 `@Codex`。官方地址是 Streamable HTTP：`https://mcp.slack.com/mcp`。Slack 不支持动态客户端登记（DCR），必须带你自己 Slack 应用的 client ID：

```bash
codex mcp add slack --url https://mcp.slack.com/mcp --oauth-client-id my-slack-app
codex mcp login slack
```

```toml
[mcp_servers.slack]
url = "https://mcp.slack.com/mcp"
enabled = true

[mcp_servers.slack.oauth]
client_id = "my-slack-app"
```

把 `codex mcp add` 打印的完整 OAuth callback URL 登到 Slack 应用。无端口的 `127.0.0.1` 规则见回调那几条。工作区管理员还要批准 MCP 集成；未上架的 Slack 应用不能用这套 MCP。

不要做这些：

- 不要抄 Slack 文档 Codex 节里的 `codex mcp add --transport http slack https://mcp.slack.com/mcp`。那是 Claude Code 的语序。Codex 是 `add` 名字 `--url` 地址。
- 不要把 `[mcp_servers.slack]url = …auth = "oauth"` 粘成一行。键要分行。`auth = "oauth"` 是 HTTP 默认，真正缺的是 `oauth.client_id`。
- 不要空表跑 `codex mcp login slack`。开放问题会立刻报 Dynamic client registration not supported。
- 不要去抄 Claude 插件清单里那串现成 `clientId`。那是 Claude Skills 插件的客户端，不是你的 Slack 应用。
- 不要和 Cloud `@Codex`、精选插件 `slack@openai-curated` 混成一套。
- 不要抄 `/sse`，也不要给它 `required = true` 挂全局。
- 不要把用户 token 当第一手段写进 `bearer_token_env_var`。官方路径是预注册 OAuth + `mcp login`。

改完新开会话。`codex mcp list` 应看到 slack；网页 Cloud 仍不读这份 `config.toml`。

## 来源

- [Slack · Connect to Codex](https://docs.slack.dev/ai/slack-mcp-server/connect-to-harnesses)
- [openai/codex#13200](https://github.com/openai/codex/issues/13200)
- [OpenAI · Model Context Protocol](https://learn.chatgpt.com/docs/extend/mcp)
