Flashduty MCP Server 是一个 模型上下文协议(Model Context Protocol,MCP) 服务器,它能与 Flashduty API 实现无缝集成,为开发者和工具提供高级的事件管理和自动化功能。
远程 Flashduty MCP 服务器提供了最简单的方式来实现与 Flashduty 的集成。如果你的 MCP 主机不支持远程 MCP 服务器,你可以使用 本地版本的 Flashduty MCP 服务器。
以 Cursor 为例:
对于支持远程 MCP 的 Cursor,使用以下配置:
{
"mcpServers": {
"flashduty": {
"url": "https://mcp.flashcat.cloud/flashduty",
"authorization_token": "Bearer "
}
}
}
⚠️ 重要提示
请参考你的 MCP 主机文档,以获取远程 MCP 服务器设置的正确语法和位置。
以 Cursor 为例:
将以下 JSON 块添加到你的 Cursor MCP 配置中。
{
"mcpServers": {
"flashduty": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"FLASHDUTY_APP_KEY",
"flashcat.tencentcloudcr.com/flashduty/flashduty-mcp-server"
],
"env": {
"FLASHDUTY_APP_KEY": "your_flashduty_app_key"
}
}
}
}
除了从源代码进行构建,你还可以直接从项目的 GitHub 发布页面 下载适合你操作系统的预编译版本,这是一种更快、更方便的选择。
如果你更喜欢从源代码构建,可以在 cmd/flashduty-mcp-server 目录中使用 go build 来构建二进制文件。你可以通过环境变量或命令行参数提供 APP 密钥。
你应该将你的 MCP 主机配置为使用构建好的可执行文件作为其 command。例如:
通过环境变量:
{
"mcpServers": {
"flashduty": {
"command": "/path/to/flashduty-mcp-server",
"args": ["stdio"],
"env": {
"FLASHDUTY_APP_KEY": "your_app_key_here"
}
}
}
}
通过命令行参数:
{
"mcpServers": {
"flashduty": {
"command": "/path/to/flashduty-mcp-server",
"args": ["stdio", "--app-key", "your_app_key_here"]
}
}
}
Flashduty MCP 服务器支持多种配置选项,以满足不同的使用场景。主要选项包括:
配置方法分为 远程服务配置 和 本地服务配置。
当使用公共远程服务 (https://mcp.flashcat.cloud/flashduty) 时,你可以通过在 URL 后附加查询参数来动态配置它。
以下是一个配置远程服务的示例,指定了工具集和只读模式:
{
"mcpServers": {
"flashduty": {
"url": "https://mcp.flashcat.cloud/flashduty?toolsets=flashduty_incidents,flashduty_teams&read_only=true",
"authorization_token": "Bearer "
}
}
}
toolsets=...:使用逗号分隔的列表指定要启用的工具集。read_only=true:启用只读模式。当通过 Docker 或从源代码在本地运行服务时,你可以完全控制配置。
这是本地配置最常用的方法,特别是在 Docker 环境中。
| 变量 | 描述 | 是否必需 | 默认值 |
|---|---|---|---|
FLASHDUTY_APP_KEY |
Flashduty APP 密钥 | ✅ | - |
FLASHDUTY_TOOLSETS |
要启用的工具集(逗号分隔) | ❌ | 所有工具集 |
FLASHDUTY_READ_ONLY |
限制为只读操作(1 或 true) |
❌ | false |
FLASHDUTY_BASE_URL |
Flashduty API 基础 URL | ❌ | https://api.flashcat.cloud |
FLASHDUTY_LOG_FILE |
日志文件路径 | ❌ | 标准错误输出 |
FLASHDUTY_ENABLE_COMMAND_LOGGING |
启用命令日志记录 | ❌ | false |
Docker 示例:
docker run -i --rm \
-e FLASHDUTY_APP_KEY= \
-e FLASHDUTY_TOOLSETS="flashduty_incidents,flashduty_teams" \
-e FLASHDUTY_READ_ONLY=1 \
flashcat.tencentcloudcr.com/flashduty/flashduty-mcp-server
如果你直接从源代码构建并运行二进制文件,可以使用命令行参数。
./flashduty-mcp-server stdio \
--app-key your_app_key_here \
--toolsets flashduty_incidents,flashduty_teams \
--read-only
可用的命令行参数:
--app-key:Flashduty APP 密钥(替代 FLASHDUTY_APP_KEY 环境变量)--toolsets:要启用的工具集,用逗号分隔--read-only:启用只读模式--base-url:Flashduty API 基础 URL--log-file:日志文件路径--enable-command-logging:启用命令日志记录--export-translations:将翻译保存到 JSON 文件⚠️ 重要提示
命令行参数优先于环境变量。对于工具集配置,如果同时设置了
FLASHDUTY_TOOLSETS环境变量和--toolsets参数,命令行参数将优先。
覆盖工具描述的功能仅适用于本地部署。你可以通过创建 flashduty-mcp-server-config.json 文件或设置环境变量来实现。
通过 JSON 文件:
在与二进制文件相同的目录中创建 flashduty-mcp-server-config.json:
{
"TOOL_CREATE_INCIDENT_DESCRIPTION": "an alternative description",
"TOOL_LIST_TEAMS_DESCRIPTION": "List all teams in Flashduty account"
}
通过环境变量:
export FLASHDUTY_MCP_TOOL_CREATE_INCIDENT_DESCRIPTION="an alternative description"
以下工具集可用(默认全部启用)。你也可以使用 all 来启用所有工具集。
| 工具集 | 描述 |
|---|---|
flashduty_incidents |
Flashduty 事件管理工具 |
flashduty_members |
Flashduty 成员管理工具 |
flashduty_teams |
Flashduty 团队管理工具 |
flashduty_channels |
Flashduty 协作渠道管理工具 |
服务器基于 Flashduty API 提供以下工具集:
flashduty_members - 成员管理工具flashduty_member_infos - 通过人员 ID 获取成员信息flashduty_teams - 团队管理工具flashduty_teams_infos - 通过团队 ID 获取团队信息flashduty_channels - 渠道管理工具flashduty_channels_infos - 通过渠道 ID 获取协作空间信息flashduty_incidents - 事件管理工具flashduty_incidents_infos - 通过事件 ID 获取事件信息flashduty_list_incidents - 使用综合过滤器列出事件flashduty_list_past_incidents - 列出类似的历史事件flashduty_get_incident_timeline - 获取事件时间线和动态flashduty_get_incident_alerts - 获取与事件关联的警报flashduty_create_incident - 创建新事件flashduty_ack_incident - 确认事件flashduty_resolve_incident - 解决事件flashduty_assign_incident - 将事件分配给人员或升级规则flashduty_add_responder - 为事件添加响应者flashduty_snooze_incident - 暂停事件一段时间flashduty_merge_incident - 将多个事件合并为一个flashduty_comment_incident - 为事件添加评论flashduty_update_incident_title - 更新事件标题flashduty_update_incident_description - 更新事件描述flashduty_update_incident_impact - 更新事件影响flashduty_update_incident_root_cause - 更新事件根本原因flashduty_update_incident_resolution - 更新事件解决方案flashduty_update_incident_severity - 更新事件严重程度flashduty_update_incident_fields - 更新自定义字段目前,此模块导出的 Go API 应被视为不稳定的,可能会有重大更改。未来我们可能会提供稳定性保障;如果你有相关使用场景,请提交一个 issue。
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。