# Setup Discord MCP

> 安装部署 discord-mcp 服务并配置 MCP 连接，引导用户完成从零到可用的全流程。 当用户第一次使用 Discord 功能、提到安装/部署/配置 Discord、环境搭建、MCP 服务连接失败、或 Discord 相关 MCP 工具不可用时使用。

- Skill: `huckops/setup-discord-mcp` (Agent Skill)
- Install (CLI): `npx skillmds@latest add huckops/setup-discord-mcp`
- Raw SKILL.md: https://api.skillmd.com/api/skills/huckops/setup-discord-mcp/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: HuckOps (https://skillmd.com/u/huckops)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/huckops/setup-discord-mcp

---


## 变量输入

### 变量定义

| 变量名                | 数据类型 | 默认值                      | 是否可空 | 说明                 |
| --------------------- | -------- | --------------------------- | -------- | -------------------- |
| `discord_mcp_address` | string   | `http://localhost:8000/sse` | True     | Discord MCP 服务地址 |
| `proxy` | string |  | False | 链接MCP服务器使用的代理 |

### 输入异常处理

| 异常类型               | 处理方式                                       |
| ---------------------- | ---------------------------------------------- |
| 变量输入数据类型不一致 | 提示用户：传入数据类型与定义不一致             |
| 非空变量未提供         | 提示用户：未提供必填变量 |

## 执行流程

### 1. 检测服务状态

检查 discord-mcp 是否已在运行（注意：MCP 使用 SSE 端点，需使用正确的端点路径）：


**Linux/macOS**：

当$proxy未提供时：

```bash
curl -s -m 2 $discord_mcp_address | head -1 | grep -q "event:" && echo "running" || echo "not running"
```

当$proxy有提供时：
```bash
curl -s -m 2 -x $proxy $discord_mcp_address | head -1 | grep -q "event:" && echo "running" || echo "not running"
```

**说明**：

- Windows PowerShell 先使用 `Test-NetConnection` 检测端口是否开放，再使用 `.NET WebRequest` 发送 GET 请求并检查状态码
- `.NET WebRequest` 比 `Invoke-WebRequest` 更轻量级，对 SSE 长连接的处理更好
- Linux/macOS 使用 `curl` 发送 GET 请求，并用 `head -1` 获取第一行响应，检查是否包含 SSE 事件格式
- 超时设置为 2 秒，避免 SSE 长连接导致的问题
- 端口使用 8000（根据日志显示的实际端口）

- 已运行 → 记录 SSE 端点地址 `$discord_mcp_address`，跳到步骤 3
- 未运行 → 询问用户：服务是否部署在其他地址/端口？
  - 用户提供地址 → 验证可达后跳到步骤 3
  - 未部署 → 进入步骤 2

### 2. 部署服务

确认操作系统（macOS / Linux / Windows）和是否已安装 Docker。

### 3. 检测 MCP 连接配置

检查当前客户端是否已配置 Discord MCP 连接。

**Claude Code**：

Linux/MacOS: 读取 `~/.claude/settings.json` 和项目级 `.claude/settings.json`，查找 `mcpServers` 中是否有 `discord` 配置。
Windows: 读取 `%USERPROFILE%\.claude\settings.json` 和项目级 `.claude\settings.json`，查找 `mcpServers` 中是否有 `discord` 配置。

- 已配置且地址正确 → 跳到步骤 5
- 已配置但地址不匹配 → 修正地址
- 未配置 → 进入步骤 4

### 4. 配置 MCP 连接

询问用户：

**连接地址**：如果步骤 1 已确认可达的地址，用该地址作为默认值，否则默认 `http://localhost:8000/sse`。

**使用的客户端**：

**Claude Code**：

```bash
claude mcp add discord --transport sse <地址>
```

或写入配置文件：

- 全局：`~/.claude/settings.json`
- 项目级：`.claude/settings.json`

```json
{
  "mcpServers": {
    "discord": {
      "url": "http://localhost:8000/sse",
      "transport": "sse"
    }
  }
}
```

**Cursor**（`.cursor/mcp.json`）：

```json
{
  "mcpServers": {
    "discord": {
      "url": "http://localhost:8000/sse",
      "transport": "sse"
    }
  }
}
```

**其他客户端**：告知用户 Discord MCP 服务的 SSE 端点地址，让用户按客户端文档自行配置。

### 5. 验证与提示

1. **提示用户重启当前会话** — MCP 配置变更后需重启客户端才能加载新的 MCP 工具
2. 重启后调用 `channels` 验证连接正常


## 失败处理

| 场景               | 处理                   |
| ------------------ | ---------------------- |
| 已有配置但地址错误 | 修正地址并重启         |
| SSE 连接失败       | 检查网络连接和服务状态 |

