Token导航 LogoToken导航TokenDH.com
Discord Ops logo
办公协作stdio官方级别未说明来源级核验

Discord Ops

MCP Server

discord-ops@latest

一个企业级的Discord多项目管理服务器,支持多公会项目路由、通知路由、机器人角色配置等功能,适用于团队协作和自动化任务管理。

工具数

49

提示词数

0

GitHub Stars

2

资源数

0
团队协作TypeScriptClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

bookedsolidtech

提供方

bookedsolidtech

最后核验

2026/5/17 20:22

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx discord-ops@latest run send_message \

详细介绍

不和行动

具有多公会项目路由的代理级Discord MCP服务器。

![CI](https://github.com/bookedsolidtech/discord-ops/actions/workflows/ci.yml) ](https://www.npmjs.com/package/discord-ops) ![License: MIT](LICENSE)

特性

  • 49个MCP工具 --消息传递、渠道、审核、角色、webhooks、审计日志、线程、行会、邀请、权限、搜索、23个模板、OG嵌入展开、项目自检
  • 多公会项目路由send_message({ project: "my-app", channel: "builds" }) 而不是原始通道ID
  • 通知路由 --地图通知类型(ci_build, deploy, error)每个项目的频道
  • 所有者ping --配置项目所有者,以便发布、错误和警报自动提及正确的人
  • 机器人角色 --具有身份元数据、每个通道的机器人分配和每个机器人工具配置文件的命名机器人
  • 多机器人支持 --使用每个项目的令牌从单个MCP服务器管理多个Discord机器人
  • 刀具轮廓 --只加载代理需要的工具;使用精简配置文件将架构开销减少85%
  • 智能通道分辨率 --通道参数接受通道名称或雪花ID,具有4层模糊回退
  • send_message的自动嵌入 --默认情况下,每条消息都会有一个品牌嵌入; raw: true 对于纯文本
  • OG元数据展开send_embed 在服务器端获取Open Graph元数据并呈现丰富的链接预览
  • 灵活的令牌配置 --可配置的默认令牌env-var,所有项目使用每个项目令牌时的可选默认值
  • 配置验证discord-ops validate 在未连接到Discord的情况下检测到重复的公会、丢失的令牌、无效的通道引用
  • HTTP/SSE+stdio传输 --用于Claude Code的stdio,用于远程MCP客户端的HTTP/SSE
  • HTTP传输身份验证 --通过承载令牌进行身份验证 DISCORD_OPS_HTTP_TOKEN 具有恒定时间比较
  • 干运行模式 -在不调用Discord API的情况下模拟破坏性操作
  • 交互式设置向导discord-ops setup 支持单bot和多bot配置
  • 安全强化 --速率限制、飞行前权限检查、雪花ID验证、自我保护警卫
  • 延迟登录 --Discord连接前会枚举工具;第一次工具调用触发登录
  • Zod验证 --执行前验证所有输入
  • 错误清理 --从错误输出中删除令牌、webhook URL和雪花ID
  • 审核日志记录 --记录到stderr的每个工具调用

快速开始

# Install
npm install -g discord-ops

# Interactive setup (creates ~/.discord-ops.json)
discord-ops setup

# Or manual setup
export DISCORD_TOKEN="your-bot-token"
discord-ops health

# Start MCP server (stdio)
discord-ops

# Start MCP server (HTTP/SSE)
discord-ops serve --port 3000

Claude代码集成

添加到您的项目 .mcp.json.使用 npx 随着 @latest 因此,每个会话都会自动使用最新发布的版本——没有它,npx可能会无限期地提供过时的缓存版本:

{
  "mcpServers": {
    "discord-ops": {
      "command": "npx",
      "args": ["-y", "discord-ops@latest"],
      "env": {
        "DISCORD_TOKEN": "${DISCORD_TOKEN}"
      }
    }
  }
}

${VAR} 语法是ClaudeCode的原生env-var插值——它在启动时从shell环境中读取值。将您的机器人令牌导出到 ~/.zshrc (或 .bashrc)它将可用于所有项目,而无需在任何文件中硬编码。

多组织设置(每个项目令牌)

当每个项目都有自己的bot时,传递所有令牌env变量并让 ~/.discord-ops.json 处理哪个项目使用哪个:

{
  "mcpServers": {
    "discord-ops": {
      "command": "npx",
      "args": ["-y", "discord-ops@latest"],
      "env": {
        "ORG_A_DISCORD_TOKEN": "${ORG_A_DISCORD_TOKEN}",
        "ORG_B_DISCORD_TOKEN": "${ORG_B_DISCORD_TOKEN}"
      }
    }
  }
}

每个项目 ~/.discord-ops.json 声明 "token_env": "ORG_A_DISCORD_TOKEN" 不和谐行动会自动路由。无默认 DISCORD_TOKEN 当所有项目都有 token_env 集。

单一组织简写

如果你的所有项目共享一个机器人,只需传递该令牌:

{
  "mcpServers": {
    "discord-ops": {
      "command": "npx",
      "args": ["-y", "discord-ops@latest"],
      "env": {
        "DISCORD_TOKEN": "${DISCORD_TOKEN}"
      }
    }
  }
}

自定义令牌环境变量名称

如果另一个工具已经声明 DISCORD_TOKEN,使用 DISCORD_OPS_TOKEN_ENV 指向另一个名称:

{
  "mcpServers": {
    "discord-ops": {
      "command": "npx",
      "args": ["-y", "discord-ops@latest"],
      "env": {
        "DISCORD_OPS_TOKEN_ENV": "MY_BOT_TOKEN",
        "MY_BOT_TOKEN": "${MY_BOT_TOKEN}"
      }
    }
  }
}

项目路线

杀手级功能:按项目名称和通道别名而不是原始ID路由消息。

全局配置(~/.discord-ops.json)

{
  "projects": {
    "my-app": {
      "guild_id": "123456789012345678",
      "channels": {
        "dev": "CHANNEL_ID",
        "builds": "CHANNEL_ID",
        "alerts": "CHANNEL_ID",
        "releases": "CHANNEL_ID"
      },
      "default_channel": "dev"
    }
  },
  "default_project": "my-app",
  "notification_routing": {
    "ci_build": "builds",
    "deploy": "builds",
    "release": "releases",
    "error": "alerts",
    "dev": "dev"
  }
}

每个项目的机器人代币

项目可以通过以下方式指定自己的机器人令牌 token_env:

{
  "projects": {
    "org-a": {
      "guild_id": "111111111111111111",
      "channels": { "dev": "CHANNEL_ID" },
      "default_channel": "dev",
      "token_env": "ORG_A_DISCORD_TOKEN"
    },
    "org-b": {
      "guild_id": "222222222222222222",
      "channels": { "dev": "CHANNEL_ID" },
      "default_channel": "dev",
      "token_env": "ORG_B_DISCORD_TOKEN"
    }
  }
}

当所有项目都有 token_env,默认值 DISCORD_TOKEN 是可选的。每个项目都与自己的机器人连接。

机器人角色

为机器人提供名称、角色和每个通道的分配。当您的Discord服务器运行多个具有不同角色的机器人时(例如,社区助手与技术运营机器人),这是理想的。

{
  "bots": {
    "claire": {
      "name": "Claire",
      "role": "Community helper",
      "description": "Handles support and community channels",
      "token_env": "CLAIRE_TOKEN",
      "default_profile": "messaging"
    },
    "courier": {
      "name": "Clarity Courier",
      "role": "Technical operations",
      "token_env": "COURIER_TOKEN",
      "default_profile": "full"
    }
  },
  "projects": {
    "clarity-house": {
      "guild_id": "123456789012345678",
      "bot": "courier",
      "channels": {
        "general": "111111111111111111",
        "support": { "id": "222222222222222222", "bot": "claire" },
        "dev-ops": "333333333333333333",
        "ai-testing": { "id": "444444444444444444", "bot": "claire" }
      },
      "default_channel": "dev-ops",
      "tool_profile": "full"
    }
  }
}

它是如何工作的:

  • bots --带有身份元数据的命名机器人定义 token_env
  • project.bot --项目的默认bot(除非被覆盖,否则所有渠道都使用此bot)
  • 频道 bot 以(权力)否决 --各个渠道可以使用不同的机器人: { "id": "...", "bot": "claire" }
  • default_profile --每个机器人工具配置文件(限制机器人在运行时可以使用哪些工具)
  • 令牌解析 --频道机器人→ 项目机器人→ 项目 token_env → 默认 DISCORD_TOKEN
  • 路由中的机器人角色 --已解决的目标包括 bot: { name, role } 代理上下文的元数据
  • 向后兼容的bots 是可选的;频道接受两者 "ID"{ "id": "ID", "bot": "name" } 格式

使用 list_bots 查看所有已配置的机器人、它们的项目分配、通道覆盖和连接状态。

所有者ping

配置项目所有者,以便自动预置发布、错误和警报 @mentions这确保了在关键事件中始终呼叫正确的人,而不会在每条消息中硬编码提及。

{
  "projects": {
    "my-app": {
      "guild_id": "123456789012345678",
      "channels": { "releases": "CHANNEL_ID", "alerts": "CHANNEL_ID" },
      "owners": ["820027414902079548"],
      "notify_owners_on": ["release", "error", "alert"]
    }
  }
}

notify_owners_on 值: 任何通知类型(release, error, alert, ci_build, deploy等等)

安全: "dev" 被硬编码为无论配置如何都不会触发所有者ping——dev噪声保持安静。

当a send_messagesend_embed 调用使用匹配 notification_type,所有者提到的内容会自动添加到消息前面。不需要其他更改。

智能通道分辨率

channel param在需要通道的任何地方接受通道名称或雪花ID。分辨率分为四层:

  1. 完全匹配别名"builds" 点击 builds 项目配置中的别名
  2. 模糊别名匹配"build""blds" 解析为最接近的别名
  3. Live Discord API查找"general" 即使没有配置别名也能解析
  4. 错误 --如果以上都没有找到匹配项

这意味着你可以通过 channel: "general" 它甚至适用于不在您配置中的通道。您还可以直接传递原始雪花ID-- channel: "1234567890" 完全绕过别名解析。

根据项目配置(.discord-ops.json 在回购根目录中)

{
  "project": "my-app",
  "notification_routing": {
    "ci_build": "builds",
    "deploy": "builds"
  }
}

用法

# By project + channel alias
send_message({ project: "my-app", channel: "builds", content: "Build passed!" })

# By notification type (auto-routed to channel, owner pinged if configured)
send_message({ project: "my-app", notification_type: "release", content: "v1.0.0 shipped" })

# Direct channel ID (always works)
send_message({ channel_id: "123456789", content: "Hello" })

# Channel by name (live lookup — no alias needed)
send_message({ project: "my-app", channel: "general", content: "Hello" })

消息传递

自动嵌入

send_message 自动将消息包装在带有颜色条、描述和时间戳的精美嵌入中。通过 raw: true 改为发送纯文本。

# Branded embed (default)
send_message({ project: "my-app", channel: "dev", content: "Deploy complete" })

# Plain text
send_message({ project: "my-app", channel: "dev", content: "pong", raw: true })

send_embed——OG元数据展开

send_embed 从任何URL获取Open Graph服务器端元数据,并呈现丰富的预览嵌入。所有OG字段都可以被覆盖。

send_embed({
  url: "https://www.npmjs.com/package/discord-ops/v/0.14.0",
  project: "my-app",
  channel: "releases",
  title: "discord-ops v0.14.0",
  description: "Owner pings, smart channel resolution, category editing",
  color: 5763719,
  footer: "Released April 3, 2026"
})

可用于共享GitHub PR、npm发布、博客文章或任何具有丰富预览的URL——机器人会获取元数据,这样Discord的CDN就不会缓存崩溃的客户端展开。

工具

消息传递(12个工具)

工具说明
send_message发送带有项目路由的消息(默认情况下自动嵌入)
send_embed从URL获取OG元数据并发布丰富的嵌入
get_messages获取最近的消息(支持ISO 8601时间戳)
edit_message编辑机器人消息
delete_message删除消息
add_reaction对消息作出反应
pin_message在通道中固定消息
unpin_message不愉快的消息
search_messages按内容、作者或日期范围搜索邮件
send_template使用内置模板发送样式化嵌入
list_templates列出具有所需变量的可用模板
notify_owners基于通知类型的Ping项目所有者

频道(9个工具)

工具说明
list_channels列出公会频道
get_channel获取频道详细信息
create_channel创建频道
edit_channel编辑频道名称、主题、类别或位置(文本、语音和类别)
delete_channel删除频道
purge_messages批量删除邮件(最多100封,\ --args '{…}' Run any tool directly (no AI/MCP required)

discord-ops setup Interactive setup wizard (single + multi-bot) discord-ops health Run health check + permission audit discord-ops validate Validate config without connecting to Discord discord-ops --profile Load a built-in tool profile (monitoring/readonly/moderation/full) discord-ops --tools Load specific tools by name (comma-separated) discord-ops --dry-run Simulate destructive operations discord-ops --help Show help discord-ops --version Show version


### `run` --调用任何没有AI代理的工具

这 `run` 子命令直接从shell执行任何不协调操作工具——没有MCP客户端,没有AI。通过以下方式将所有工具输入作为单个JSON字符串传递 `--args`.

Send a plain message

npx discord-ops@latest run send_message \ --args '{"project":"my-app","channel":"general","content":"Deployment complete."}'

Send a rich release announcement

npx discord-ops@latest run send_template \ --args '{ "project": "my-app", "channel": "releases", "template": "release", "vars": { "name": "my-app", "version": "v1.2.0", "author_name": "My Org", "highlights": "• New feature A\n• Bug fix B", "npm": "my-app@latest", "npm_url": "https://www.npmjs.com/package/my-app", "link": "https://github.com/my-org/my-app/releases/tag/v1.2.0", "footer": "Published 2026-04-03" } }'


MCP服务器接受的任何工具名称都可以在这里使用-- `send_message`, `send_template`, `send_embed`, `list_channels`等等。相同的输入模式适用;验证错误与字段路径和退出代码1一起打印。

## 环境变量

|变量|必填|描述|
| ------------------------ | -------- | ---------------------------------------------------------------------------------- |
| `DISCORD_TOKEN` |否\*|默认Discord机器人令牌(\*必需,除非所有项目都有 `token_env`)        |
| `DISCORD_OPS_TOKEN_ENV` |否|覆盖哪个env var持有默认令牌(默认值: `DISCORD_TOKEN`)          |
| `
_TOKEN` |否|每个项目的机器人令牌(通过配置 `token_env` 在项目配置中)|
| `DISCORD_OPS_CONFIG` |否|全局配置文件的路径,或内联JSON字符串(默认值: `~/.discord-ops.json`) |
| `DISCORD_OPS_LOG_LEVEL` |没有| `debug`, `info`, `warn`, `error` (默认值: `info`)                                 |
| `DISCORD_OPS_DRY_RUN` |否|启用干运行模式(任何真实值)|
| `DRY_RUN` |否|启用模拟运行模式(任何真实值,别名)|
| `DISCORD_OPS_HTTP_TOKEN` |否| HTTP传输身份验证的承载令牌(强烈建议)|

### 令牌解析

1. **渠道级机器人** --如果频道有 `bot` 覆盖,使用该机器人 `token_env`
1. **项目级机器人** --如果项目有 `bot`,使用那个机器人 `token_env`
1. **项目级别 `token_env`** --项目自己的令牌env-var
1. **默认令牌** — `DISCORD_TOKEN` (或通过定制 `DISCORD_OPS_TOKEN_ENV`)

如果 `DISCORD_OPS_TOKEN_ENV` 其值命名为持有默认令牌的env-var(例如。, `DISCORD_OPS_TOKEN_ENV=MY_BOT_TOKEN` 读取 `MY_BOT_TOKEN`).如果所有项目都有 `token_env` 或 `bot` 设置后,不需要默认令牌。

## CI/CD集成

使用 `discord-ops run` 在GitHub Actions(或任何CI)中,在发布、部署或构建后发布丰富的Discord通知——不需要人工智能代理。

### CI的配置形状

在CI中,您通常有一个机器人令牌和一个项目。通过以下方式将最小配置作为内联JSON字符串传递 `DISCORD_OPS_CONFIG`。无需写入文件。

**当存储为GitHub机密时,缩小到一行** --多行字符串破解秘密注入。形状(印刷精美,便于阅读):

{ "projects": { "my-app": { "guild_id": "123456789012345678", "channels": { "releases": "987654321098765432", "builds": "111222333444555666" }, "default_channel": "releases" } }, "default_project": "my-app" }


- 不 `token_env` 需要--省略它意味着项目使用 `DISCORD_TOKEN` (默认设置)。
- `owners` 和 `notify_owners_on` 是可选的——如果你想让所有者对错误进行ping,可以包括它们。
- 通道值是Discord雪花ID。频道名称(别名)解析为这些ID。

### GitHub操作示例

在仓库中存储两个秘密:

- `BOOKED_DISCORD_BOT_TOKEN` --您的bot令牌
- `DISCORD_OPS_CONFIG` --配置JSON **缩小为单行** (多行字符串破解GitHub机密)

{"projects":{"my-app":{"guild_id":"123456789012345678","channels":{"releases":"987654321098765432"},"default_channel":"releases"}},"default_project":"my-app"}

  • name: Notify Discord

run: | npx discord-ops@latest run send_template --args '{ "project": "my-app", "channel": "releases", "template": "release", "vars": { "name": "my-app", "version": "${{ steps.version.outputs.version }}", "author_name": "My Org", "highlights": "${{ steps.changelog.outputs.highlights }}", "npm": "my-app@latest", "npm_url": "https://www.npmjs.com/package/my-app", "link": "${{ steps.release.outputs.url }}", "footer": "Published ${{ steps.date.outputs.date }}" } }' env: DISCORD_TOKEN: ${{ secrets.BOOKED_DISCORD_BOT_TOKEN }} DISCORD_OPS_CONFIG: ${{ secrets.DISCORD_OPS_CONFIG }}


`DISCORD_TOKEN` 是默认的令牌变量,不需要额外的配置。您的秘密中的机器人令牌将直接使用。

## HTTP传输安全

跑步时 `discord-ops serve`,默认情况下,HTTP端点未经身份验证,并发出响亮的启动警告。集 `DISCORD_OPS_HTTP_TOKEN` 要要求承载身份验证,请执行以下操作:

DISCORD_OPS_HTTP_TOKEN=your-secret-token discord-ops serve --port 3000


所有请求必须包括:

Authorization: Bearer your-secret-token


健康终点(`GET /health`)始终免于身份验证——负载均衡器和Docker健康检查可以在没有令牌的情况下访问它。

令牌比较使用恒定时间比较来防止定时攻击。

## 干运行模式

启用干式运行以模拟破坏性操作(删除、禁止、踢等),而无需实际调用Discord API:

Via CLI flag

discord-ops --dry-run

Via environment variable

DISCORD_OPS_DRY_RUN=1 discord-ops

Via env alias

DRY_RUN=true discord-ops


在干运行模式下,破坏性工具会返回一个模拟的成功响应,显示会发生什么。

## 消息模板

23个内置模板,具有尖端的Discord功能。使用 `send_template` 项目路线。

**所有模板的功能:**

- **作者品牌** --每个模板都有一个可配置的 `author_name` + `author_icon` 在顶端
- **链接按钮** --嵌入下面的可点击按钮(查看日志、打开PR、Runbook等)
- **不一致时间戳** --日期通过实时倒计时自动转换为每个用户的时区
- **本地民意调查** --带有进度条和投票跟踪的真实Discord民意调查
- **多嵌入式仪表板** --服务状态板每条消息最多可嵌入10个
- **页脚图标** --页脚文本旁边的状态指示器图标(绿色/红色)
- **可点击的标题** --嵌入标题直接链接到URL
- **语法突出显示的代码** --带有特定语言高亮显示的代码示例
- **进度条** --可视化Unicode块进度指示器

### DevOps模板(11)

|模板|说明|主要功能|
| ------------------- | ---------------------------------------------- | -------------------------------------------- |
| `release` |带有安装+链接按钮的版本发布|作者、链接按钮、可点击标题|
| `deploy` |使用日志按钮部署成功/失败|页脚图标、视图/日志按钮|
| `ci_build` |CI结果,带构建链接按钮|页脚图标,可点击标题|
| `incident` |带有严重性颜色的事件警报|不一致时间戳、状态页面按钮|
| `incident_resolved` |使用验尸按钮解决问题|时间戳不一致,验尸链接|
| `maintenance` |实时时区倒计时维护|不一致时间戳、倒计时、状态按钮|
| `status_update` |服务状态(运行/降级/停机)|页脚图标、仪表板按钮|
| `review` |带有差异统计和PR按钮的PR审核|可点击的标题、添加/删除|
| `dashboard` |多嵌入服务状态板(最多9 svc)|多嵌入,每种服务颜色卡|
| `oncall` |带轮班时间戳的随叫随到切换| Discord时间戳,runbook按钮|
| `alert` |可配置的警报(信息/警告/错误/严重)|基于级别的颜色、度量阈值|

### 团队和社区模板(12)

|模板|说明|主要功能|
| -------------- | --------------------------------------- | --------------------------------------------- |
| `celebration` |用图片庆祝胜利|作者、缩略图、图片|
| `welcome` |使用入职按钮欢迎会员|不一致时间戳、手册/入职链接|
| `shoutout` |使用头像缩略图识别作品|缩略图、提名归因|
| `quote` |阻止引用励志文本|阻止引用格式,作者头像|
| `announcement` |带有截止日期倒计时的公告|不一致时间戳、倒计时、链接按钮|
| `changelog` |变更日志有7个部分类型|弃用、性能、安全部分|
| `milestone` |目标日期倒计时里程碑|不一致时间戳,进度跟踪|
| `tip` |带有语法高亮代码的专业提示|特定语言的代码块,doc按钮|
| `poll` |带有投票跟踪的Native Discord民意测验| Native poll API,多选,持续时间|
| `progress` |带有截止日期的视觉进度条|Unicode进度条,倒计时|
| `standup` |每日站立总结|昨天/今天/阻断器部分|
| `retro` |Sprint回顾|进展顺利/改进/行动、速度|

### 例子

**发布公告:**

send_template({ template: "release", vars: { version: "v0.14.0", name: "discord-ops", highlights: "• Owner pings\n• Smart channel resolution\n• Category channel editing", npm: "npm install discord-ops@0.14.0", npm_url: "https://www.npmjs.com/package/discord-ops/v/0.14.0", link: "https://github.com/bookedsolidtech/discord-ops/pull/20", footer: "Released April 3, 2026", author_name: "Booked Solid Technology" }, project: "my-app", channel: "releases" })


**本地Discord民意调查:**

send_template({ template: "poll", vars: { question: "Best language for MCP servers?", options: "TypeScript|Rust|Go|Python", duration: "48", multiselect: "true" }, project: "my-app", channel: "dev" })


**多嵌入式状态仪表板:**

send_template({ template: "dashboard", vars: { services: "API|Database|CDN|Auth|Queue", statuses: "operational|operational|degraded|operational|outage", title: "Production Status", url: "https://status.example.com" }, project: "my-app", channel: "alerts" })


**随叫随到切换:**

send_template({ template: "oncall", vars: { outgoing: "alice", incoming: "bob", shift_start: "2026-04-04T09:00:00Z", notes: "Payment service latency elevated — watch grafana/d/payments", active_incidents: "INC-342: elevated error rate on /checkout", runbook_url: "https://wiki.example.com/oncall", mention: "" }, project: "my-app", channel: "team-chat" })


所有模板都支持项目路由(`project`, `channel`, `notification_type`, `channel_id`)以及作者品牌(`author_name`, `author_icon`).

## 高级配置参考

满的 `~/.discord-ops.json` 具有所有选项的架构:

{ "bots": { "my-bot": { "name": "My Bot", "role": "General purpose", "description": "Handles all operations", "token_env": "MY_BOT_TOKEN", "default_profile": "full" } }, "projects": { "my-app": { "guild_id": "123456789012345678", "token_env": "MY_APP_DISCORD_TOKEN", "bot": "my-bot", "channels": { "dev": "CHANNEL_ID", "builds": "CHANNEL_ID", "releases": "CHANNEL_ID", "alerts": "CHANNEL_ID", "support": { "id": "CHANNEL_ID", "bot": "my-bot" } }, "default_channel": "dev", "owners": ["USER_SNOWFLAKE_ID"], "notify_owners_on": ["release", "error", "alert"], "tool_profile": "full", "profile_add": [], "profile_remove": [], "notification_routing": { "ci_build": "builds", "deploy": "builds", "release": "releases", "error": "alerts" } } }, "default_project": "my-app", "notification_routing": { "ci_build": "builds", "deploy": "builds", "release": "releases", "error": "alerts", "dev": "dev" } }


**全局字段:**

|字段|描述|
| ---------------------- | ------------------------------------------------------------------------------------- |
| `bots` |命名机器人角色 `name`, `role`, `description`, `token_env`, `default_profile` |
| `default_project` |未使用时使用的项目 `project` 提供了参数|
| `notification_routing` |全局通知类型→ 通道别名路由|

**项目领域:**

|字段|描述|
| ---------------------- | ------------------------------------------------------------------------------------- |
| `guild_id` |Discord服务器(公会)雪花ID|
| `token_env` |此项目bot令牌的Env-var名称|
| `bot` |此项目的默认机器人角色(引用 `bots`)                     |
| `channels` |别名→ 通道ID或 `{ id, bot }` 地图; `channel: "builds"` 先在这里解决|
| `default_channel` |未使用时使用的频道 `channel` 提供了参数|
| `owners` |在匹配通知类型时要提及的用户雪花ID|
| `notify_owners_on` |触发所有者ping的通知类型(`"dev"` 从不ping)|
| `tool_profile` |此项目的基础工具配置文件(`full`, `monitoring`等等)——在运行时强制执行|
| `profile_add` |在基础轮廓顶部加载其他工具|
| `profile_remove` |从基础配置文件中排除的工具|
| `notification_routing` |按项目覆盖全局通知→ 信道路由|

每个项目的配置文件在运行时强制执行——所有工具都在MCP服务器上注册,但当解析的项目或机器人设置了配置文件时,工具调用会被过滤。这意味着代理可以通过MCP模式发现所有工具,但每个项目的限制都适用于每次调用。

## 多组织故障排除

### 正在验证您的配置

跑 `discord-ops validate` 在不连接到Discord的情况下检查您的配置。它检测到:

- 缺失 `token_env` 值(未设置环境变量)
- Bot引用(`project.bot`,频道 `bot`)指向未定义的机器人
- 无效 `default_profile` 或 `tool_profile` 价值观
- 丢失的机器人 `token_env` 环境变量
- 使用不同代币的项目之间存在重复的公会ID
- `default_channel` 引用一个不存在的别名
- `default_project` 指向一个不存在的项目
- 通知路由到不存在的通道别名

### 常见问题

**“项目X没有可用令牌”**
该项目需要一个令牌。要么:

- 设置其 `token_env` env变量(例如。, `export ORG_A_TOKEN=...`)
- 通过设置默认令牌 `DISCORD_TOKEN`
- 使用 `DISCORD_OPS_TOKEN_ENV` 指向自定义环境变量

**机器人无法访问公会**
如果项目使用 `token_env` 对于另一个机器人,必须邀请该机器人加入项目的公会。跑 `discord-ops health` 查看每个机器人可以访问哪些公会。

**从单机器人迁移到多机器人**

1. 添加 `token_env` 需要自己的机器人的项目
1. 设置相应的环境变量
1. 跑 `discord-ops validate` 验证
1. 跑 `discord-ops health` 测试连接

**代币轮换**
更新env-var值并重新启动MCP服务器。无需更改配置-- `token_env` 在运行时从环境中读取。

**未找到频道**
通道解析按顺序尝试4层:精确别名→ 模糊别名→ 实时Discord名称查找→ 错误。如果仍然找不到频道,请验证机器人是否可以访问该频道,并 `list_channels` 返回它。

## 发展

git clone https://github.com/bookedsolidtech/discord-ops.git cd discord-ops npm install npm run build npm test

Local CI

./scripts/act-ci.sh --local


## 许可证

麻省理工学院

目录标签

目录标签

团队协作TypeScriptClaudeDiscord管理本地部署多项目管理自动化通知机器人角色

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

discord-ops@latest

工具数量(toolCount,工具数)

49

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP