ellmos ControlCenter について
ellmos ControlCenter は、ローカルの MCP 環境を管理するサーバー兼ポリシー制御ゲートウェイです。サーバーやプロファイルの検出、ガバナンス管理、エージェントのコンテキストに未ロードのツールへのオンデマンドアクセスを提供します。
主な機能
- 01ローカル MCP サーバーとプロファイルの検出
- 02ツールのケイパビリティバンドル化
- 03ツールカタログの調査と設定生成
- 04ポリシー監査とシークレット除去
- 05ゲートウェイ経由の未ロードツール呼び出し
- 06ローカルダッシュボードとホストレジスター
活用シーン
- 01ローカルのエージェント環境にある MCP サーバーの一覧化
- 02プロファイル切り替えとタスク別カタログ生成
- 03起動時にロードしていないバックエンドツールの呼び出し
- 04ツールアクセスとガバナンス状態の監査
MCP 対応
互換クライアントに管理、検出、ポリシー制御ゲートウェイのツールを提供する MCP サーバーです。バックエンド MCP サーバーに接続し、そのツールを調査または呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
20掲載時のツール一覧 · 3 日前に更新
このツールにパラメーターはありません。
詳細
ellmos ControlCenter MCP
DE ドイツ語版
ellmos-ai ファミリーの一部です。
メモ
LLM / AI エージェントとの連携: このリポジトリは、コンテキストの最適化、RAG による検出、エージェントのナビゲーションに利用できる
llms.txtインデックスファイルを提供します。
クイックナビゲーション
インストール • 対象ユーザー • 比較表 • システムアーキテクチャ • 制御プレーンとゲートウェイのフロー • ガバナンスの不変条件 • ステータス • ツール(34) • ゲートウェイ • 機能バンドル • プロファイルの切り替え • ホストレジスター • ダッシュボード • サードパーティライセンス • ドキュメント • セキュリティポリシー • llms.txt コンテキスト • エコシステムマトリックス
ローカル MCP スタック向けの高度な Model Context Protocol(MCP)管理サーバー兼ポリシー適用ゲートウェイです。ControlCenter はローカル MCP サーバーを検出し、MCP プロファイルファイルを読み取り、サーバーを機能バンドルにグループ化して、タスクに適したプロファイルを推奨します。さらに、カタログの構築、ローカルリポジトリまたはプロファイルからの実際の MCP ツールリストのプローブ、機能バンドルへのツールの割り当て、ホストレベルのレジスターミラー(ロック、権限、リソース、ガバナンス)の提供、オプションのローカルダッシュボードの提供を行います。
アーキテクチャと二つの役割 — 制御プレーン+ポリシー適用ゲートウェイ: ControlCenter は、相互に補完する二つの運用機能を備えています。
- 制御プレーン(管理と設定): ローカルサーバーを一覧化し、プロファイルを解決し、機能バンドルを管理し、システムのガバナンス/ロックをミラーリングして、設定を生成します(
controlcenter_switch_profile、controlcenter_build_catalog)。- ポリシー適用ゲートウェイ(オンデマンドのツール呼び出し): エージェントは
controlcenter_invokeとcontrolcenter_list_available_toolsを介して、ホストエージェントがアクティブなコンテキストに読み込んでいないバックエンド MCP サーバー上のツールを一覧表示し、呼び出すことができます。呼び出しは、パターンベースのポリシールール(data/gateway-policy.json)、引数の監査、シークレットの除去によって厳密に制限されます。管理と検出はローカル優先で行われ、テレメトリーやバックグラウンドでの外部通信はありません。明示的に設定されたゲートウェイ呼び出しでは、リモート HTTPS バックエンドに接続する場合があります。リダイレクトは拒否され、オプションのホスト許可リストで接続先を限定できます。ロックおよび権限ツールは、権限の情報源を検証できない場合、フェイルクローズします。
プロバイダーに関する注記: ControlCenter は、MCP 対応のあらゆるクライアント(Claude Code、Codex、Gemini、または stdio ベースの MCP ホスト)で動作します。プロファイル管理ツールはデフォルトで Claude Code のプロファイルディレクトリ(
~/.claude/profiles)を使用しますが、ELLMOS_PROFILE_ROOTを指定すれば任意のディレクトリを使用できます。スキルとプラグインのインベントリツールは、デフォルトで Claude Code の規約に準拠します。上書き方法については、以下の環境変数を参照してください。
ControlCenter は、検出、プロファイルの可視化、ダッシュボードのワークフロー、機能バンドル、プロファイルに対応したツールリストのプローブ、ツールとバンドルの割り当て、国際化、ポリシー監査、ホストレジスターミラー(ロック、権限、リソース、計画)、およびポリシー適用ゲートウェイ(controlcenter_invoke)を提供します。48 時間のセキュリティ対応 SLA を備え、複数の OS へのデプロイに対応できるよう強化されています。
対象ペルソナと見つけやすさ
| ペルソナ | 中核となるプロフィールと技術スタック | アーキテクチャ上の摩擦と課題 | ControlCenter による解決方法 |
|---|---|---|---|
| AI インフラエンジニアと MCP ツーリングアーキテクト | マルチエージェント環境(Claude Code、Codex、Antigravity、Gemini)全体で、ローカルの MCP サーバーフリートを拡張します。 | 数十個の MCP サーバーを同時に読み込むと、エージェントのコンテキストウィンドウを大量に消費します。また、エージェントのプロファイル間で設定がずれていきます。 | 動的な機能バンドル(data/capability-bundles.json)、ハッシュ整合性のあるプロファイル解決(controlcenter_resolve_profile)、およびアクティブなメモリ負荷を発生させないオンデマンドのツールプローブを提供します。 |
| マルチエージェントランタイム開発者とスウォーム運用者 | 自律型エージェントのループとワークフロー(BACH、USMC、LangChain、AutoGen、CrewAI)をオーケストレーションします。 | エージェント起動時に事前宣言されていないツールへ、ランタイムで動的にアクセスできません。また、バックグラウンドプロセスが残留する危険があります。 | 接続ごとにポリシーで制御するゲートウェイ(controlcenter_invoke)により、エージェントは未ロードのバックエンド MCP ツールを呼び出せます。ゾンビプロセスを残しません。 |
| エンタープライズ SecOps とコンプライアンス担当者 | ローカル開発者環境、機密性の高い認証情報、エージェントの自律性の境界を監査します。 | 信頼できないツール出力を介したプロンプトインジェクション攻撃、スタックトレースからの API キー漏えい、監視されないツール実行が課題です。 | テレメトリやバックグラウンドの外部通信を行わないローカルファーストの管理、リモートゲートウェイ呼び出しに対する明示的な HTTPS 境界、フェイルクローズ方式のポリシー読み込み(data/gateway-policy.json)、範囲を限定した認証情報のサニタイズ、信頼できないデータのラッピング、追記専用の監査ログ(gateway-audit.jsonl)を提供します。 |
| ローカルホームラボの自動化ユーザーと AI パワーユーザー | デスクトップエージェント、ワークフローエンジン(n8n)、ローカル開発ツールを管理します。 | ツールが分断され、エージェントの権限が不透明で、ロックが競合し、アクティブな MCP スタックを一元的に視覚化できません。 | 一元化されたローカル Web ダッシュボード(127.0.0.1:3737)、双方向の i18n(EN/DE)、ロック(LOCK*.txt)、権限(LOCK.permissions.json)、判断を反映する統合ホストレジスターを提供します。 |
検索キーワードと購入意図の高いトピックタグ: mcp-control-plane、model-context-protocol、mcp-gateway、claude-code-profiles、policy-gated-execution、no-telemetry、local-first-ai、secret-scrubber、multi-agent-coordination、capability-bundles、fail-closed-security、mcp-audit-logging、developer-tools。
代替手段との比較マトリクス
| アーキテクチャ上の基準 | ellmos ControlCenter MCP | 静的 MCP 設定(claude_desktop_config.json) | モノリシック MCP メタサーバー | 重量級エージェントフレームワーク(LangChain / CrewAI) | クラウド LLMOps とリモートゲートウェイ |
|---|---|---|---|---|---|
| アーキテクチャと役割 | デュアルコントロールプレーン + エフェメラルゲートウェイ | 静的 JSON ファイル | 単一の巨大な統合プロセス | コードに組み込まれたフレームワーク | リモートでホストされる SaaS / プロキシ |
| トークンとコンテキストの効率性 | オンデマンドの動的ツール呼び出し(controlcenter_invoke) | 低い(すべてのツールを事前にコンテキストへ読み込む必要があります) | 極端に肥大化(数十個のツールがプロンプトに含まれます) | さまざま(ツールは Python プロセスのメモリに読み込まれます) | ネットワークペイロードのオーバーヘッド |
| プロセスのライフサイクル | 呼び出しごとに接続する stdio + オプションの Windows Job Object(子孫プロセスを安全にクリーンアップ) | 常時稼働する永続的なバックグラウンドデーモン | 単一のモノリシックなバックグラウンドプロセス | アプリケーションの実行スレッドに依存 | クラウドでホストされるコンテナ |
| ネットワークへの送信とプライバシー | ローカル優先。テレメトリやバックグラウンドでの外部送信はなく、明示的なリモート HTTPS ゲートウェイの接続先に対応 | ローカル stdio / HTTP | ローカル stdio | クラウド LLM の連携に依存 | 外部送信が多い(ツールのデータがクラウドサーバーに送信されます) |
| ポリシーの適用と堅牢化 | Fail-Closed パターンルール + 再帰的なシークレットのスクラブ | なし(ホストへの直接かつ無制限のアクセス) | まれ / 場当たり的なカスタムフィルタリング | アプリケーションレベルのチェックに一貫性がない | 組織レベルのクラウド IAM |
| 信頼できないデータの分離 | ツール出力への GFM バナーの強制適用 | なし(未加工の文字列を LLM に直接入力) | なし | 手動のプロンプトテンプレート | クラウドプロバイダーのサンドボックス化 |
| ホストガバナンスの認識 | ネイティブなマルチエージェントロック(LOCK*.txt)と権限 | なし | なし | なし | なし |
| プロファイルとスタックの管理 | チェーン、動的バンドル、カタログプローブを拡張 | JSON を手動で編集 | ハードコードされたサーバー配列 | プログラムによる Python 定義 | Web ダッシュボードの設定 |
| 国際化(i18n) | バイリンガルのコア(実行時出力は英語とドイツ語) | 英語のみ | 英語のみ | 英語のみ | 英語のみ |
| セキュリティ SLA とサプライチェーン | 48 時間 SLA、推移的テレメトリなし、ライセンスを監査済み | ベンダーによる | 監査されていないサードパーティ製ツール | 広い攻撃対象領域(pip パッケージ 100 個以上) | サードパーティベンダーへの信頼 |
システムアーキテクチャ
graph TD
A["Clients (Claude Code, Codex, Gemini, stdio Hosts)"] -->|MCP stdio / JSON-RPC| B["ellmos ControlCenter MCP Server"]
subgraph Core ["Control Plane Modules"]
B --> C["Catalog Scanner (catalog.ts)"]
B --> D["Profile Resolver (profiles.ts)"]
B --> E["Bundle Manager (bundles.ts)"]
B --> F["Tool Prober (toolCatalog.ts)"]
B --> G["Policy Auditor (policy.ts)"]
B --> H["Context Packer (contextPack.ts)"]
B --> I["i18n Engine (src/i18n)"]
end
subgraph Storage ["Local System & Environment"]
C -->|Scans| S1["Local Repos (C:\_Local_DEV\repos)"]
D -->|Reads / Resolves| S2["Claude Profiles (~/.claude/profiles)"]
E -->|Loads & Maps| S3["Capability Bundles (data/capability-bundles.json)"]
F -->|stdio Probes| S4["Local & Profile MCP Servers"]
G -->|Audits| S5["Policy Rules & Security Risks"]
end
subgraph UI ["Management Interface"]
B <-->|"HTTP / WebSocket (127.0.0.1:3737)"| J["Local Dashboard (dashboard.ts)"]
end
アーキテクチャの視覚的トポロジー(ASCII 四面投影)
====================================================================================================
ELLMOS CONTROLCENTER MCP — FOUR-VIEW ARCHITECTURAL TOPOLOGY
====================================================================================================
[VIEW 1: CLIENT RUNTIMES, LOCAL DASHBOARD & MCP HOST INTERFACES]
+--------------------------------------------------------------------------------------------------+
| MCP Hosts & Agents: Claude Code | Codex CLI | Antigravity (Gemini) | Custom Stdio Transports |
| | | | | |
| +------------------------------+-------------------------+-----------------------+ |
| | JSON-RPC 2.0 stdio (34 Tools) |
| v |
| +------------------------------------------------------------------------------------------+ |
| | ellmos-controlcenter-mcp (Node.js >= 20.0.0 / TypeScript / ESM / RunAsInvoker) | |
| +------------------------------------------------------------------------------------------+ |
| ^ |
| | HTTP / WebSocket (127.0.0.1:3737 - Loopback Only) |
| +------------------------------+-----------------------------------------------------------+ |
| | Local Web Dashboard: Server Catalog | Profile Switcher | Real-Time Tool Inspector | |
+--------------------------------------------------------------------------------------------------+
[VIEW 2: CONTROLCENTER SOVEREIGN CORE ENGINE & RESOLUTION SUBSYSTEMS]
+--------------------------------------------------------------------------------------------------+
| +-------------------------+ +-------------------------+ +--------------------------------------+ |
| | Catalog & Tool Scanner | | Profile Resolver Engine | | Dynamic Capability Bundles | |
| | - catalog.ts / mcps | | - profiles.ts | | - bundles.ts | |
| | - toolCatalog.ts | | - Inheritance Chains | | - data/capability-bundles.json | |
| | - Concurrency: 1-32 | | - Config Generation | | - 11 Core Functional Bundles | |
| +-------------------------+ +-------------------------+ +--------------------------------------+ |
| | | | |
| v v v |
| +----------------------------------------------------------------------------------------------+ |
| | Context Packer & Dynamic Orchestrator (contextPack.ts / semanticRouting.ts) | |
| | - Manifest-Only Handoffs | Semantic Expert Routing | Multi-Language i18n (src/i18n) | |
| +----------------------------------------------------------------------------------------------+ |
+--------------------------------------------------------------------------------------------------+
[VIEW 3: POLICY-GATED GATEWAY, EPHEMERAL DISPATCH & HARDENED SECRET SCRUBBER]
+--------------------------------------------------------------------------------------------------+
| controlcenter_invoke / controlcenter_list_available_tools (On-Demand Backend Execution) |
| | |
| v |
| +----------------------------------------------------------------------------------------------+ |
| | Gateway Policy Guard (data/gateway-policy.json) [INV-GATE-02] | |
| | - Fail-Closed Evaluation | Allowed Patterns | Server/Tool Whitelisting | |
| +----------------------------------------------------------------------------------------------+ |
| | (Allowed) | (Denied / Invalid) |
| v v |
| +---------------------------------------+ +------------------------------------+ |
| | Ephemeral Connect-Per-Call Lifecycle | | Structured Refusal Dispatcher | |
| | - Stdio Subprocess (Terminates post) | | - Omit argument values in audit | |
| | - Remote HTTPS (Explicit, No-Redirect)| | - Fail-closed error contract | |
| +---------------------------------------+ +------------------------------------+ |
| | | |
| v v |
| +----------------------------------------------------------------------------------------------+ |
| | Hardening, Budgets & Sanitization Pipeline [INV-SCRUB-04] | |
| | - 256 KiB Request / 1 MiB Response Budgets | Recursive Key Redaction & Credential Scrubbing | |
| | - Untrusted Data Marking | Append-Only Audit Trail (gateway-audit.jsonl) | |
| +----------------------------------------------------------------------------------------------+ |
+--------------------------------------------------------------------------------------------------+
[VIEW 4: GOVERNANCE MIRROR, MULTI-AGENT LOCK BOUNDARIES & SYSTEM PERIMETER]
+--------------------------------------------------------------------------------------------------+
| Host Registers & Local Safety Governance (Read-Only Mirroring / Zero-Mutation Guarantee) |
| |
| [INV-LOCK-06] Canonical Multi-Agent Locks [INV-PERM-07] Hierarchical Permissions |
| - controlcenter_list_locks - controlcenter_evaluate_permission |
| - controlcenter_check_lock (LOCK*.txt / until) - Recursive LOCK.permissions.json Evaluation |
| |
| [INV-GOV-08] Host Governance Federation [INV-LOCAL-01] Local-First Storage |
| - Decisions: controlcenter_list_decisions - Inventory Mirror: inventory.db (Read-Only) |
| - Policies & Plans: controlcenter_list_governance- Resources: controlcenter_list_resources |
| |
| [INV-PRIV-05] Non-Elevation: Unprivileged User Space | [INV-SLA-10] 48h Security Response SLA |
+--------------------------------------------------------------------------------------------------+
====================================================================================================
コントロールプレーンとゲートウェイのライフサイクル
sequenceDiagram
autonumber
actor Agent as MCP Client (Claude / Codex / Gemini)
participant CC as ControlCenter MCP Server
participant Res as Profile & Capability Resolver
participant Gate as Gateway Policy Guard
participant Backend as Backend MCP Server (Unloaded)
participant Scrub as Hardening & Secret Scrubber
participant Audit as Audit Logger (JSONL)
Note over Agent,CC: 1. Administration & Profile Discovery
Agent->>CC: controlcenter_suggest_profile / resolve_profile
CC->>Res: Inspect ~/.claude/profiles & extends chains
Res-->>CC: Resolved MCP Configuration & Bundles
CC-->>Agent: Suggested Profile & --mcp-config flags
Note over Agent,CC: 2. Policy-Gated Gateway Execution
Agent->>CC: controlcenter_invoke(server, tool, args)
CC->>Gate: Evaluate data/gateway-policy.json
alt Policy Denied or Missing
Gate-->>CC: Policy Refusal (Fail-Closed)
CC->>Audit: Log refusal (names only, 0 values)
CC-->>Agent: Error: Tool / Server denied by policy
else Policy Allowed
Gate-->>CC: Dispatch Approved
CC->>Backend: Connect-per-call (stdio / Streamable HTTP)
Backend-->>CC: Raw Tool Output / Response
CC->>Backend: Terminate process / Close transport
CC->>Scrub: Recursive Secret Redaction & Finite Budgets
Scrub-->>CC: Sanitized Payload & Truncation Status
CC->>Audit: Append structured audit event (gateway-audit.jsonl)
CC-->>Agent: Safe Tool Result wrapped with Data Banners
end
ガバナンスとランタイムの不変条件
ControlCenter は、環境を問わずローカルファーストの管理、明示的なアウトバウンド境界、フェイルクローズのポリシー読み込み、マルチエージェント連携のレジリエンスを保証するため、10 個のアーキテクチャおよびランタイムの不変条件を適用します。
| ID | 不変条件 | 説明 | 適用メカニズム |
|---|---|---|---|
INV-LOCAL-01 | ローカルファーストと明示的な外部通信 | 検出、プロファイルの解決、カタログのインデックス作成、ダッシュボードはローカルで実行され、テレメトリーやバックグラウンドの外部通信は発生しません。明示的なゲートウェイ呼び出しでは、リモート HTTPS バックエンドに接続できます。 | ダッシュボードはループバック(127.0.0.1:3737)にバインドされます。リモート HTTP とリダイレクトは拒否され、オプションのホスト許可リストで HTTPS の接続先をさらに制限できます。 |
INV-GATE-02 | フェイルクローズのゲートウェイポリシーガード | controlcenter_invoke によるリモートまたは未読み込みのツール呼び出しには、data/gateway-policy.json でのパターン認可が厳格に必要です。 | ポリシーファイルが存在しない、読み取れない、または無効な場合、実行は直ちに拒否されます(フェイルクローズ)。 |
INV-SUB-03 | 一時的な子プロセスの境界 | プローブおよび呼び出し対象の MCP サーバーのバックエンド stdio プロセスは、呼び出しごとにオンデマンドで起動され、finally ブロック内ですぐに終了します。 | connect-per-call アーキテクチャにより、ゾンビプロセスがバックグラウンドに残るのを防ぎます。 |
INV-SCRUB-04 | 結果の範囲限定の秘匿化と有限の予算 | 結果を再帰的に走査します。限定的な認証情報パターンはすべての箇所で秘匿化し、キーに基づく消去は構造化メタデータにのみ適用するため、要求された内容が黙って書き換えられることはありません。リクエストサイズには上限があり、引数の値は監査ログから除外されます。 | 再帰的な限定パターンの秘匿化、構造化メタデータのキー消去、深さおよびコンテンツブロックの上限、デフォルトでリクエストは 256 KB、レスポンスは 1 MB。 |
INV-PRIV-05 | 権限昇格なし/RunAsInvoker | サーバーは、非特権のユーザー空間でのみ動作します。root/admin 権限への昇格を求めることはありません。 | Windows、macOS、Linux で、root または UAC による昇格なしで動作します。 |
INV-LOCK-06 | 正規のマルチエージェントロックの認識 | システム全体の LOCK*.txt、LOCK.user.*、LOCK.until.* トークンをフェイルクローズで尊重します。 | ホストの Python ロックユーティリティを使用してロックツリーを検査します。未設定の場合は unknown を返します。 |
INV-PERM-07 | 最寄りの権限レジスターのイントロスペクション | ディレクトリツリー内で最も近い LOCK.permissions.json を評価します(deny > ask > allow > default)。 | 合成権限を付与したり状態を変更したりすることなく、階層的に解決します。 |
INV-GOV-08 | ホストガバナンスの読み取り専用フェデレーション | 保留中の決定、ポリシー、戦略計画、BYUM メタデータを読み取り専用でミラーリングします。 | 厳格なスカラー投影を行います。項目を採用、実行、変更、または非表示にすることはありません。 |
INV-SYNC-09 | クラウド同期の競合対策 | マルチホスト環境での競合コピーや、無関係なロックファイルからリポジトリを保護します。 | *.sync-conflict-*、*-CONFLIT-*、LOCK.* を対象とする包括的な .gitignore を使用します。 |
INV-SLA-10 | 48 時間以内の応答と 5 日以内のトリアージ SLA | 脆弱性の報告には、メンテナーが速やかに応答し、トリアージに取り組みます。 | 直接のメンテナーおよび包括的なセキュリティ連絡先とともに SECURITY.md に記載されています。 |
ステータス
- フェーズ: Alpha
- バージョン:
0.7.4 - リポジトリ:
ellmos-ai/ellmos-controlcenter-mcp - npm:
ellmos-controlcenter-mcp - CI チェック:
npm run testおよびnpm run build - 目標: ローカル MCP スタックを可視化、検査可能にし、再現可能な設定を可能にします
- 重点分野: カタログ、プロファイル概要、プロファイルの推奨、バンドルの推奨、プロファイル対応のツールリストプローブ、ツールバンドルの割り当て、i18n、初期段階の監査、読み取り専用のホストガバナンスメタデータ
ツール
| ツール | 目的 |
|---|---|
controlcenter_status | スタック、プロファイル、検出されたサーバーの状態を表示します |
controlcenter_actual_self_receipt | ネイティブの自己 list_tools プローブを実行し、明示的に設定されている場合は有効期間の短い署名付きランタイムレシートを出力します |
controlcenter_get_language | 現在の ControlCenter 出力言語を表示します |
controlcenter_set_language | 実行中のこのサーバーインスタンスの ControlCenter 出力言語を設定します |
controlcenter_list_local_servers | MCP ルート以下のローカル MCP リポジトリをスキャンし、mcps.catalog.v1.json の種別と状態の所有権情報を追加します |
controlcenter_describe_mcp | mcps.catalog.v1.json の 1 つの MCP サーバーについて、種別、名前空間、状態の所有権、ラッピング、構成を説明します |
controlcenter_list_stacks | stacks.catalog.json から登録済みスタックを読み込み、その ellmos.stack.v2 マニフェストを検証します |
controlcenter_describe_stack | 登録済みスタック 1 つの型付きコンポーネント、ロール、ポリシー、検証警告を説明します |
controlcenter_context_pack | 登録済みスタック向けに、short、execution、full の詳細度で、範囲を限定したマニフェストのみの引き継ぎ情報を作成します |
controlcenter_list_tools | ローカルまたはプロファイルで定義された MCP サーバーを起動し、実際の list_tools 出力を読み込みます |
controlcenter_find_capability | 選択も実行もせず、ハッシュ整合性のある System Explorer 解決結果から、型付きのネイティブバインディングの主張をランク付けします |
controlcenter_tool_overview | 宣言軸とランタイム状態軸を分けたまま、解決結果に紐づいたコンポーネントの主張を表示します |
controlcenter_assign_tool_bundles | プローブ済みの MCP ツールを機能バンドルに割り当てます |
controlcenter_list_bundles | ローカルサーバーを機能バンドルごとに分類します |
controlcenter_suggest_bundles | タスクに適したバンドルを推奨します |
controlcenter_list_profiles | MCP プロファイルをプロファイルルートから一覧表示します(既定値は ~/.claude/profiles。ELLMOS_PROFILE_ROOT で変更できます) |
controlcenter_suggest_profile | タスクに適したプロファイルを推奨します |
controlcenter_resolve_profile | extends チェーンを含めてプロファイルを解決します |
controlcenter_switch_profile | 生成された --mcp-config ファイルと設定可能な起動コマンドを準備します |
controlcenter_audit_profile | プロファイルに対して初期ポリシーチェックを実行します |
controlcenter_build_catalog | ローカル MCP サーバーの JSON カタログを作成します。ツールプローブを含めることもできます |
controlcenter_list_skills | デプロイ済みスキル(既定値は ~/.claude/skills。Claude Code の規約に準拠し、ELLMOS_SKILLS_ROOT で変更できます)とスキルソースライブラリを調査します |
controlcenter_find_skill | タスクまたは意図に関するキーワードを、スキャン済みのスキルカタログと照合し、ランク付けした候補を返します — スキル検索のクエリを参照してください |
controlcenter_resolve_semantic_route | LLM/ユーザーが選択したロール、エキスパート、ペルソナをプロバイダー中立のマップに照らして検証し、エンドポイントをライブのスキルインベントリに照らして確認します |
controlcenter_list_plugins | インストール済みプラグイン(既定値は ~/.claude/plugins。Claude Code の規約に準拠し、ELLMOS_PLUGINS_ROOT で変更できます)とローカルの ellmos モジュールを調査します |
controlcenter_list_locks | 設定済みルート全体でアクティブなプロジェクトロック LOCK*.txt を一覧表示します — ホストレジスターを参照してください |
controlcenter_check_lock | 親ディレクトリから継承されるロックも含め、パスがロックされているか確認します |
controlcenter_evaluate_permission | 最も近い LOCK.permissions レジスターが、指定パスでエージェントに何を許可しているかを報告します |
controlcenter_list_decisions | 保留中のユーザー判断を識別子、日付、タイトル、ステータス別に一覧表示します |
controlcenter_list_governance | 許可リストに登録された判断、ポリシー、戦略計画、BYUM のメタデータを読み取り専用で連携します。各ソースを個別に報告し、候補を採用または実行することはありません |
controlcenter_list_resources | ホストのリソースインベントリ(システムおよび/またはインストール済みソフトウェア)の行を一覧表示します — 読み取り専用のミラーであり、レジスターの権限はここではなく ControlRoom プログラムにあります |
controlcenter_describe_resource | 同じ読み取り専用ミラーから、インベントリ ID で指定したリソース 1 つの行の詳細をすべて取得します |
controlcenter_list_available_tools | このホストが読み込んでいない MCP サーバーのツールを、読み込まずに一覧表示します — ゲートウェイを参照してください |
controlcenter_invoke | このホストが読み込んでいないサーバー上でツールを 1 つ実行し、ポリシーによる制御と監査のもとで結果を返します |
Gateway:ホストが読み込んでいないサーバーへのアクセス
11 個の MCP サーバーを読み込むセッションでは、それらすべてのツールのコストが一度に発生します。ゲートウェイを使えば、読み込むプロファイルを小さく保てます。たとえば FileCommander、ControlCenter、open-compute だけを読み込み、残りのサーバーには必要に応じてアクセスできます。
// what is out there, without loading it
{ "name": "controlcenter_list_available_tools", "arguments": { "profile": "full" } }
// run one of those tools; no prior listing required when the name is known
{ "name": "controlcenter_invoke", "arguments": {
"server": "ellmos-clatcher-mcp", "tool": "fix_umlauts",
"args": { "path": "C:/tmp/notes.md" } } }
対象範囲。 アドレス指定できるのは、設定済みの MCP ルート(ELLMOS_MCP_ROOT)または profile で指定したプロファイルで宣言されたサーバーのみです。このサーバー群がゲートウェイの基本的な境界となり、任意のコマンドを指定する方法はありません。
ライフサイクル。 接続は呼び出し時に開かれ、その後閉じられます。Windows では、直接の stdio 子プロセスだけでなく、その子孫も対象にできるよう、ローカルの Job-Object スーパーバイザーを ELLMOS_PROCESS_SUPERVISOR に設定してください。コールド状態の stdio サーバーでは、呼び出しごとにおよそ 200~500 ms のコストがかかります。その代わり、直接の子プロセスだけを検証せずに強制終了するのではなく、範囲を限定したクリーンアップを行えます。
失敗の種類を区別します。 失敗には 4 つの異なる種類があり、それぞれ意味が異なります。
| 結果 | 意味 |
|---|---|
unknown-server | その名前はアドレス指定可能なサーバー群にありません。既知の名前が返されます。 |
unreachable | サーバーは存在しますが、問い合わせできませんでした。「何も返さなかった」という意味ではありません。 |
unknown-tool | サーバーにそのツールはありません。利用可能なツール名が返されるため、誤った指定を 1 回で修正できます。 |
target-error | 呼び出しは到達し、ターゲットがツールエラーを報告しました。これはバックエンドの結果であり、ControlCenter の障害ではありません。 |
複数のサーバーを対象とする一覧表示では、一部のサーバーに問い合わせできなかった場合、冒頭にその旨が示されるため、不完全な結果を完全な結果と誤認することはありません。
ポリシー。 data/gateway-policy.json(ELLMOS_GATEWAY_POLICY で上書きできます):
{
"schema": "ellmos.controlcenter.gateway-policy.v1",
"mode": "open",
"deny": [{ "server": "*", "tool": "*_delete_*", "reason": "Deletion stays manual." }],
"allow": []
}
mode: "open" では、アドレス指定可能なサーバーのすべてのツールが許可されます。mode: "allowlist" では、一致する allow ルールが必要です。常に deny が優先され、両方のフィールドで * をワイルドカードとして使用できます。ポリシーファイルの形式が不正な場合やスキーマに合致しない場合、すべての呼び出しを拒否し、すべてを許可する設定にはフォールバックしません。
監査。 拒否された呼び出しを含むすべての呼び出しが、~/.ellmos/controlcenter/gateway-audit.jsonl に JSON 形式の 1 行として追記されます(ELLMOS_GATEWAY_AUDIT_LOG で変更できます。無効にするには off を設定してください)。記録されるのは、引数の名前と個数(引数の値は記録しません)、マスクされた接続コマンドまたは URL、結果、所要時間、コンテンツブロック数であり、結果の内容は記録されません。ツールの出力には書き込みが成功したかどうかが報告されるため、監査の失敗を確認できます。書き込み失敗時に呼び出しを拒否するには、ELLMOS_GATEWAY_AUDIT_REQUIRED=1 を設定してください。
堅牢化。 転送されるペイロードは外部からのデータであるため、呼び出し処理ではあらゆる側面に上限を設けています。
| 制御 | 動作 |
|---|---|
| 再帰的な秘匿化 | 限定的な認証情報の形式(sk-、ghp_、AKIA、JWT、…)を、すべての場所、すべてのネストレベルで置き換えます。シークレット名のキー(auth、token、apiKey、…)は、structuredContent 内のみで値全体を消去します。呼び出し元が読み取ろうとしたペイロードを含むコンテンツブロック内では消去しません。変更された値の数が結果に報告されます。redactResults: false で無効にできますが、これは意図的に保護を弱める設定です。 |
| リクエストの上限 | 上限を超える引数は拒否し、短縮はしません。引数を切り詰めると、リクエストが気付かないうちに変わってしまうためです。ELLMOS_GATEWAY_MAX_REQUEST_BYTES のデフォルトは 256 KiB です。 |
| レスポンスの上限 | 上限を超える応答は切り詰めてフラグを付けるため、受信できた部分は引き続き利用できます。ELLMOS_GATEWAY_MAX_RESPONSE_BYTES のデフォルトは 1 MiB です。 |
| ネストとブロック | ELLMOS_GATEWAY_MAX_DEPTH(32)と ELLMOS_GATEWAY_MAX_CONTENT_BLOCKS(200)を設定できます。循環参照に対応しているため、自己参照するペイロードは無限ループせずに打ち切られます。 |
| 同時実行 | ELLMOS_GATEWAY_MAX_CONCURRENT(4)を設定できます。これがないと、並列バッチごとにバックエンドプロセスが 1 つ起動します。スロットを確保できなかった呼び出しは拒否され、いつまでもキューに残ることはありません。 |
| トランスポート | HTTPS のみを許可します。プレーン HTTP はループバック上でのみ許可します。リダイレクトは拒否します。allowedRemoteHosts(*. サブドメインに対応)を使って、さらに制限できます。 |
| 信頼できないデータの明示 | 転送されるコンテンツを、指示ではなくデータであることを示すバナーで囲みます。これは、ゲートウェイがサードパーティの出力をエージェントのコンテキストに渡すためです。 |
含まれない機能。 接続プーリング、ストリーミングと進捗情報のパススルー、サンプリング、エリシテーション、バックエンドのリソースとプロンプト、ツールのアノテーションから導出されるリスククラスのポリシー。セッションを保持せず、機能ハンドルも発行しないため、不透明なセッション依存の機能にはまだ対応していません。現在存在するのは MCP アダプターのみです。モジュール、スタック、フォルダーのアダプターは今後の課題です。
カタログの検出
ControlCenter は個々のパスをハードコーディングする代わりに、手作業で管理される 3 つのカタログを読み込みます。各ルートは設定可能で、各カタログは任意です。
| カタログ | スキーマ | ルート(環境変数による上書き) | 使用元 |
|---|---|---|---|
modules.catalog.json | ellmos.modules-catalog.v1 | .AI/.MODULES(ELLMOS_MODULES_ROOT) | controlcenter_list_plugins |
stacks.catalog.json | ellmos.stacks.catalog.v1 | .AI/.STACKS(ELLMOS_STACKS_ROOT) | controlcenter_list_stacks、controlcenter_describe_stack、controlcenter_context_pack |
mcps.catalog.v1.json | ellmos.mcps.v1 | .AI/.MCP(ELLMOS_MCP_CATALOG) | controlcenter_list_local_servers、controlcenter_describe_mcp、controlcenter_status |
MCP カタログには、ディレクトリのスキャンでは確認できない情報が含まれます。mcp_kind(tool、adapter、stack、control-plane)、サーバーが永続状態を保持するかどうか、名前空間ごとにどのコンポーネントがその状態を所有するか、任意の宣言済み機能タグなどです。タグブロックのバージョンは capability_tags: {"schema":"ellmos.capability-tags.v1","tags":["catalog","read-only"]} です。タグは小文字に正規化され、ソートされたうえで、メタデータとしてのみ扱われます。重複、不適切な型、または不正な形式のタグがある場合、データを黙って破棄するのではなく、カタログは明示的に invalid になります。実際にインストールされているものの情報源は引き続きディレクトリのスキャンです。そのため、両方向の情報が報告されます。スキャンされたサーバーにカタログエントリがない場合、カタログのフィールドは空のままになります。ディレクトリがないカタログエントリは破棄されず、別途一覧表示されます。サーバーがディレクトリ名とは異なる名前で公開されている場合があるため、エントリはまずカタログの id で照合し、次に npm パッケージ名で照合されます。
カタログが見つからない、読み取れない、別のスキーマである、または構造が不正である場合でも、ツール呼び出しが失敗することはありません。拡張フィールドは空になり、理由が出力に記載されます。そのため、カタログが存在しない場合と、サーバーが実際に状態を保持しない場合を区別できます。MCP ルートを読み取れない場合も、空の結果としてではなく、読み取り不可として報告されます。
ホストのレジスター:ロック、権限、判断、ガバナンス、リソース
上記の7つのツールは、このサーバーのほかの機能とは異なる問いに答えます。つまり、*「何を設定できますか?」ではなく、「今、このマシンには何が適用されていますか?」*です。これらのツールは、ホスト上の6つのレジスター、すなわちプロジェクトロック、エージェントに依存しない権限レジスター、保留中の判断リスト、ポリシーレジストリ、戦略計画のインデックス、そしてシステムとインストール済みソフトウェアのリソースインベントリを読み取ります。
controlcenter_list_governance は、生成された判断インデックス、既存の
ellmos.plans-register/1 戦略計画インデックス、明示的に設定された
ellmos.policy-registry.v1 ファイルを統合します。ポリシーレジストリの検証には、正規の
PolicyRegistry.load() API のみを使用します。各ソースは available、unconfigured、unreadable、invalid のいずれかを報告します。部分的なデータが完全であると誤認されることはなく、有効なレジストリに BYUM 候補がない場合は、正確にゼロと報告します。計画のパス、メモ、ホストごとのバリアントは _PLANS に保持されます。BYUM の行は、採用や実行の権限を持たない、保留中の参考ポインターとして保持されます。
controlcenter_list_resources と controlcenter_describe_resource は、.SYNC/_inventory/inventory.db の読み取り専用ミラーです。レジスターの権限は、このサーバーではなく ControlRoom プログラム独自の resources.inventory リゾルバーロールにあります。このミラーは同期の間に古くなる可能性があり、その点を偽ることはありません。
これらのツールは読み取り専用です。ロックの作成、更新、解除は行わず、判断への回答も行いません。特に LOCK.user.* ロックを解除できるのはユーザーだけであり、このサーバーはそれらに一切触れません。
フェイルクローズで動作します。 レジスターが未設定の場合、パスを読み取れない場合、インタープリターが見つからない場合、またはチェックでエラーが発生した場合、判定は unknown となり、安全に続行できるかの答えは no です。「問題なし」と安心させることはありません。安心させる方向に推測するロックチェッカーは、存在しないよりも危険です。
継承を考慮します。 親ディレクトリの LOCK.txt は、その配下すべてをロックします。そのため、controlcenter_check_lock は祖先ディレクトリ全体をたどり、同じフォルダーにあるファイルだけでなく、有効なロックとその距離を報告します。
ロックのセマンティクスはここで再実装しません。 小さなブリッジスクリプトが、期限切れ、保護対象のロックタイプ、スコープの解析、権限の優先順位 deny > ask > allow > default といったすべてのルールを、ホストの正規 Python モジュールに委譲します。2つ目の実装を用意すると、仕様が次に変更された際に食い違いが生じます。このサーバーが Python を呼び出すのはここだけです。インタープリターが使用できない場合、前提条件が満たされないときと同様に、ツールはフェイルクローズで動作します。
設定
これらのレジスターは、設定されていないマシンには存在しないため、設定するまでツールは機能しません。
| 変数 | 目的 |
|---|---|
ELLMOS_LOCK_SCRIPTS | 正規の lock_utils.py、permissions.py、lock_scan.py が格納されているディレクトリです。3つのロックおよび権限ツールで必須です。 |
ELLMOS_LOCK_ROOTS | lock_roots.json への任意のパスです。デフォルトでは、ロックスクリプトと同じ場所にあるファイルを使用します。 |
ELLMOS_DECISIONS_ROOT | 判断チェーンと、その生成済みインデックスが格納されているディレクトリです。controlcenter_list_decisions で必須です。 |
ELLMOS_INVENTORY_DB | リソースインベントリの SQLite ファイル(.SYNC/_inventory/inventory.db)へのパスです。controlcenter_list_resources と controlcenter_describe_resource で必須です。 |
ELLMOS_POLICY_REGISTRY_PATH | ellmos.policy-registry.v1 レジストリへの明示的なパスです。controlcenter_list_governance のポリシー側で必須です。 |
ELLMOS_POLICY_REGISTRY_SRC | 正規の policy_registry Python パッケージを含む、任意のソースルートです。 |
ELLMOS_PLANS_REGISTER | ellmos.plans-register/1 スキーマの _control-center/_PLANS/plans-register.json への明示的なパスです。controlcenter_list_governance の計画側で必須です。 |
ELLMOS_PYTHON | ブリッジの実行に使用するインタープリターです。デフォルトでは python を使用し、使用できない場合は python3 にフォールバックします。 |
これらのツールが意図的に返さない情報
controlcenter_list_decisions が返すのは、識別子、日付、タイトル、ステータス、対象範囲です。個人的な事情を含む可能性のある質問文、選択肢、推奨事項は返しません。それらはレジスターで直接確認してください。
controlcenter_list_governance では、固定のフィールド許可リストを使用します。ソース URI やプランのパス、ホストのバリエーション、プランのメモ、質問、選択肢、推奨事項、根拠、プロンプト、全文、理由、セキュアコンテンツ/アバターコンテンツ、アクションペイロード、実行ペイロード、レシートは返しません。また、レジストリポインターをたどることもありません。
全件スキャンにかかるコスト
controlcenter_list_locks は、設定されているすべてのルートを調べます。クラウド同期ストレージでは数分かかるため、スキャンは壁時計時間の上限内で実行され、その上限はルートごとに確認されます。上限に達した場合、結果には不完全と示され、未確認のルートが列挙されます。不完全なスキャンでは、未確認のルートについて何も証明できません。単一のパスを確認する場合は、controlcenter_check_lock が適切なツールで、数ミリ秒で回答します。
スキル検索のクエリ
controlcenter_find_skill は、名前、エイリアス、タグ、カテゴリ、説明を純粋に字句的に照合します。現時点では意味検索/埋め込み検索には対応していないため、文章全体ではなく、キーワードや技術用語でクエリしてください。 自然言語の文章には不要な語が含まれ、それらが正しい結果より上位に表示されることがあります。
解決情報に基づく機能検索
controlcenter_find_capability と controlcenter_tool_overview は、明示的な system-explorer.resolution.v1 ファイルを使用します。内容のハッシュに整合性がなく、コンポーネントレジストリのソース検証の主張が含まれていない場合は、フェイルクローズで失敗します。この主張は外部の来歴を示すものではありません。System Explorer が別途信頼できるレシートを出力するまでは、出力フィールドに provenance_verified: false および identity_verified: false と明示されます。返されるのは、安定していて型に整合するネイティブバインディングの主張だけです。結果では controlcenter-lexical-candidate メソッドと controlcenter.lexical.v1 スコアドメインが使われます。プロバイダーの選択、本人性や可用性の証明、実行の許可は行いません。意味的なルーティングは、別個の助言的な生成処理のままです。
| クエリ | 最上位の結果 | |
|---|---|---|
| ❌ | My program crashes when saving and I don't know why | mcp-config-sync(スコア 6 — when、know、why が一致) |
| ✅ | debug bug test failure | bugfix-protocol(スコア 5 — bug、debug が一致) |
ここから、次の 2 点がわかります。
- スコアを比較できるのは、同一クエリ内に限られます。 上の例では、別のクエリにおける誤った結果のほうが、正しい結果よりも高いスコアでした。数値を信頼度の指標として扱わないでください。
- 呼び出し元が LLM の場合は、まずユーザーの言い回しをキーワードに変換してください。 この手順は低コストで、最も弱いケースを最も強いケースに変えられます。
意味検索への対応は TODO.md で追跡されています。それまでは、キーワードクエリが意図された使い方であり、回避策ではありません。
意味的な役割とスキルのルーティング
controlcenter_resolve_semantic_route は、意味的な役割の選択を呼び出し元の LLM またはユーザーに委ね、選択されたコーディネーター/エキスパート/ペルソナのエッジを semantic-persona-routing.map.v1 ファイルに照らして検証し、明示的なスキルエンドポイントを現在のスキルインベントリと照合します。デフォルトのマップは ~/.ellmos/controlcenter/routing/semantic-persona-routing-map.v1.json です。ELLMOS_SEMANTIC_ROUTING_MAP またはツール入力で上書きできます。
字句候補には、引き続き個別のラベルが付けられます。ルーティングマップの候補が検証済みエンドポイントになるのは、呼び出し元がそれを 2 つ目の意味的/ソースシグナルとして明示的に確認し、かつそのスキルがデプロイ済みのライブインベントリに一意に存在する場合に限られます。ネストされたマップレコード、安定 ID、列挙値、参照、一意性は、フェイルクローズで検証されます。このルートはツールの使用権限や実行権限を付与しません。
ダッシュボード
プロジェクトをビルドした後、次のコマンドでローカルダッシュボードを起動します。
npm run dashboard
デフォルトのアドレス:
http://127.0.0.1:3737
ダッシュボードでは現在、ローカルサーバーとプロファイルの表示、UI 言語の切り替え、プロファイルごとのサーバーの有効化または無効化、プロファイル監査の要約、選択したプロファイルまたはローカルリポジトリの MCP ツールのスキャン、ツールとバンドルの割り当ての表示、生成した --mcp-config ファイルの書き込みができます。書き込み操作では確認を求め、既存のファイルを上書きする前にバックアップを作成します。
検出とレジストリメタデータ
ControlCenter には、クローラーやカタログツール向けの MCP レジストリメタデータが付属しています。
server.jsonは、パッケージ名、リポジトリ、stdio トランスポートを含む、公式の MCP サーバーメタデータ形式を使用します。llms.txtは、LLM クローラー向けに、プロジェクトの概要、正式リンク、ツールの概要を簡潔にまとめています。package.jsonには両方のファイルが含まれており、レジストリインデクサーは GitHub または npm から同じメタデータを読み取れます。
公開 npm パッケージが正式なインストール先です。GitHub リポジトリは、開発、課題、リリースノートの正式な参照先です。
検索と検出のコンテキスト
リンクや検索には、正式名称の ellmos ControlCenter MCP またはパッケージ名 ellmos-controlcenter-mcp を使用してください。「control center」という短い語句では対象が広すぎ、「ellmos」では Elmo/ELMO のモーション制御、人事、音声生成の検索結果と混同されることがあります。
最適な検索語句:
ellmos ControlCenter MCPellmos-controlcenter-mcpMCP control plane for local serversMCP profile management dashboardlocal MCP stack discovery TypeScriptClaude Codex Gemini MCP profile switcherMCP policy audit profile management
インストール
オプション 1:npm からインストール
npm install -g ellmos-controlcenter-mcp
MCP サーバーを起動します。
ellmos-controlcenter
ダッシュボードを起動します。
ellmos-controlcenter-dashboard
オプション 2:ソースからインストール
git clone https://github.com/ellmos-ai/ellmos-controlcenter-mcp.git
cd ellmos-controlcenter-mcp
npm install
npm run build
ソースからサーバーを実行します。
node dist/index.js
ソースからダッシュボードを実行します。
node dist/dashboard.js
設定
MCP クライアントの設定
ControlCenter は、MCP 対応のあらゆるクライアントで動作します。以下の JSON スニペットでは、Claude Code、Claude Desktop、Codex、Cursor などの MCP ホストがサポートする標準の mcpServers 形式を使用しています。
npm からグローバルにインストールした場合:
{
"mcpServers": {
"controlcenter": {
"command": "ellmos-controlcenter"
}
}
}
ソースからインストールした場合:
{
"mcpServers": {
"controlcenter": {
"command": "node",
"args": [
"/absolute/path/to/ellmos-controlcenter-mcp/dist/index.js"
]
}
}
}
任意の環境変数:
ELLMOS_MCP_ROOTは、デフォルトの MCP リポジトリルートを上書きしますELLMOS_STACKS_ROOTは、スタックカタログのルートを上書きします(デフォルト:ローカルの.AI/.STACKS)ELLMOS_MCP_CATALOGは、MCP カタログファイルを上書きします(デフォルト:MCP ルート内のmcps.catalog.v1.json)ELLMOS_MODULES_ROOTは、モジュールカタログのルートを上書きします(デフォルト:ローカルの.AI/.MODULES)ELLMOS_PROFILE_ROOTは、プロファイルディレクトリを上書きします(デフォルト:~/.claude/profiles)ELLMOS_SKILLS_ROOTは、デプロイ済みスキルのディレクトリを上書きします(デフォルト:~/.claude/skills)ELLMOS_PLUGINS_ROOTは、プラグインディレクトリを上書きします(デフォルト:~/.claude/plugins)ELLMOS_BUNDLE_CONFIGは、機能バンドル定義ファイルを上書きしますELLMOS_POLICY_CONFIGは、プロファイル監査ポリシールールファイルを上書きしますELLMOS_LAUNCH_TEMPLATEは、生成されるプロファイル切り替え起動コマンドを上書きします。生成された MCP 設定ファイルのパスには、プレースホルダーとして{config}を使用してください。ELLMOS_CONTROLCENTER_ACTUAL_SELF_CONFIGは、ホストローカルのフェイルクローズ型 actual-self プロデューサー設定を指定します。設定されていない場合、controlcenter_actual_self_receiptはレシートを出力しません。CONTROLCENTER_LANGUAGEまたはELLMOS_CONTROLCENTER_LANGUAGEは、初期出力言語を設定します
署名付き actual-self レシート
controlcenter_actual_self_receipt は、System Explorer 用の任意の証拠生成機能です。このパッケージの固定された子インスタンスを起動し、その MCP の list_tools サーフェスのみを読み取り、秘匿化したツール概要のハッシュを計算して、Ed25519 署名付きの ellmos.actual-self-component-receipt.v1 を返します。報告されたツールを実行することはなく、署名キー、設定パス、環境、生の説明、ローカルパスを返すこともありません。
ホストローカルの JSON 設定では ellmos.controlcenter.actual-self-producer.v1 を使用し、schema に加えて enabled、scope、registry_binding、signer_id、private_key_path、private_key_sha256、ttl_seconds のみを含める必要があります。TTL は最大 300 秒です。設定されたホストはネイティブのホスト名と一致し、秘密鍵は小文字の SHA-256 ピンと一致する必要があります。トラストストアのプロビジョニングとルートの有効化は、意図的に外部操作としています。レシートを生成しても、信頼済みにはなりません。
デフォルトでは、MCP リポジトリのルートは OneDrive/ONEDRIVE 環境変数から導出され、設定されていない場合は ~/OneDrive/.TOPICS/.AI/.MCP にフォールバックします。
国際化
ControlCenter は言語コード de、en、es、zh、ja、ru に対応しています。現在、6 つすべての言語で、MCP ツールの出力、ダッシュボードのラベル、ポリシーのヒント、プロファイルの推奨事項、ツールの説明に対応したテキストセットが保守されています。
controlcenter_get_language を使って現在の言語を確認し、controlcenter_set_language を使って MCP ツールの出力言語を実行時に切り替えます。ダッシュボードにも言語セレクターがあり、/?lang=en 形式のリンクを受け付けます。カスタム JSON 設定ファイルから読み込まれたバンドルのタイトルと説明は、記述されたとおりに表示されます。
プロファイルの切り替え
controlcenter_switch_profile は実行中のセッションを変更しません。解決済みの MCP 設定を作成し、起動コマンドを返します。デフォルトは引き続き Claude Code と互換性があります。
claude --mcp-config ~/.claude/profiles/_generated/software.mcp.json
write: false の場合、切り替えはプレビューとして実行されます。write: true の場合、ControlCenter は生成されたファイルを書き込みます。生成された mcpServers JSON は、MCP 対応のあらゆるクライアントで読み取れます。launchTemplate 入力または ELLMOS_LAUNCH_TEMPLATE を使うと、たとえば codex mcp run --config {config} のような Codex、Gemini、またはカスタムランチャーのコマンドを返せます。
計画中の任意の再起動/再接続ワークフローも、この境界を維持します。プロファイルの変更を書き込んだ後、ControlCenter は Claude Code 用の再起動ヒントとコピー可能な起動コマンドを表示する必要があります。一方、自動再接続は、クライアント固有の明示的なアダプターを介する場合に限り、未対応の場合は安全側に停止する必要があります。
プロファイルの解決では、単一継承("extends": "base")、多重継承("extends": ["base", "shared"])、および "remove"、"disabled"、"disabledServers" による継承サーバーの削除に対応しています。プロファイルの欠落、無効な JSON、無効なプロファイル名、継承の循環については、該当するファイルパスまたはチェーンを含む明示的なプロファイルエラーが返されます。
ケイパビリティバンドル
ControlCenter は data/capability-bundles.json からケイパビリティバンドルの定義を読み込みます。デフォルトのファイルでは、ローカルサーバーが次のバンドルに分類されています。
core-localsoftwarefilesystemautomationcontrol-plane
カスタムバンドルファイルは、ELLMOS_BUNDLE_CONFIG またはバンドルツールの任意の bundleConfigPath 入力で指定できます。バンドルファイルは、schemaVersion と bundles 配列を持つ JSON オブジェクトです。各バンドルには id、title、description、keywords が必要です。
これは、将来的なツールの肥大化を管理するための基盤です。多数の個別ツールをすぐに公開する代わりに、エージェントはまずタスクに適したケイパビリティバンドルを選択できます。
ツールカタログ
controlcenter_list_tools は、ローカルの stdio MCP サーバーまたは解決済みの Claude プロファイルサーバーを起動し、標準の MCP list_tools リクエストを呼び出します。プロファイルのスキャンでは、Node 以外のランチャーを含む任意の stdio コマンドと、Streamable HTTP またはレガシー SSE を使用する URL ベースのリモート設定に対応しています。バージョン付きのヘッダー/認証コントラクトは ellmos.tool-scan-headers.v1 です。設定された静的な headers は、SSE イベントストリームの GET リクエストと、すべての MCP メッセージの POST リクエストに渡されます。インストール済み SDK のトランスポートコントラクトが使用され、リダイレクトは拒否されます。また、設定されたヘッダー/環境変数の値はプローブのエラーからマスキングされます。プローブ後はすべてのトランスポートが閉じられます。
スキャンは明示的に実行され、サーバーごとにタイムアウトが適用されます。報告されたツールは呼び出されず、同時プローブ数は 4、レスポンスの合計上限は 1 MiB という有限のデフォルト値が適用されます。maxParallelProbes の上限は 1~32、maxResponseBytes の上限は 1 KiB~16 MiB です。上限に達した対象、またはスキャンを開始できなかった対象は、ツール数が不明な status: incomplete として返されます。ツールが空のサーバーとして正常に報告されることはありません。これらの制御は controlcenter_list_tools、controlcenter_assign_tool_bundles、controlcenter_build_catalog、およびダッシュボードのスキャンで利用できます。
controlcenter_build_catalog は includeTools: true を受け取り、同じプローブ結果をローカルサーバーカタログとともに保存できます。
controlcenter_assign_tool_bundles は、プローブしたツール名、タイトル、説明、サーバー名、ソース、トランスポートのメタデータを機能バンドルのキーワードと照合し、ファイルシステム、ソフトウェア、自動化、コントロールプレーンなどのバンドルに属するツールを報告します。
プロファイル監査
controlcenter_audit_profile は、最初の小規模なポリシーレイヤーです。現在、次の項目を検出します。
npxによる起動- サーバー設定内の環境変数
- サーバーコマンドの欠落または無効
- 引数内の機密性の高い名前の断片
環境変数の値が出力されることはありません。
デフォルトでは、ポリシールールは data/policy-rules.json から読み込まれます。このファイルでは個々のルールを無効にしたり、重大度を上書きしたりできます。また、controlcenter_audit_profile は、単発の監査に使用する policyConfigPath 入力も受け付けます。
プロジェクト構成
ellmos-controlcenter-mcp/
|-- src/
|-- test/
|-- data/
|-- README.md
|-- README_de.md
|-- START.md
|-- ARCHITECTURE.md
|-- STATE.md
|-- DECISIONS.md
`-- TODO.md
サードパーティライセンスと透明性
このプロジェクトは、すべての直接的なランタイム依存関係および開発依存関係において、100%許容的なオープンソースライセンスを厳格に遵守しています。
- コピーレフト/GPL/AGPL の対象となる依存関係は 0% です。
- 商用、エンタープライズ、およびローカル優先のデプロイに完全に対応し、監査済みです。
- 監査済みの直接依存関係:
@modelcontextprotocol/sdk(MIT)、zod(MIT)、typescript(Apache-2.0)、vite/vitest(MIT)、@types/node(MIT)、@emnapi/core/@emnapi/runtime(MIT)。
SPDX ライセンステキスト全文、著作権表示、コンプライアンス証明は、THIRD_PARTY_LICENSES.md およびプレーンテキスト版の THIRD_PARTY_LICENSES.txt に記載されています。正式な著作権表示とエコシステムへの帰属表示は NOTICE に記載されています。
ドキュメント
| 対象 | 参照先 |
|---|---|
| クイックスタート | START.md |
| 現在の状態 | STATE.md |
| アーキテクチャ | ARCHITECTURE.md |
| ロードマップ | ROADMAP.md |
| 決定事項 | DECISIONS.md |
| 未完了のタスク | TODO.md |
| 変更履歴 | CHANGELOG.md |
| 貢献方法 | CONTRIBUTING.md |
| 通知と帰属表示 | NOTICE |
| サードパーティライセンス | THIRD_PARTY_LICENSES.md |
| マーケティングと発見性 | MARKETING-LOG.txt |
| LLM クローラー向け概要 | llms.txt |
セキュリティポリシーと脆弱性の報告
ControlCenter は、厳格なマルチエージェントセキュリティモデルに準拠しています。詳細については、SECURITY.md をご覧ください。
- ゼロエグレスとローカルファーストの保証: テレメトリーを送信せずにローカルで実行します。
- フェイルクローズ型ゲートウェイポリシー: パターンベースの適用と、範囲を限定したシークレットの除去を行います。
- 48 時間の対応 SLA:
[email protected]および[email protected]を通じて、拘束力のある対応を約束します(INV-SLA-10)。
llms.txt コンテキストインデックス
LLM エージェントの自動統合、RAG クローリング、プロンプトの最適化のため、ControlCenter はリポジトリのルートに構造化された llms.txt インデックスファイルを提供しています。このファイルは、ツールスキーマ、ガバナンスの不変条件、CLI の使用パターン、エコシステムの関係を、LLM に適した形式でまとめています。
ellmos-ai エコシステム、法定責任(§ 521 BGB)、セキュリティ SLA
この MCP サーバーは、AI インフラストラクチャ、MCP サーバー、インテリジェントツールを提供する ellmos-ai エコシステムの一部です。
MCP サーバーファミリー
| サーバー | ツール | 主な用途 | npm |
|---|---|---|---|
| FileCommander | 47 | ファイルシステム、プロセス管理、対話型セッション、クラウドロックに安全な操作 | ellmos-filecommander-mcp |
| CodeCommander | 22 | コード分析、JSON 修復、インポート、差分、正規表現 | ellmos-codecommander-mcp |
| Clatcher | 12 | ファイル修復、形式変換、一括操作 | ellmos-clatcher-mcp |
| n8n Manager | 19 | AI アシスタントによる n8n ワークフロー管理 | n8n-manager-mcp |
| ControlCenter | 34 | MCP スタック、ツール、スキルの検出、プロファイルの解決と監査、読み取り専用のホストロック、権限、決定、ポリシー、計画、リソースのレジストリ | ellmos-controlcenter-mcp |
| Homebase | 45 | ローカルファーストの LLM メモリ、ナレッジ、状態、ルーティング、スウォームオーケストレーション | ellmos-homebase-mcp(アルファ版) |
| ServerCommander | 8 | サーバー運用:ヘルスチェック、ログ分析、デプロイのドライラン、メール診断 | ellmos-servercommander-mcp(アルファ版) |
| Blender Use | 3 | ヘッドレス Blender によるアセット QA と FBX 再インポートの検証 | ellmos-blender-use-mcp(アルファ版) |
| Open Compute | 10 | モデルに依存しないコンピューター操作:キャプチャ、安全性ゲート付きアクション、Windows UIA | open-compute-mcp(アルファ版) |
AI インフラストラクチャ
| プロジェクト | 説明 |
|---|---|
| BACH | LLM エージェント向けのローカルファーストなテキストベース OS — 113 以上のハンドラー、550 以上のツール、SQLite メモリ |
| workflowhooker-provenance | ローカルファーストなライフサイクルフック、スコープのガードレール、ランタイムのプロベナンス |
| open-compute | Open Compute MCP を支える、モデルに依存しないコンピューター操作のコア |
| clutch | 自動ルーティングと予算管理を備えた、プロバイダーに依存しない LLM オーケストレーション |
| rinnsal | 軽量なエージェントメモリ、コネクター、自動化インフラストラクチャ |
| ellmos-stack | セルフホスト可能な AI 研究スタック(Ollama + n8n + Rinnsal + KnowledgeDigest) |
| MarbleRun | Claude Code 向け自律型エージェントチェーンフレームワーク |
| gardener | ミニマルなデータベース駆動型 LLM OS のプロトタイプ(4 つの関数、1 つのテーブル) |
| ellmos-tests | LLM オペレーティングシステム向けテストフレームワーク(7 つの観点) |
| COMA | ローカルファイルベースのエージェントジョブ調整と、エージェントプロセスの起動・ステータス管理(別プロジェクト)。 |
| agent-ops-stack | マニフェストベースの Git フェッチ設計図。マニフェストでは、ControlCenter を controlcenter-mcp モジュールとして、宣言された control-plane ラベルとともに記載しています。ControlCenter のセットアップ手順に従ってください。 |
オープンサイエンスと研究
| プロジェクト | エコシステム | 分野 |
|---|---|---|
| build-your-users-mind | research-line | オープンサイエンスに基づくユーザーのメンタルモデルの再構築と認知フレームワーク |
デスクトップソフトウェアと関連ツール
パートナー組織の open-bricks は、AI ネイティブなデスクトップアプリケーションをまとめて提供しています。AI 時代に向けて構築された、モダンなオープンソースソフトウェアスイートです。
| プロジェクト | エコシステム | 分野 |
|---|---|---|
| ProFiler | open-bricks / file-bricks | 高度なファイル管理、チェックサム、重複検出、一括操作 |
| lock-master | open-bricks / file-bricks | ローカルファーストなマルチエージェントプロジェクトのロックと権限管理 |
| DokuZen | open-bricks / doc-bricks | ドキュメント管理、テキスト抽出、OCR、PDF 処理 |
| UniversalDocsGrabber | open-bricks / doc-bricks | 汎用ドキュメント取得、一括取り込み、OCR、テキスト正規化 |
| safe-start-for-codex | open-bricks / dev-bricks | AI コーディングエージェント向けのローカルファーストなランタイムガードと環境バリデーター |
| automation-master | open-bricks / dev-bricks | マルチエージェント調整とバックグラウンド自動化エンジン |
| DevCenter | open-bricks / dev-bricks | 開発者の生産性向上センターとワークスペースマネージャー |
| CodeBox | open-bricks / dev-bricks | サンドボックス化されたスクリプト実行とマルチ言語スクラッチパッド |
| system-gap-master | open-bricks / dev-bricks | システムギャップの検出、テストギャップ分析、コントラクト検証 |
| Zombie Killer Tray | dev-bricks | 孤立した MCP プロセスを確認するためのオプションの Windows ツール。サポート対象の node_modules/ellmos-controlcenter-mcp/dist/index.js エントリーポイントから起動した場合、ControlCenter は設定済みの候補です。追加のプロセス確認と適用確認はすべて引き続き必要です。 |
法定通知および責任の免責事項(§ 521 BGB)
本プロジェクトは、BGB(ドイツ民法)第516条以下の意味における無償のオープンソース寄贈です。著作者の責任は、BGB第521条に基づき、故意および重大な過失に限定されます。これに加えて、MITライセンスの免責条項が適用されます。
ご自身の責任でご利用ください。保守の約束、可用性の保証、エラーがないことや特定の目的への適合性の保証はありません。
本プロジェクトは、MITライセンスに基づく無償のオープンソース寄贈です。責任は、故意および重大な過失に限定されます(ドイツ民法/BGB第521条に基づく好意による給付)。ご自身の責任でご利用ください。保証、保守の保証、特定の目的への適合性の保証はありません。
セキュリティ対応SLAと脆弱性の報告
SECURITY.mdに規定されているとおり、厳格で拘束力のあるセキュリティポリシーを維持しています。
- 初回応答SLA: 48時間以内を保証します(
INV-SLA-10)。 - トリアージの取り組み: 脆弱性の評価を5営業日以内に完了します。
- 修正SLA: 調整済みのセキュリティパッチを30暦日以内に提供します。
- 直接連絡先:
[email protected]、[email protected]、[email protected]、[email protected]。
ライセンス
バンドルとパートナー
ControlCenter MCPは、引き続き単独で公開されているMCPサーバーです。V4の構成では、ellmos-core-discovery-bundleのオプションのMCPアクセスサーフェスとして機能し、ローカルのMCPスタック、プロファイル、ツール、スキルの探索機能を、ユーザーおよびMCP対応クライアントに提供します。ポリシー、意思決定、メモリー、自動化、システムマップ、または発見されたツールの背後にあるモジュールの機能上の所有者ではありません。
構成されたコンポーネントレジストリ、ローカルMCPサーバー、プロファイルファイル、スキルライブラリは、探索パートナーであり、バンドルへの所有権移転を意味するものではありません。公開済みのControlCenterのアイデンティティとパッケージ名に変更はありません。ControlRoomは別個に計画されているオペレータースタックであり、このサーバーの改名や、表に出ない置き換えではありません。
バンドルへの正式な収録、バージョン、プロファイル、および非公開の構成レシピは、該当するバンドルマニフェストで管理されます。この公開セクションは、探索に関する情報のみを扱います。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。