[Bug] Slack App 未获官方 MCP 访问资格,Slack 工具当前不可用
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 395
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
## 问题现象
用户让 Cindy 通过 Slack 工具排查或执行操作时,Slack 官方 MCP 返回:
```text
App not approved for Slack MCP server access
```
已观察到 Slack 账号/绑定可用,但调用 `slack_list_tools` 获取官方 MCP 工具清单失败,因此当前 Cindy 的 Slack 官方工具能力不可用。
## 问题性质
这是 **Slack App 应用级能力或平台审批状态问题**,不是普通用户重新输入参数或反复重试可以解决的问题。
当前客户端的 Slack 工具通过以下链路调用:
```text
lizi_slack MCP
→ SlackToolBridge
→ desktop hook-control
→ tool.request
→ slack-hook-server
→ Slack 官方 MCP
```
本仓源码证据:
- `packages/lizi-mcps/src/lizi_slackMcpServer.ts:8-18`:Slack 工具通过 hook server 调用 Slack 官方 MCP;
- `apps/desktop/src/main/hook-control/manager.ts:1267-1308`:desktop 将工具调用封装成 `tool.request` 并等待结构化响应;
- `cindy-protocol/packages/slack-hook-protocol/src/types.ts:65-74`:协议声明 server 使用绑定用户的托管 token 调用 Slack 官方 MCP / Web API。
报错文案不在本仓中,现有证据与 Slack 上游拒绝该 App 访问官方 MCP 一致。
不过,仅凭客户端源码无法确认生产 Slack App 后台究竟是开关未开启、资格未获批,还是 workspace / Enterprise Grid 策略阻止访问,仍需 App 管理员进入 Slack 开发者后台核实。
## 处理建议
由 Cindy 所使用 Slack App 的 owner / collaborator:
1. 确认生产 `slack-hook-server` 实际使用的 Slack App 和 Client ID;
2. 在该 App 的 Slack 开发者后台检查 Agent / Assistant 与 Slack MCP Server access 状态;
3. 如果该能力需要 Slack 平台额外审批,提交或完成审批;
4. 核对 workspace / Enterprise Grid 的 App 审批策略是否额外阻止 MCP;
5. 能力开通后,让受影响用户重新授权或重新绑定,确保取得与当前 App 配置一致的新 token;
6. 重新执行 `slack_status` 和 `slack_list_tools` 验证。
处理过程中不得在 Issue 或日志中粘贴 client secret、access token、refresh token 等凭证。
## 验收标准
- [ ] 已确认生产环境实际使用的 Slack App 和 Client ID;
- [ ] App 已获得 Slack 官方 MCP Server access,或已记录 Slack 平台侧待审批状态和负责人;
- [ ] 受影响用户重新授权/绑定后,`slack_status` 返回连接和授权正常;
- [ ] `slack_list_tools` 能返回工具清单,不再出现 `App not approved for Slack MCP server access`;
- [ ] 已选取一个只读工具完成最小调用验证;
- [ ] 如需验证发消息等写操作,已先按产品要求向用户确认,并验证对应 scope;
- [ ] 已记录后台配置结论,但没有记录任何凭证。
## 范围说明
- 本 Issue 跟踪 Slack App 后台能力/审批恢复,不把它等同于 Slack Robot 最终消息投递失败;两者链路和故障面不同。
- `slack-hook-server` 不在当前仓库,本 Issue 不要求在当前仓库直接修改服务端代码。
Contributor guide
Research direction
Read packages/lizi-mcps/src/lizi_slackMcpServer.ts, apps/desktop/src/main/hook-control/manager.ts, and cindy-protocol/packages/slack-hook-protocol/src/types.ts to confirm the request path. Then have the Slack App owner verify the production App and MCP approval status, and run slack_status followed by slack_list_tools. Done means the tools list succeeds and a read-only tool completes without exposing credentials.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, authentication
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100