Runframe Incident Management MCP Server について
Runframe Incident Management MCP Serverは、エンジニアリングチームのAIエージェントやIDEをRunframeのインシデント対応ワークフローに接続します。インシデント対応、オンコール確認、サービス、事後分析、チーム、ユーザーを扱い、データはローカルに保存しません。
主な機能
- 01インシデントの作成・更新・追跡
- 02確認、エスカレーション、担当者への連絡
- 03オンコール担当者とポリシーの確認
- 04サービスと事後分析記録の管理
- 05ユーザーとチームの検索
活用シーン
- 01IDEからインシデントをトリアージして更新
- 02現在のオンコール担当者を確認
- 03障害時にチームメンバーへ連絡
- 04インシデント後に事後分析を作成
MCP 対応
stdioまたはStreamable HTTP経由で、17個のインシデント管理ツールをMCPクライアントに提供します。スコープ付きAPIキーでRunframe APIにリクエストを転送し、データをローカルに保存しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @runframe/mcp-serverRUNFRAME_API_KEYシークレットAPI key from https://runframe.io/settings (starts with rf_)RUNFRAME_API_URLAPI base URL (default: https://runframe.io)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
runframe-mcp-server
Runframe は、インシデント対応、オンコール、ステータスページを網羅する、エンジニアリングチーム向けの包括的なインシデントライフサイクルプラットフォームです。この MCP サーバーを使うと、IDE や AI エージェントからこれらのワークフローを管理できます。
インシデント、オンコール、サービス、ポストモーテム、チーム、人の検索を網羅する 17 個のツールを提供します。Node.js 20 以上が必要です。
このツールを使う理由
- エディターから離れずに作業 — ブラウザーに切り替えることなく、インシデントの確認、対応者への通知、ポストモーテムの作成ができます
- 定型作業をエージェントに任せる — AI エージェントは、権限を限定した API キーを使用して、インシデントのトリアージ、エスカレーション、更新を自律的に行えます
- インフラ不要 —
npxで実行でき、ローカルで使う場合にデプロイするサーバーはありません
仕組み
Your IDE / Agent
↓ (stdio or HTTP)
MCP Server (this package)
↓ (HTTPS, scoped API key)
Runframe API
このサーバーはステートレスです。MCP ツール呼び出しを、API キーの権限でスコープされた Runframe API リクエストに変換します。データはローカルに保存されません。
使用例
エージェントに次のように依頼できます。
- 「インシデント INC-2026-001 を確認して」 →
runframe_acknowledge_incidentを呼び出します - 「今、オンコール担当なのは誰?」 →
runframe_get_current_oncallを呼び出します - 「データベース障害のポストモーテムを作成して」 →
runframe_create_postmortemを呼び出します - 「API のレイテンシ急増について、バックエンドチームのリードに通知して」 →
runframe_page_someoneを呼び出します - 「オープン中の SEV1 インシデントをすべて一覧表示して」 → 重大度フィルターを指定して
runframe_list_incidentsを呼び出します - 「Alex のオープン中のインシデントを確認したいので、Alex を検索して」 →
runframe_find_userを呼び出します
インストール
Runframe.io 内の設定から API キーを取得し、エージェントに追加します。
Claude Code:
claude mcp add runframe -e RUNFRAME_API_KEY=rf_your_key_here -- npx -y @runframe/mcp-server
Cursor(~/.cursor/mcp.json) · VS Code(.vscode/mcp.json) · Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"runframe": {
"command": "npx",
"args": ["-y", "@runframe/mcp-server"],
"env": { "RUNFRAME_API_KEY": "rf_your_key_here" }
}
}
}
その他の MCP クライアント: 上記の JSON 設定を、クライアントの MCP 設定ファイルに追加します。
対話型セットアップウィザード:
npx @runframe/mcp-server --setup
環境変数
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
RUNFRAME_API_KEY | はい | — | API キー(rf_ で始まります) |
RUNFRAME_API_URL | いいえ | https://runframe.io | API のベース URL |
MCP_ACCESS_TOKEN | HTTP のみ | — | HTTP トランスポート用のベアラートークン。ローテーションする場合はカンマ区切りで指定します(new_token,old_token)。 |
トランスポート
stdio(デフォルト) — Claude Code や Cursor などの MCP クライアントで使用します。ネットワークには公開されません。上記のインストールコマンドでは、この設定が行われます。
Streamable HTTP — コンテナ化したデプロイやリモートデプロイ向けです。ベアラー認証には MCP_ACCESS_TOKEN が必要です。
RUNFRAME_API_KEY=rf_... \
MCP_ACCESS_TOKEN=your_token \
npx @runframe/mcp-server --transport http --port 3100 --host 127.0.0.1
セキュリティモデル
責任は次の 3 つの境界で分担されます。
- Runframe API は、
RUNFRAME_API_KEYを使用して認可とスコープを処理します。 - この MCP サーバー は、プロセスの分離(stdio)とベアラートークンの検証(HTTP)を処理します。また、メソッドのフィルタリング、localhost での Host/Origin チェック、宣言された Content-Length の検証(上限 1 MB)、ヘッダーサイズの上限 8 KB、上流へのタイムアウト 15 秒を適用します。
- リバースプロキシ は、HTTP モードをネットワークに公開する場合、TLS、レート制限、ストリーミングボディの適用を処理します。
このサーバーは何も保存しません。Runframe API へのパススルーとして動作します。
ツール
インシデント(9)
| ツール | スコープ | 説明 |
|---|---|---|
runframe_list_incidents | incidents:read | フィルターとページネーションを使ってインシデントを一覧表示します |
runframe_get_incident | incidents:read | ID または番号でインシデントを取得します |
runframe_create_incident | incidents:write | インシデントを作成します |
runframe_update_incident | incidents:write | タイトル、説明、重大度、担当者を更新します |
runframe_change_incident_status | incidents:write | 新しいステータス(new、investigating、fixing、monitoring、resolved、closed)に変更します |
runframe_acknowledge_incident | incidents:write | インシデントを確認します(自動割り当て、SLA の追跡を行います) |
runframe_add_incident_event | incidents:write | タイムラインにエントリーを追加します |
runframe_escalate_incident | incidents:write | 次のポリシーレベルにエスカレーションします |
runframe_page_someone | incidents:write | Slack またはメールで対応者に通知します |
オンコール(1)
| ツール | スコープ | 説明 |
|---|---|---|
runframe_get_current_oncall | oncall:read | 現在のオンコール担当者を取得します |
サービス(2)
| ツール | スコープ | 説明 |
|---|---|---|
runframe_list_services | services:read | サービスを一覧表示します |
runframe_get_service | services:read | サービスの詳細を取得します |
ポストモーテム(2)
| ツール | スコープ | 説明 |
|---|---|---|
runframe_create_postmortem | postmortems:write | ポストモーテムを作成します |
runframe_get_postmortem | postmortems:read | インシデントのポストモーテムを取得します |
チーム(2)
| ツール | スコープ | 説明 |
|---|---|---|
runframe_list_teams | teams:read | チームを一覧表示します |
runframe_get_escalation_policy | oncall:read | 重大度レベルに応じたエスカレーションポリシーを取得します |
ユーザー(1)
| ツール | スコープ | 説明 |
|---|---|---|
runframe_find_user | users:read | 名前またはメールアドレスでユーザーを検索します。過去の検索に対応するため、非アクティブなユーザーも任意で含められます |
直接 API との整合性
この MCP サーバーは、公開されている Runframe の直接 API コントラクトに準拠しています。
- インシデントの作成時は、内部 UUID ではなく、
svc_K7M4Q9TZ2Hのような公開サービスキーを含むservice_idsが必要です。 runframe_get_serviceは UUID ではなく、公開service_keyでサービスを検索するようになりました。- インシデントツールは最新の V1 コントラクトに準拠し、パスパラメーターには
INC-2026-001のようなインシデント番号を使用します。 - インシデントの更新と一覧表示のフィルターでは、V1 が定める最新の公開識別子、つまり担当者/解決者のメールアドレスと
team_nameを使用するようになりました。 runframe_create_incidentは任意のidempotency_keyを受け付けます。この値は、再試行に安全な作成処理のためにIdempotency-Keyヘッダーとして転送されます。runframe_create_incidentでは、指定がない場合、V1 API と同様にseverityのデフォルト値がSEV2になります。- インシデント作成の制限も V1 API と同じです。
titleは 1~200 文字、descriptionは最大 10000 文字、service_idsは最大 50 件です。 - インシデントの作成には、指定した重大度に対する有効な SLA 設定が必要です。確認期限またはクローズ期限が設定されていない場合、API は作成を拒否します。
- インシデント作成前に有効な
service_key値を確認するには、runframe_list_servicesを使用してください。 runframe_page_someoneは最新の V1 配信コントラクトに準拠し、email、channels、任意のmessageを使用するようになりました。- ポストモーテムツールは最新の V1 コントラクトに準拠し、
incident_numberと、users_affected、owner_email、time_to_acknowledgeなどのスネークケース形式のネストされたフィールドを使用するようになりました。 assigned_toまたはresolved_byでインシデントを絞り込む前に、runframe_find_userを使用して人物名からメールアドレスを特定してください。- 過去のインシデントを検索する際に退職者を特定する必要がある場合は、
runframe_find_userでinclude_inactive=trueを設定してください。 - V1 のアクティブ状態フィルターを明示的に指定する必要がある場合は、
runframe_find_userでis_active=trueまたはis_active=falseを設定してください。 - インシデントを絞り込む前に正確な
team_nameを特定するには、searchを指定してrunframe_list_teamsを使用してください。
Docker
Docker イメージは、デフォルトでポート 3100 で HTTP トランスポートを実行します。
docker build -t runframe-mcp-server .
docker run -e RUNFRAME_API_KEY=rf_... -e MCP_ACCESS_TOKEN=your_token -p 3100:3100 runframe-mcp-server
HTTP モードのデプロイ
HTTP モードはプライベートネットワーク向けです。インターネットに公開する場合:
- TLS(nginx、Caddy、クラウド LB)の背後で実行してください。このサーバーは TLS に対応していません。
- レート制限とリクエストのバッファリングにはリバースプロキシを使用してください。
- 公開するより、プライベートサブネットや VPN を優先してください。
MCP_ACCESS_TOKENを定期的にローテーションしてください。ダウンタイムなしで切り替えるには、新旧のトークンをカンマ区切りで指定します。
レート制限
Runframe API はサーバー側でレート制限を適用します。制限に達すると、ツールは再試行のヒントを含む 429 エラーを返します。HTTP トランスポートをデプロイする場合、リバースプロキシでリクエスト単位のスロットリングを追加できます。
トークンのローテーション
MCP_ACCESS_TOKEN にはカンマ区切りでトークンを指定できます:
MCP_ACCESS_TOKEN=new_token,old_tokenを設定します- クライアントを
new_tokenに更新します - 古いトークンを削除します:
MCP_ACCESS_TOKEN=new_token
制限事項
- スケジュールは読み取り専用です。オンコール情報とエスカレーションポリシーは照会できますが、MCP 経由では変更できません
- Runframe アカウントと API キーが必要です
コントリビューション
github.com/runframe/runframe-mcp-server で、Issue や PR を歓迎します。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。