🚀 Flashduty MCP 服務器
Flashduty MCP 服務器是一個 模型上下文協議(MCP) 服務器,它可與 Flashduty API 實現無縫集成,為開發者和工具提供高級事件管理和自動化功能。
使用場景
- 自動化 Flashduty 工作流程和流程。
- 從 Flashduty 中提取和分析數據。
- 構建與 Flashduty 交互的人工智能工具和應用程序。
🚀 快速開始
Flashduty MCP 服務器提供了兩種部署方式,分別是遠程部署和本地部署,下面將詳細介紹這兩種部署方式的前提條件和安裝步驟。
📦 安裝指南
遠程 Flashduty MCP 服務器
遠程 Flashduty MCP 服務器為 Flashduty 集成提供了最簡單的啟動和運行方法。如果您的 MCP 主機不支持遠程 MCP 服務器,可以使用 本地版本的 Flashduty MCP 服務器。
前提條件
- 支持最新 MCP 規範和遠程服務器的 MCP 主機,例如 Cursor。
- 從您的 Flashduty 賬戶獲取的 Flashduty APP 密鑰。
安裝步驟
例如,使用 Cursor:
對於支持遠程 MCP 的 Cursor,使用以下配置:
{
"mcpServers": {
"flashduty": {
"url": "https://mcp.flashcat.cloud/flashduty",
"authorization_token": "Bearer <your_flashduty_app_key>"
}
}
}
⚠️ 重要提示
請參考您的 MCP 主機文檔,以獲取遠程 MCP 服務器設置的正確語法和位置。
本地 Flashduty MCP 服務器
前提條件
- 要在容器中運行服務器,您需要安裝並運行 Docker。
- 從您的 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 Releases 下載適用於您操作系統的預編譯版本,這是一種更快、更方便的選擇。
如果您更喜歡從源代碼構建,可以使用 go build 在 cmd/flashduty-mcp-server 目錄中構建二進制文件。您可以通過環境變量或命令行參數提供 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 <your_flashduty_app_key>"
}
}
}
toolsets=...:使用逗號分隔的列表指定要啟用的工具集。
read_only=true:啟用只讀模式。
本地服務器配置
通過 Docker 或從源代碼在本地運行服務時,您可以完全控制配置。
1. 通過環境變量
這是本地配置最常用的方法,尤其是在 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=<your-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. 國際化 / 覆蓋描述(僅適用於本地部署)
覆蓋工具描述的功能僅適用於本地部署。您可以通過創建 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 應被視為不穩定的,可能會有重大更改。未來,我們可能會提供穩定性;如果有相關使用案例,請提交問題。
📄 許可證
本項目採用 MIT 許可證 - 有關詳細信息,請參閱 LICENSE 文件。