On-Call Health について
On-Call Health は、オンコールの負荷と燃え尽きリスクを分析し、チームや個人のリスクと健康の推移を、要員配置に役立つ形で示すサービスです。MCP サーバーから連携データを使ったチーム分析、メンバーのリスク確認、日ごとの健康情報を取得できます。
主な機能
- 01データ連携の検証と一覧表示
- 02チーム分析の開始と状況確認
- 03リスク分布とメンバー情報の要約
- 04高リスク者と追加対応可能な担当者の特定
- 05メンバーの日次健康・インシデント情報の確認
- 06分析リソースとプロンプトの提供
活用シーン
- 01チームのオンコール状況の確認
- 02注意が必要なオンコール担当者の特定
- 03個人のリスクと日々の傾向の確認
- 04週次のオンコール健康レポート用情報の収集
MCP 対応
MCP サーバーは分析、連携検証、担当者リスク、日次健康情報のツールと、分析リソースおよびプロンプトを公開します。stdio と Streamable HTTP に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
oncallhealth-mcp
On-Call Health の燃え尽き分析に対応する MCP サーバーです。AI アシスタントをオンコールデータに接続し、業務負荷に関する分析情報を提供します。
前提条件
- oncallhealth.ai の On-Call Health アカウント
- oncallhealth.ai/settings/api-keys で取得した API キー
インストール
サーバーは uvx を使用して stdio 経由でローカル実行されるため、インストールは不要です。API キーは ONCALLHEALTH_API_KEY 環境変数から読み取ります。使用するクライアントを選択してください。
Claude Code
claude mcp add oncallhealth --env ONCALLHEALTH_API_KEY=och_live_... -- uvx oncallhealth-mcp
Claude Desktop
claude_desktop_config.json に追加します(macOS:~/Library/Application Support/Claude/claude_desktop_config.json、Windows:%APPDATA%\Claude\claude_desktop_config.json)。
{
"mcpServers": {
"oncallhealth": {
"command": "uvx",
"args": ["oncallhealth-mcp"],
"env": { "ONCALLHEALTH_API_KEY": "och_live_your_api_key_here" }
}
}
}
Cursor
プロジェクトの .cursor/mcp.json(グローバル設定の場合は ~/.cursor/mcp.json)に追加します。
{
"mcpServers": {
"oncallhealth": {
"command": "uvx",
"args": ["oncallhealth-mcp"],
"env": { "ONCALLHEALTH_API_KEY": "och_live_your_api_key_here" }
}
}
}
VS Code / GitHub Copilot
プロジェクトの .vscode/mcp.json に追加します。
{
"servers": {
"oncallhealth": {
"command": "uvx",
"args": ["oncallhealth-mcp"],
"env": { "ONCALLHEALTH_API_KEY": "och_live_your_api_key_here" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します。
{
"mcpServers": {
"oncallhealth": {
"command": "uvx",
"args": ["oncallhealth-mcp"],
"env": { "ONCALLHEALTH_API_KEY": "och_live_your_api_key_here" }
}
}
}
Codex CLI
codex mcp add oncallhealth --env ONCALLHEALTH_API_KEY=och_live_... -- uvx oncallhealth-mcp
Gemini CLI
gemini mcp add oncallhealth -e ONCALLHEALTH_API_KEY=och_live_... uvx oncallhealth-mcp
手動設定/その他のクライアント
pip install oncallhealth-mcp
export ONCALLHEALTH_API_KEY=och_live_...
oncallhealth-mcp
インストールせずに実行することもできます:ONCALLHEALTH_API_KEY=och_live_... uvx oncallhealth-mcp。
設定
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
ONCALLHEALTH_API_KEY | はい(stdio) | - | oncallhealth.ai の API キー |
ONCALLHEALTH_API_URL | いいえ | https://api.oncallhealth.ai | API エンドポイント URL |
ONCALLHEALTH_CODE_MODE | いいえ | off | 1 に設定すると、Code Mode のメタツール経由でカタログを公開します(下記参照) |
ONCALLHEALTH_POLL_INTERVAL | いいえ | 5.0 | analysis_run 内でステータスを確認する間隔(秒)。ONCALLHEALTH_POLL_MAX_INTERVAL(デフォルトは 30.0)まで間隔が延長されます |
ONCALLHEALTH_MCP_ALLOWED_HOSTS | いいえ | - | HTTP 専用:Host/Origin の DNS リバインディング対策を有効にする、カンマ区切りのホスト名 |
リクエストのタイムアウト、再試行、サーキットブレーカーの設定も変更できます。oncallhealth_mcp/client/config.py を参照してください。
セキュリティに関する注意
API キーをバージョン管理にコミットしないでください。設定ファイルにキーを直接記述せず、環境変数またはシークレットマネージャーを使用してください。
プロトコルの互換性
このサーバーは MCP リビジョン 2026-07-28(ステートレスな Streamable HTTP、Mcp-Method/Mcp-Name ルーティングヘッダー、キャッシュ可能なリスト結果、Tasks 拡張)を実装し、接続ごとに古いリビジョンとのネゴシエーションを行うため、2025 年のハンドシェイク期のプロトコルを使用するクライアントも引き続き動作します。すべてのツールはアノテーション(読み取り専用、冪等、オープンワールド)と構造化出力スキーマを公開します。非推奨の HTTP+SSE トランスポートは提供されません。
ツール
まず validate_integrations を実行し、次に analysis_current(新たに分析する場合は analysis_run)、続いて analysis_summary とメンバーレベルのツールを実行してください。
| ツール | 機能 |
|---|---|
validate_integrations | 接続されているすべてのインテグレーションの認証情報が有効か確認します。force_refresh を指定すると、バックエンドのキャッシュをバイパスします。 |
integrations_list | 接続されている Rootly、GitHub、Slack、Jira、Linear のインテグレーションを一覧表示します。 |
oncall_users | Rootly インテグレーション(integration_id)で現在オンコール中のユーザーを表示します。 |
analysis_current | 最新の分析のメタデータ(ステータス、タイムスタンプ、設定)を表示します。 |
analysis_run | 分析を開始して完了まで待機します。days_back(デフォルトは 30)、include_weekends、integration_id、wait_timeout_seconds(デフォルトは 600)を指定できます。チームの概要を返します。MCP Tasks 拡張に対応するクライアントではバックグラウンドタスクとして実行し、それ以外ではインラインで実行します。待機中は進捗メッセージを表示します。 |
analysis_start | 待機せずに分析を開始します。analysis_status で状態を確認します。 |
analysis_status | 分析(analysis_id)のステータスとメタデータを表示します。 |
analysis_summary | チームの平均値、リスク分布、リスクの高いメンバー上位 5 名と最も健康なメンバーを表示します。 |
analysis_results | 完了した分析の生データ全体を返します(大きいため、目的に応じたツールの利用を推奨します)。 |
get_at_risk_users | min_och_score(デフォルトは 50)以上で、include_risk_levels(デフォルトは ["medium", "high"])に該当するメンバーを、Rootly/PagerDuty/Slack/GitHub の ID とともに返します。 |
get_safe_responders | max_och_score(デフォルトは 30)以下で、追加シフトを担当できるメンバーを、limit 件まで返します。 |
check_users_risk | 指定された rootly_user_ids(整数のリスト)のリスクを確認し、リスクあり、健康、見つからないユーザーに分類します。 |
member_daily_health | member_email で指定したメンバーの日ごとの健康状態、インシデント、時間外対応の内訳を表示します。 |
OCH スコアは 0~100 で、数値が高いほどリスクが高いことを示します。スコアは人員配置の判断に役立てるものであり、医学的な診断ではありません。
リソース
| URI | 内容 |
|---|---|
oncallhealth://methodology | スコアリング方法の簡単な説明 |
oncallhealth://analyses/latest | 最新の分析のメタデータ(JSON) |
oncallhealth://analyses/{analysis_id}/summary | 完了した分析のチーム概要(JSON) |
プロンプト
| プロンプト | 引数 | 目的 |
|---|---|---|
weekly_brief | team_name | フォローアップのアクションを含む、週次のオンコール健康状況レポート |
investigate_responder | member_email、analysis_id | 1 人の対応者の傾向を詳しく調べ、シフト変更を提案します |
コードモード(任意)
--code-mode または ONCALLHEALTH_CODE_MODE=1 を指定すると、カタログは FastMCP Code Mode を通じて公開されます。3 つのメタツール(search、get_schema、execute)を使って、エージェントは必要に応じてツールを検出し、サンドボックス化された Python スニペット内で呼び出しを連結できます。1 つのタスクで多くの呼び出しが必要な場合にコンテキストを節約できますが、ツール一覧、注釈、出力スキーマを直接読み取るクライアントからは、それらが見えなくなります。デフォルトでは無効です。
コマンドラインリファレンス
usage: oncallhealth-mcp [-h] [--transport {stdio,http}] [--host HOST]
[--port PORT] [--code-mode] [-v] [--version]
options:
--transport {stdio,http} Transport to use (default: stdio)
--host HOST Host to bind to (http transport only, default: 127.0.0.1)
--port PORT Port to bind to (http transport only, default: 8000)
--code-mode Expose the catalog through Code Mode meta-tools
-v, --verbose Enable verbose logging
--version show program's version number and exit
ホスト型デプロイ(Streamable HTTP)
oncallhealth-mcp --transport http(または uvicorn oncallhealth_mcp.transport:mcp_http_app を実行する Docker イメージ)は、次のエンドポイントを提供します。
POST /mcp:ステートレスな Streamable HTTP MCP エンドポイントGET /health:認証不要のヘルスチェック
すべての MCP リクエストには、ユーザーの API キーを Authorization: Bearer och_... として含める必要があります。X-API-Key: och_... も使用できます。キーは On-Call Health API に対して検証されます(検証に成功した場合、結果は 5 分間キャッシュされます)。認証されていないリクエストは、ツールが実行される前に 401 が返されます。ツール呼び出しは、JSON-RPC ボディから識別されるキーごと、ツールごとにレート制限されます(たとえば analysis_run と analysis_start は 5 分あたり 5 回)。上限を超えると、429 と Retry-After が返されます。
リモートクライアントの設定例(Claude Code):
claude mcp add --transport http oncallhealth https://your-host/mcp --header "Authorization: Bearer och_live_..."
サーバーはステートレスなので、複数の uvicorn ワーカーやレプリカを実行できます。analysis_run のバックグラウンドタスクをワーカー間で共有するには、FASTMCP_DOCKET_URL を使って FastMCP のタスクバックエンドに Redis または Valkey を指定してください。デフォルトのインメモリバックエンドはプロセスごとに動作します。
ONCALLHEALTH_MCP_ALLOWED_HOSTS=mcp.example.com を設定すると、公開ホスト名に対する FastMCP の Host/Origin DNS リバインディング保護が有効になります。
docker build -t oncallhealth-mcp .
docker run -p 8080:8080 oncallhealth-mcp
リンク
- On-Call Health - メインサイト
- API ドキュメント - REST API ドキュメント
- GitHub Issues - バグを報告
ライセンス
Apache-2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。