Flashduty Mcp Server

Flashduty Mcp Server

🚀 Flashduty MCP Server

Flashduty MCP Server 是一个 模型上下文协议(Model Context Protocol,MCP) 服务器,它能与 Flashduty API 实现无缝集成,为开发者和工具提供高级的事件管理和自动化功能。

🔍 使用场景

  • 自动化执行 Flashduty 工作流和流程。
  • 从 Flashduty 中提取和分析数据。
  • 构建与 Flashduty 交互的人工智能驱动工具和应用程序。

🚀 快速开始

🌐 远程 Flashduty MCP 服务器

远程 Flashduty MCP 服务器提供了最简单的方式来实现与 Flashduty 的集成。如果你的 MCP 主机不支持远程 MCP 服务器,你可以使用 本地版本的 Flashduty MCP 服务器。

📋 前提条件

  1. 支持最新 MCP 规范和远程服务器的 MCP 主机,例如 Cursor
  2. 从你的 Flashduty 账户获取的 Flashduty APP 密钥。

💻 安装步骤

以 Cursor 为例:

对于支持远程 MCP 的 Cursor,使用以下配置:

{
"mcpServers": {
"flashduty": {
"url": "https://mcp.flashcat.cloud/flashduty",
"authorization_token": "Bearer "
}
}
}

⚠️ 重要提示

请参考你的 MCP 主机文档,以获取远程 MCP 服务器设置的正确语法和位置。


💻 本地 Flashduty MCP 服务器

📋 前提条件

  1. 若要在容器中运行服务器,你需要安装并运行 Docker
  2. 从你的 Flashduty 账户获取的 Flashduty APP 密钥。

💻 安装步骤

以 Cursor 为例:

🐳 使用 Docker

将以下 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 服务器支持多种配置选项,以满足不同的使用场景。主要选项包括:

  • 工具集:允许你启用或禁用特定的功能组。仅启用你需要的工具集可以帮助大语言模型(LLM)选择工具,并减少上下文大小。
  • 只读模式:将服务器限制为只读操作,防止任何修改,增强安全性。
  • 国际化(i18n):支持自定义工具描述,以适应不同的语言或团队偏好。

配置方法分为 远程服务配置本地服务配置

🌐 远程服务器配置

当使用公共远程服务 (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 或从源代码在本地运行服务时,你可以完全控制配置。

1. 通过环境变量

这是本地配置最常用的方法,特别是在 Docker 环境中。

变量 描述 是否必需 默认值
FLASHDUTY_APP_KEY Flashduty APP 密钥 -
FLASHDUTY_TOOLSETS 要启用的工具集(逗号分隔) 所有工具集
FLASHDUTY_READ_ONLY 限制为只读操作(1true 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

2. 通过命令行参数

如果你直接从源代码构建并运行二进制文件,可以使用命令行参数。

./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 参数,命令行参数将优先。

3. 国际化(i18n)/ 覆盖描述(仅适用于本地部署)

覆盖工具描述的功能仅适用于本地部署。你可以通过创建 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 文件。

  • 0 关注
  • 0 收藏,37 浏览
  • system 提出于 2025-10-06 07:45

相似服务问题

相关AI产品