hydris-diagnostic-mcp
hydris-mcp-integration
Hydris Pulse Bridge トラック、ワークアイテム1:診断用MCPサーバーのスケルトン
これはLiteモノレポ内の lite/diagnostic_mcp/ に配置されます。
BRIDGE-2(呼び出しごとのファクトリー認可)、BRIDGE-5(呼び出しごとの監査ログ)、NFR-4(セキュリティ)を実行し、構造的にBRIDGE-1(読み取り専用ツールセット)を強制します。
ここで構築される内容とされない内容の詳細は docs/scope.md を、保留中の決定事項(失効レイテンシ、監査シンク障害時の動作、非漏洩エラー形状、ツールセットバージョンスキーム)については docs/decisions.md を参照してください。このスケルトンはこれらの決定事項に対して立場を取っており、Nematullah の承認を待っています。
アーキテクチャ
二つのIDを分離(
diagnostic_mcp/auth/):サービスプリンシパルJWT(読み取り専用スコープ、独立して検証)と呼び出しごとのユーザーコンテキストJWT。サービストークンはアクセスを拡大しません。すべての呼び出しに一つのパイプライン(
diagnostic_mcp/registry/pipeline.py):両方のIDを認証し、引数を検証し、ユーザーのライブファクトリー付与(キャッシュなし)を確認し、ディスパッチし、監査ログに結果(成功、拒否、エラー)を毎回記録します。登録時の読み取り専用ゲート(
diagnostic_mcp/registry/tool_registry.py):classification="read_only"を持たない、または必須のfactory_id引数を持たないツールは、呼び出し時ではなく登録時に拒否されます。スキーマ公開にはFastMCP、ディスパッチには一つのオーバーライド(
diagnostic_mcp/server.py):tools/listは通常通りFastMCPから提供されます。tools/callは低レベルサーバーで一度だけインターセプトされるため、すべてのツール(現在および将来)は同じパイプラインを通過し、ツールごとのボイラープレートは不要です。一つのデモツール
get_plant_overview(diagnostic_mcp/tools/plant_overview.py)。Liteの読み取りサービス層のインメモリスタブで動作し、ソースドキュメントに記載された正確なフィクスチャ(u-ops-alphaにはfx-mbr-01が付与、u-ops-betaにはfx-beta-01が付与)でシードされます。
Related MCP server: system-monitor
クイックスタート
python -m venv .venv
.venv/Scripts/pip install -e ".[dev]" # .venv/bin/pip on macOS/Linux
cp .env.example .env # then edit the two secretsサーバーを起動します:
set -a; source .env; set +a # or export the vars another way
python -m diagnostic_mcp.serverデフォルトでは streamable-http で http://127.0.0.1:8765/mcp をリッスンします。
エンドツーエンドで検証する
pytest -v # includes a real streamable-HTTP client/server round trip
ruff check .
mypy diagnostic_mcp tests
python scripts/check_no_write_imports.py実行中のサーバーを公式MCPクライアントで手動呼び出しするには、サーバーが使用しているのと同じシークレットに対してサービストークンとユーザーコンテキストトークンを発行します:
from diagnostic_mcp.auth.service_principal import issue_service_token
from diagnostic_mcp.auth.user_context import issue_user_context_token
service_token = issue_service_token("<LITE_MCP_SERVICE_TOKEN_SECRET>")
user_token = issue_user_context_token("<LITE_MCP_USER_CONTEXT_SECRET>", "u-ops-alpha", "org-alpha")
print(f"Authorization: Bearer {service_token}")
print(f"X-Pulse-User-Context: {user_token}")その後、get_plant_overview を factory_id=fx-mbr-01(付与あり - 成功)または factory_id=fx-beta-01(付与なし - 拒否)で呼び出します。両方の試行は audit.jsonl に記録されます。
ワークアイテム1の完了条件
項目 | ステータス |
MCPサーバーがインプロセスで登録され、streamable-HTTPで到達可能 | 完了 |
ツールレジストリに読み取り専用分類があり、起動時に非準拠の登録を拒否 | 完了 |
サービスプリンシパルが読み取り専用スコープで発行され、スコープインベントリが15ツールの最低セットに対して文書化 | 完了 - |
呼び出しごとのユーザーコンテキストヘッダーが解析され、付与が解決され、サービストークンが使用される前に呼び出しが拒否 | 完了 |
非漏洩な認可エラー形状が合意され実装 | 完了 - |
失効レイテンシが選択され文書化 | 完了 - |
監査シンクが、成功、失敗、拒否のすべての場合において6つの必須フィールドを書き込む | 完了 |
PulseセッションIDが伝搬され記録され、TC-BRIDGE-5.3とのパリティを確保 | 完了 - |
監査シンク障害時の動作がNematullahと協議され実装 | 提案済み、承認待ち - O2 参照 |
書き込み禁止CIチェックがLiteリポジトリで有効 | 暫定のみ - |
シークレットが管理ストアから解決され、リスナーでTLSが適用 | シークレット:完了(env-varシーム)。TLS:インフラ懸念事項 - |
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only MCP server for AIStatusDashboard status, incidents, metrics, and fallback recommendations.
Guarded MCP server for agent-readable business truth, provenance, readiness, and discovery.
Read-only MCP access to a documented IT fleet: state, changes, posture. 15 tools.
MCP gateway with runtime security policy, tool-call-level control, and audit of agent actions.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides secure, read-only access to the TrakSYS manufacturing analytics platform through entity-based tools and guided investigation prompts. It enables users to interact with manufacturing databases and perform data analysis via natural language.MIT
- AlicenseAqualityDmaintenanceA secure, read-only MCP server for AI-powered system monitoring. It provides real-time OS metrics, config discovery, and safe log tailing to enable autonomous infrastructure audits without shell access risks.41ISC
- AlicenseNot gradedqualityDmaintenanceA hardened MCP server exposing read-only orders tools to AI agents, with rigorous input validation and parameterized queries to prevent injection attacks.MIT
- FlicenseNot gradedqualityCmaintenanceA read-only MCP server that exposes a materials distributor database with four tools for querying tables, describing schemas, sampling rows, and running SELECT queries, secured by three independent layers to prevent any write operations.-