关于 ellmos ControlCenter
ellmos ControlCenter 是面向本地 MCP 技术栈的管理服务与策略网关,适合管理多个 MCP 服务的团队。它结合服务与配置发现、治理控制,以及对未载入 Agent 上下文的工具按需访问。
主要功能
- 01发现本地 MCP 服务与配置
- 02将工具归入能力组
- 03探测工具目录并生成配置
- 04审计策略并清理机密信息
- 05通过受控网关调用未加载工具
- 06查看本地仪表板与主机登记信息
适用场景
- 01盘点本地 Agent 环境中的 MCP 服务
- 02切换配置并生成任务专用目录
- 03调用启动时未加载的后端工具
- 04审计工具访问与治理状态
MCP 相关
它作为 MCP 服务面向兼容客户端提供管理、发现和策略网关工具,也可连接后端 MCP 服务以探测或调用其工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
20收录的工具列表 · 更新于 3 天前
此工具无需参数。
详细介绍
ellmos ControlCenter MCP
DE 德语版本
属于 ellmos-ai 系列。
说明
**大模型 / AI Agent 集成:**此代码库提供
llms.txt索引文件,用于优化上下文、发现 RAG 内容以及 Agent 导航。
快速导航
安装 • 目标用户 • 比较矩阵 • 系统架构 • 控制与网关流程 • 治理不变式 • 状态 • 工具(34) • 网关 • 能力包 • 配置文件切换 • 主机注册表(锁、权限、决策、治理资源) • 仪表板 • 第三方许可证 • 文档 • 安全策略 • llms.txt 上下文 • 生态系统矩阵
一款面向本地 MCP 技术栈的高级 模型上下文协议(MCP)管理服务和策略门控网关。ControlCenter 可发现本地 MCP 服务、读取 MCP 配置文件、将服务分组为能力包、针对任务推荐配置文件、构建目录、从本地仓库或配置文件中探测实际的 MCP 工具列表、将工具分配到能力包、提供主机级注册表镜像(锁、权限、资源、治理),并提供可选的本地仪表板。
架构与双重角色 — 控制平面 + 策略门控网关: ControlCenter 结合了两个互补的操作界面:
- 控制平面(管理与配置): 清点本地服务、解析配置文件、管理能力包、镜像系统治理/锁,并生成配置(
controlcenter_switch_profile、controlcenter_build_catalog)。- 策略门控网关(按需调用工具): 通过
controlcenter_invoke和controlcenter_list_available_tools,Agent 可以列出并调用后端 MCP 服务上的工具,即使主机 Agent 尚未将这些工具加载到其活动上下文中——调用严格受基于模式的策略规则(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 小时安全响应服务级别协议。
目标用户画像与发现方式
| 用户画像 | 核心特征与技术栈 | 架构摩擦与痛点 | ControlCenter 如何解决 |
|---|---|---|---|
| AI 基础设施工程师与 MCP 工具架构师 | 在多 Agent 环境(Claude Code、Codex、Antigravity、Gemini)中扩展本地 MCP 服务集群。 | 同时加载数十个 MCP 服务时,会大量占用 Agent 上下文窗口;不同 Agent 配置之间存在漂移。 | 动态能力包(data/capability-bundles.json)、哈希一致的配置解析(controlcenter_resolve_profile),以及按需探测工具,且不产生常驻内存开销。 |
| 多 Agent 运行时开发者与集群运营者 | 编排自主 Agent 循环与工作流(BACH、USMC、LangChain、AutoGen、CrewAI)。 | Agent 启动时未预先声明的工具无法在运行时动态访问;后台进程可能泄漏。 | 采用按调用连接、受策略管控的网关(controlcenter_invoke),让 Agent 能够调用未加载的后端 MCP 工具,且不会遗留僵尸进程。 |
| 企业 SecOps 与合规官 | 审计本地开发环境、敏感凭据以及 Agent 自主权限边界。 | 通过不可信工具输出发起提示词注入攻击、API 密钥在堆栈跟踪中泄漏,以及工具执行不受监控。 | 本地优先管理,不收集遥测数据,也不进行后台外联;为远程网关调用明确划定 HTTPS 边界;以失败即关闭方式加载策略(data/gateway-policy.json);对凭据进行有界清理、包装不可信数据,并采用仅追加审计日志(gateway-audit.jsonl)。 |
| 本地 Homelab 自动化用户与 AI 高级用户 | 管理桌面 Agent、工作流引擎(n8n)和本地开发工具。 | 工具分散、Agent 权限不透明、锁定冲突,且缺少集中展示当前 MCP 堆栈的可视化概览。 | 提供集中的本地 Web 控制面板(127.0.0.1:3737)、双向国际化(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 元服务 | 重型 Agent 框架(LangChain / CrewAI) | 云端 LLMOps 与远程网关 |
|---|---|---|---|---|---|
| 架构与角色 | 双控制平面 + 临时网关 | 静态 JSON 文件 | 单个庞大的组合进程 | 嵌入式代码框架 | 远程托管的 SaaS / 代理 |
| 令牌与上下文效率 | 按需动态调用工具(controlcenter_invoke) | 较差(必须将所有工具预加载到上下文中) | 极度臃肿(提示词中包含数十个工具) | 因情况而异(工具加载到 Python 进程内存中) | 网络负载开销 |
| 进程生命周期 | 每次调用时通过 stdio 连接 + 可选的 Windows Job Object(安全清理后代进程) | 始终运行的持久后台守护进程 | 单个单体后台进程 | 与应用程序执行线程绑定 | 云托管容器 |
| 网络出口与隐私 | 本地优先;无遥测/后台外联;支持显式指定远程 HTTPS 网关目标 | 本地 stdio / HTTP | 本地 stdio | 取决于云端大模型集成 | 出口流量大(工具数据发送到云端服务器) |
| 策略门控与加固 | 故障时默认拒绝的模式规则 + 递归清除机密信息 | 无(直接、不受限制地访问主机) | 少见 / 自定义临时过滤 | 应用层检查不一致 | 组织级云 IAM |
| 不可信数据隔离 | 对工具输出强制添加 GFM 标识 | 无(原始字符串直接馈送给大模型) | 无 | 手动编写提示词模板 | 云服务提供商沙箱 |
| 主机治理感知 | 原生多 Agent 锁(LOCK*.txt)和权限 | 无 | 无 | 无 | 无 |
| 配置文件与技术栈管理 | 扩展链、动态工具包和目录探测 | 手动编辑 JSON | 硬编码的服务端数组 | 以编程方式定义 Python | Web 控制面板配置 |
| 国际化(i18n) | 双语核心(运行时输出支持英语和德语) | 仅英语 | 仅英语 | 仅英语 | 仅英语 |
| 安全 SLA 与供应链 | 48h SLA、零传递式遥测、许可证已审核 | 取决于供应商 | 未经审计的第三方工具 | 攻击面广(100 多个 pip 包) | 对第三方供应商的信任 |
系统架构
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 项架构和运行时不变量,以确保本地优先管理、明确的出站边界、默认拒绝的策略加载,以及跨环境的多 Agent 协调韧性:
| 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 服务进行探测和调用时,其后端标准输入/输出进程会按需为每次调用启动,并在 finally 块中立即终止。 | connect-per-call 架构可防止后台进程残留为僵尸进程。 |
INV-SCRUB-04 | 有界结果脱敏与有限预算 | 递归遍历结果:在所有位置对范围狭窄的凭据模式进行脱敏,而基于键的擦除仅适用于结构化元数据,以免请求的内容被悄然改写。请求大小受到限制,审计日志中不包含参数值。 | 递归应用范围狭窄的模式脱敏,对结构化元数据执行键清理,限制最大深度和内容块数量,默认请求上限为 256 KB,响应上限为 1 MB。 |
INV-PRIV-05 | 不提权/RunAsInvoker | 服务严格在非特权用户空间中运行,绝不提示获取 root/管理员权限。 | 在 Windows、macOS 和 Linux 上运行时均不需要 root 或 UAC 提权。 |
INV-LOCK-06 | 规范化的多 Agent 锁状态感知 | 以默认拒绝的方式遵循系统范围的 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 | 云同步冲突加固 | 保护仓库,避免多主机冲突副本和意外锁文件。 | .gitignore 全面覆盖 *.sync-conflict-*、*-CONFLIT-* 和 LOCK.*。 |
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 描述一个 MCP 服务:类型、命名空间、状态归属、封装和组合 |
controlcenter_list_stacks | 读取已注册的堆栈,并验证其 ellmos.stack.v2 清单 |
controlcenter_describe_stack | 描述一个已注册堆栈的类型化组件、角色、策略和验证警告 |
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/用户选择的角色、专家和 persona,并根据实时技能清单验证端点 |
controlcenter_list_plugins | 清点已安装的插件(默认为 ~/.claude/plugins;遵循 Claude Code 约定,可通过 ELLMOS_PLUGINS_ROOT 覆盖)和本地 ellmos 模块 |
controlcenter_list_locks | 列出配置根目录中的有效 LOCK*.txt 项目锁——参见主机登记表 |
controlcenter_check_lock | 检查某个路径是否被锁定,包括从父目录继承的锁 |
controlcenter_evaluate_permission | 报告最近的 LOCK.permissions 登记表允许 Agent 在某个路径执行哪些操作 |
controlcenter_list_decisions | 按标识符、日期、标题和状态列出待处理的用户决定 |
controlcenter_list_governance | 以只读方式联合读取允许列表中的决策、策略、战略计划和 BYUM 元数据;分别报告每个来源,绝不采纳或执行候选项 |
controlcenter_list_resources | 列出主机资源清单中的条目(系统和/或已安装软件)——只读镜像;登记表的权威归属于 ControlRoom 计划,而非此处 |
controlcenter_describe_resource | 根据资源清单 ID 获取一项资源的完整条目详情,数据来自同一个只读镜像 |
controlcenter_list_available_tools | 列出此主机尚未加载的 MCP 服务所提供的工具,不加载这些服务——参见网关 |
controlcenter_invoke | 在此主机尚未加载的服务上运行一个工具并返回结果;受策略门控并经过审计 |
Gateway:访问宿主尚未加载的服务
加载十一个 MCP 服务的会话需要一次性承担它们所有工具的开销。Gateway 让已加载的配置保持精简,例如 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 中指定的配置文件声明的服务。该集合构成 Gateway 的主要边界——无法将其指向任意命令。
生命周期。 每次调用时建立连接,调用后关闭。在 Windows 上,配置 ELLMOS_PROCESS_SUPERVISOR,使用本地 Job-Object 监督器,以同时绑定后代进程和直接的 stdio 子进程。对于冷启动的 stdio 服务,每次调用的开销约为 200–500 ms;换来的是有界清理,而非未经验证、仅终止直接子进程的做法。
不同故障模式彼此区分。 可能发生的四种情况各不相同,含义也不同:
| 结果 | 含义 |
|---|---|
unknown-server | 该名称不在可访问集合中。系统会返回已知名称。 |
unreachable | 服务存在,但无法向其发出请求。不表示“未返回任何内容”。 |
unknown-tool | 服务没有该工具。系统会返回可用工具名称,因此错误猜测可在一步内得到纠正。 |
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 始终优先,两个字段中的 * 都是通配符。策略文件格式错误或不符合架构要求时,会拒绝所有调用,而不是回退到全部允许。
审计。 每次调用(包括被拒绝的调用)都会以一行 JSON 追加到 ~/.ellmos/controlcenter/gateway-audit.jsonl(ELLMOS_GATEWAY_AUDIT_LOG;将其设为 off 可禁用)。日志条目包含参数名称和数量——绝不包含参数值,以及经过掩码处理的连接命令或 URL、结果、耗时和内容块数量,但绝不包含结果内容。工具输出会报告写入是否成功,因此审计失败可见;将 ELLMOS_GATEWAY_AUDIT_REQUIRED=1 设为开启,可将写入失败转为拒绝调用。
加固。 转发的负载属于外部数据,因此调用路径在各方面都设有界限:
| 控制项 | 行为 |
|---|---|
| 递归脱敏 | 符合限定凭据格式的内容(sk-、ghp_、AKIA、JWT,……)会在所有位置、所有嵌套层级被替换。仅在 structuredContent 中,名称包含密钥的键(auth、token、apiKey,……)会被整体清除——绝不会清除内容块,因为其中承载着调用方请求读取的有效载荷。结果会报告更改的值的数量。使用 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)。没有此限制时,并行批次会为每个请求启动一个后端进程。未能获得配额的调用会被拒绝,而不会无限期排队。 |
| 传输 | 仅允许 HTTPS;纯 HTTP 仅允许用于环回地址。拒绝重定向。可使用 allowedRemoteHosts 进一步限制(支持 *. 子域名)。 |
| 不可信内容标记 | 转发的内容会被标记为数据而非指令——网关会将第三方输出传入 Agent 的上下文。 |
不包括。 连接池、流式传输和进度透传、采样、征询、后端资源和提示词,以及根据工具注释推导的风险分类策略。目前尚无不透明的会话绑定能力的对应机制,因为这里不会保留会话,也不会签发能力句柄。目前仅存在 MCP 适配器;模块、堆栈和文件夹适配器仍待实现。
目录发现
ControlCenter 会读取三个经过人工整理的目录,而不是将各个路径硬编码。每个根目录都可配置,并且每个目录均为可选。
| 目录 | 架构 | 根目录(环境变量覆盖项) | 使用方 |
|---|---|---|---|
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 根目录同样会报告为无法读取,而不是空结果。
主机注册表:锁、权限、决策、治理、资源
上面的七个工具回答的问题与此服务器的其他工具不同:不是 “我可以配置什么?”,而是*“此机器上当前有哪些规则适用?”* 它们读取六个主机本地注册表——项目锁、与 Agent 无关的权限注册表、待处理决策列表、策略注册表、战略计划索引,以及包含系统和已安装软件的资源清单。
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 模块处理。再实现一套规则,下一次规范变更时就会与规范不一致。这是服务器唯一会调用 Python 的地方;如果没有可用的解释器,工具会像遇到其他未满足的前置条件时一样默认拒绝。
配置
这些工具在配置前不会运行,因为尚未设置这些工具的机器上并不存在这些注册表:
| 变量 | 用途 |
|---|---|
ELLMOS_LOCK_SCRIPTS | 存放规范 lock_utils.py、permissions.py 和 lock_scan.py 的目录。锁和权限相关的三个工具必须设置此变量。 |
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 | _control-center/_PLANS/plans-register.json 的显式路径,使用 ellmos.plans-register/1 架构。要使用 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) |
由此有两个结论:
- 评分只能在同一次查询中比较。 在上面的示例中,不同查询里的错误结果评分反而更高。切勿将这个数字视为置信度指标。
- 如果调用方是大模型,应先将用户的表达转换为关键词。 这一步成本很低,却能让最弱的情况变成最强的情况。
在支持语义搜索之前(已记录在 TODO.md 中),关键词查询就是预期用法——并非权宜之计。
语义角色与技能路由
controlcenter_resolve_semantic_route 由调用方大模型或用户负责选择语义角色;它会根据
semantic-persona-routing.map.v1 文件验证所选的协调者/专家/角色边,并检查显式技能端点是否存在于当前技能清单中。默认映射文件为 ~/.ellmos/controlcenter/routing/semantic-persona-routing-map.v1.json,可通过 ELLMOS_SEMANTIC_ROUTING_MAP 或工具输入覆盖。
词法候选项仍会单独标记。只有在调用方明确确认映射候选项是第二个语义/来源信号,且该技能唯一存在于已部署的实时清单中之后,映射候选项才能成为已验证端点。嵌套映射记录、稳定 ID、枚举、引用和唯一性均采用默认拒绝的方式进行验证。该路由不授予任何工具或执行权限。
仪表板
构建项目后,使用以下命令启动本地仪表板:
npm run dashboard
默认地址:
http://127.0.0.1:3737
仪表板目前可以显示本地服务和配置档案、切换界面语言、按配置档案启用或禁用服务、汇总配置档案审计结果、扫描所选配置档案或本地代码库中的 MCP 工具、显示工具与工具包的对应关系,以及写入生成的 --mcp-config 文件。写入操作会请求确认,并在覆盖现有文件前创建备份。
发现与注册表元数据
ControlCenter 提供 MCP 注册表元数据,供爬虫和目录工具使用:
server.json使用官方 MCP 服务元数据格式,包含软件包名称、代码库和 stdio 传输方式。llms.txt为 LLM 爬虫提供精简的项目摘要、规范链接和工具概览。package.json将这两个文件都包含在 npm 软件包中,方便注册表索引器从 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 片段使用标准的 mcpServers 格式,Claude Code、Claude Desktop、Codex、Cursor 和其他 MCP 宿主均支持此格式。
如果从 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覆盖生成的配置档案切换启动命令。使用{config}作为生成的 MCP 配置文件路径占位符。ELLMOS_CONTROLCENTER_ACTUAL_SELF_CONFIG指向宿主机本地、故障关闭的 actual-self 生成器配置。如果未设置此变量,controlcenter_actual_self_receipt不会生成回执。CONTROLCENTER_LANGUAGE或ELLMOS_CONTROLCENTER_LANGUAGE设置初始输出语言
已签名的实际自身回执
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。目前这六种语言均有维护完善的文本集,涵盖 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 会写入生成的文件。任何支持 MCP 的客户端都可以读取生成的 mcpServers JSON。使用 launchTemplate 输入或 ELLMOS_LAUNCH_TEMPLATE 可返回 Codex、Gemini 或自定义启动器命令,例如 codex mcp run --config {config}。
计划中的可选重启/重新连接工作流将保留此边界:写入配置文件变更后,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。
这是未来工具膨胀管理功能的基础:Agent 无需立即暴露许多个别工具,而是可以先选择与任务相符的能力套件。
工具目录
controlcenter_list_tools 可以启动本地 stdio MCP 服务,或已解析的 Claude 配置文件服务,并调用标准 MCP list_tools 请求。配置文件扫描支持任意 stdio 命令,包括非 Node 启动器,以及使用 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% 宽松的开源许可证:
- 0% Copyleft/GPL/AGPL 风险。
- 完全经过审计,适用于商业、企业和本地优先部署。
- 已审计的直接依赖:
@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 |
| 大模型爬虫摘要 | llms.txt |
安全政策与漏洞报告
ControlCenter 遵循严格的多 Agent 安全模型。请参阅 SECURITY.md 了解以下内容的完整详情:
- 零外传与本地优先保证: 在本地执行,不收集遥测数据。
- 失败时关闭的网关策略: 基于模式的强制执行与有界的机密信息清理。
- 48 小时响应 SLA: 通过
[email protected]和[email protected]作出的约束性响应承诺(INV-SLA-10)。
llms.txt 上下文索引
为支持自动化大模型 Agent 集成、RAG 爬取和提示词优化,ControlCenter 在仓库根目录提供结构化的 llms.txt 索引文件。该文件以便于大模型处理的格式,概述工具架构、治理不变量、CLI 使用模式和生态系统关系。
ellmos-ai 生态系统、法定责任(§ 521 BGB)与安全 SLA
此 MCP 服务是 ellmos-ai 生态系统的一部分,涵盖 AI 基础设施、MCP 服务和智能工具。
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 | 本地优先的大模型记忆、知识、状态、路由、蜂群编排 | ellmos-homebase-mcp(alpha) |
| ServerCommander | 8 | 服务操作:健康检查、日志分析、部署试运行、邮件诊断 | ellmos-servercommander-mcp(alpha) |
| Blender Use | 3 | 无头 Blender 资产 QA 与 FBX 重新导入验证 | ellmos-blender-use-mcp(alpha) |
| Open Compute | 10 | 与模型无关的计算机操作:捕获、安全门控操作、Windows UIA | open-compute-mcp(alpha) |
AI 基础设施
| 项目 | 描述 |
|---|---|
| BACH | 面向大模型 Agent 的本地优先文本操作系统——113+ 个处理器、550+ 个工具、SQLite 记忆 |
| workflowhooker-provenance | 本地优先的生命周期钩子、范围护栏和运行时来源追踪 |
| open-compute | 与模型无关的计算机使用核心,为 Open Compute MCP 提供支持 |
| clutch | 与提供商无关的大模型编排,支持自动路由和预算跟踪 |
| rinnsal | 轻量级 Agent 记忆、连接器和自动化基础设施 |
| ellmos-stack | 可自托管的 AI 研究技术栈(Ollama + n8n + Rinnsal + KnowledgeDigest) |
| MarbleRun | 面向 Claude Code 的自主 Agent 链框架 |
| gardener | 极简的数据库驱动型大模型操作系统原型(4 个函数、1 张表) |
| ellmos-tests | 大模型操作系统测试框架(7 个维度) |
| COMA | 基于本地文件的 Agent 任务协调,以及 Agent 进程启动/状态管理(独立项目)。 |
| 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 | 本地优先的多 Agent 项目锁定与权限治理 |
| DokuZen | open-bricks / doc-bricks | 文档管理、文本提取、OCR 和 PDF 处理 |
| UniversalDocsGrabber | open-bricks / doc-bricks | 通用文档抓取、批量导入、OCR 和文本规范化 |
| safe-start-for-codex | open-bricks / dev-bricks | 面向 AI 编码 Agent 的本地优先运行时防护和环境验证器 |
| automation-master | open-bricks / dev-bricks | 多 Agent 协调和后台自动化引擎 |
| 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 条及后续条款提供的免费开源赠与。根据**《德国民法典》第 521 条**,作者仅对故意和重大过失承担责任。此外,MIT 许可证中的责任免责声明同样适用。
使用风险由您自行承担。不承诺维护,不保证可用性,也不保证没有错误或适用于特定用途。
本项目是依据 MIT 许可证提供的免费开源赠与。责任仅限于故意和重大过失(《德国民法典》第 521 条/BGB 无偿施惠责任)。使用风险由您自行承担。不提供保证、不承诺维护,也不保证适用于特定用途。
安全响应 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。