🚀 Flashduty MCP Server
Flashduty MCP Serverは、Model Context Protocol (MCP)サーバーです。Flashduty APIとのシームレスな統合を提供し、開発者やツールに高度なインシデント管理と自動化機能を実現します。
ユースケース
- Flashdutyのワークフローとプロセスの自動化
- Flashdutyからのデータ抽出と分析
- Flashdutyとやり取りするAI搭載のツールやアプリケーションの構築
🚀 クイックスタート
リモート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からオペレーティングシステム用の事前コンパイル済みバージョンを直接ダウンロードすることもできます。これはより迅速で便利なオプションです。
ソースからビルドする場合は、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 <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 |
ログファイルのパス |
❌ |
stderr |
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. 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 - 複数のインシデントを1つにマージする
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ファイルを参照してください。