mcpField
P
pAIchart MCP Hub

pAIchart MCP Hub

远程服务
paichart.com云与基础设施01 天前更新

关于 pAIchart MCP Hub

pAIchart MCP Hub 用于发现 MCP 服务并编排多服务工作流,也支持基础设施变更的设计与审查。团队提供需求和拓扑后,它会生成供人员应用的审查后变更包,而不会自行应用变更。

主要功能

  1. 01按能力发现服务
  2. 02用户级 OAuth 身份与范围限定令牌
  3. 03按顺序、并行或条件编排服务
  4. 04以依赖图协调 Agent 流水线
  5. 05通过验证器和发布门审查变更
  6. 06查看运行历史、产物和检查结果

适用场景

  1. 01设计并审查网络或 Kubernetes 变更
  2. 02准备 Terraform 或可观测性配置变更包
  3. 03编排已注册 MCP 服务间的工作流
  4. 04检查 Agent 输出和审批决定

MCP 相关

Hub 注册和发现 MCP 服务,并使用用户级身份与范围限定令牌转发调用。MCP 客户端可通过固定工具集编排服务调用和工作流。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://paichart.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

pAIchart — 输入高级设计,输出经过审查的低级设计

License: Elastic 2.0 — 源码可用:可自行托管、修改和再分发;不得作为托管服务提供给第三方。

跨网络设备、Terraform、Kubernetes 和可观测性技术栈(Prometheus / Grafana / OpenTelemetry)——在开放的 MCP Hub 上。向 pAIchart 提供位于任意可获取位置的 requirements.md 和 topology.json,它就会返回经过审查的低级设计:每台设备的配置、用于验证其正常工作的确切命令,以及回滚方案。你的团队会在带外以幂等方式应用它。pAIchart 负责设计并审查变更;它绝不会应用变更。

LLD 正是它要消除的瓶颈。如今,编写一份 LLD 意味着资深工程师要读取每台设备的实时状态、用各厂商的语言编写配置,并手动协调跨域传递的值。pAIchart 将这项工作作为由专业 Agent 组成的图来执行,分三个层级进行检查,并交付一份经过审查、等待你批准的结果。你不再需要为每个系统编写内容,而只需批准一个方案包。

有向无环图(DAG)协调 Agent

其他解决方案提供的是任务 DAG。pAIchart 提供的是经过审查的变更 DAG。

每个节点都是一个由 Agent 组成的领域流水线 采集实时状态 → 设计 → 编写 → 审查,每条边都传递一个运行时才产生的值。彼此之间没有连边的分支会并行运行;依赖边则规定顺序,并将实际推导出的值传递下去。

                    ┌──▶ [firewall leg] ──┐
[network leg] ──────┼──▶ [cloud leg] ─────┼──▶ [integration review] ──▶ release gate
                    └──▶ [k8s leg] ───────┘
     derived range                              checks all legs against
     exists only after                          the one shared contract
     this leg runs

这就是图与脚本的区别:云端分支会精确授权网络分支推导出的地址范围,因为云端分支读取了网络分支创建的内容。高级设计中不存在预定义值。

  • 多个分支可并行运行或按顺序执行,并支持上下文串联和依赖关系
  • 目前支持四个基础设施领域——网络设备、Terraform、Kubernetes、可观测性配置(Prometheus / Grafana / OpenTelemetry)——另加产物合成;整体架构也便于扩展:可观测性领域是通过配置新增的(包括一种协议、四个角色模板和一个只读服务描述符),无需更改引擎
  • 图与工作一同声明在单个 PIPELINE 任务中,而不是定义在另一个同样需要你运维的调度器中
  • 可通过 AI 客户端或 Web UI 上的审批关卡放行;两者共用同一代码路径
  • 实时状态来自你的设备,通过各设备的 MCP 服务以只读方式采集

如何通过三个层级检查正确性,且较低层级的结果不能被推翻

第 1 层——用代码进行算术检查。在适用的情况下,pAIchart 会使用代码进行确定性检查,而不是依赖 LLM 审查者的信心。每个派生值都会标记一个 kind,引擎会针对该类型,使用采集到的证据进行算术运算——绝不会使用软件包对这些证据的转述:

  • cidr — 派生范围是否恰好覆盖其声明的成员?可捕获范围过宽(将已分配的地址一并纳入)和范围过窄(声称的成员落在范围之外)。
  • asn — AS 号是否位于私有范围内,且采集到的状态是否授权了它?这里的关系刻意反转:采集结果是允许列表——设计中设置的 AS 号必须是设备已经在运行的,或是目标中明确指定的。

如果某个 kind 尚未实现,平台会明确说明。它会将该值记录为未经过机械化检查,并将其升级给集成审查者——绝不会把未经检查的值算作通过。VT-14 端到端验证了这条路径:审查者指出了未覆盖的值,追溯了它的来源,发现它没有对应的设备配置,并否决了两项已通过的检查和其自身的批准。

第 2 层——独立审查者。每个环节各有一名审查者,根据各自的契约进行审查;另有一名集成审查者,根据共享契约审查所有环节——并对组合结果运行该领域自身的验证器(完整拓扑 Batfish、terraform plan、kubeconform)。它会使用这些验证器,而不会重新实现它们。

第 3 层——发布门禁。采用确定性的 AND 逻辑:每个环节都已批准 且 没有遏制违规 且 任何未检查的值都有合理的说明 且 集成审查者已批准 且 覆盖完整。门禁中不包含任何信心分数。

无论上层由谁批准,第 1 层的违规都会阻止通过。

我们发布失败的轮次,这就是证明

这个类别的大多数项目都要求你相信演示。我们提供了 21 份验证文档,每份都会在运行前说明预期的可观测结果,然后记录实际发生的情况。

也请看看那些出错的案例。VT-12:某程序在扩大授权的同时,自行认证 programReleasable: true。五层检查都未能发现问题,因此现在会用代码而非文字检查最小性。

  • 两次逐字节相同的审查运行,对同一输入分别打出 45 分和 92 分。因此,信心在每个层级都被降级为一项记录事实;发布门禁只根据可验证的事实作出决定——其中不包含任何信心分数。
  • 无法运行的检查会导致阻止,而不是通过。“我们无法验证”绝不会被当作“没问题”。
  • 三个正确的变更包遭到拒绝,因为审查者对其结构上无法看到的内容作出了判断——其中一位写道“我无法独立重新验证此比较”,却仍断言了结论。改进措辞关闭了一条路径,但同类问题在下一轮再次出现,因此现在会在证据所在之处计算比较结果并交给审查者——审查者仍会对事实无法判定的所有内容作出判断(VT-21)。

→ 验证资料包 · 每项声明均链接到其机器记录 · 协议 · 面向 Agent 的契约,所有运行都依据这些契约进行验证;契约原文发布,并与平台种子逐字节校验一致

五大领域,一个支架

  • 网络配置: “为每台交换机添加一个 Loopback0,并将其通告到 BGP” → 生成获批的变更包,由配置团队以幂等方式应用:根据描述符自助配置只读设备服务,采集真实运行状态,设计并编写逐设备配置、验证和回滚方案,再由独立审核者把关。 → 变更报告示例
  • Kubernetes / GitOps: “为 orders-api Deployment 添加 HPA 和资源 requests/limits” → 根据集群实时状态生成声明式 kustomize 覆盖配置,并在离线环境中验证(kubeconform / kustomize build / OPA,绝不运行 kubectl diff)。只读,受 RBAC 限定;会显示 Secret 名称,其值绝不会离开集群。 → 示例(包含一次有理有据的 NEEDS-REVISION——审核者拒绝批准无法验证的内容) · 第二个示例(三轮完成 PodDisruptionBudget——第一份变更包的差距清单成为目标,审核者因可用性计算不当拒绝了首次尝试,修订版则因选择了不同的字段而获批)
  • 可观测性配置: “在采集器的指标流水线中将 memory_limiter 处理器置于首位,并按 256 MB 容器规格设置大小” → 为运行中的 Prometheus / Grafana / OpenTelemetry 技术栈生成完整文件级期望状态配置,只读采集自采集器已部署文件和 Prometheus 的运行中配置,并提供确定性的应用前验证、以存在性为准的应用后检查,以及采集到的文件作为回滚方案。 → 示例(首个发布后也实际应用的变更包,展示了运行中的系统之后显示的内容——也是审核者首次读取平台盖章的回滚来源事实,而非猜测引文是否确为引文)
  • Terraform / 云 IaC:“为 acme-app-logs 存储桶添加版本控制和公共访问阻止配置” → 基于限定范围的 state pull 生成 HCL 变更包,作为 PR 提交(不启动任何 provider,也不锁定状态),并附上 validate / plan / tflint / OPA 预期事实和回滚方案。 → 示例(展示分层防护:类似秘密的标签已脱敏,提示词注入标签已拒绝)
  • 产物合成:源材料(git 历史、执行日志、一个 POV 的交付历史、外部 MCP 服务)→ 通过采集 → 编写 → 审核,生成可发布的交付物。 → 示例

安全地连接你的实时系统——MCP 中枢

收集步骤是一次中枢调用,这套机制也向所有人开放:注册服务、按能力发现服务并编排服务——使用各自用户的身份,不共享 API 密钥。

  • 按用户进行身份验证:每次外部调用都通过 OAuth(GitHub / Microsoft)以你的身份运行。没有共享的平台账户。
  • 服务可自行验证的令牌:中枢会为每次调用签发一个短期令牌,并在 JWKS 端点发布公钥。支持 JWKS 的服务会自行验证签名,因此 pAIchart 签发的身份凭证可取代 URL 中的静态 API 密钥,我们之间绝不会共享任何密钥。签名密钥每 90 天轮换一次。
  • 每个令牌仅对应一个服务:每个签发的令牌都带有按服务限定的受众(RFC 8707),因此从一个服务泄露的令牌无法被重放到另一个服务。
  • 信任级别:6 级模型控制令牌转发(INTERNAL → TRUSTED → OWNER → TEAM_MEMBER → SCOPED → ANONYMOUS)。
  • 面向 Agent 的固定工具接口:执行循环永久调用六个稳定工具——新注册的服务可通过服务调用供所有 Agent 访问,无需新增工具架构、修改提示词或重新部署。
  • 开放注册表:任何 MCP 服务都可以通过一条命令注册,且默认设为私有;按能力而非名称进行发现;工作流可按顺序、并行或有条件地串联服务。

管理、可观测性与访问控制

  • 在 Web 应用中更改 DAG 定义或任何 Agent 的系统提示词。数据存储在数据库中,无需重启或重新部署即可生效。
  • 完整取证:可在 GUI 中浏览每次运行的元数据和产物:每个 Agent 看到了什么、生成了什么、运行了哪些检查,以及关卡为何暂停。
  • 多用户:RBAC 和个人 API 密钥。
  • 按 Agent 选择模型:通过下拉菜单从当前 Claude 系列中选择。

组织工作——POV → 阶段 → 任务

在大多数 Agent 框架中,编排图是代码——仅在运行期间存在。在 pAIchart 中,DAG 的每个节点都是一项任务:一条持久化记录,包含状态、依赖项、产物和历史记录,并位于团队已在使用的同一交付计划中。计划和流水线都只是带类型的任务,因此图在重启后仍会保留;每个 Agent 的工作都是可浏览的工作项;审批关卡则是一次任务状态转换——与人工完成任务时经过的流程相同,走的是同一条通用代码路径。

这也解释了为什么无需单独运维调度器,以及为什么取证功能开箱即用:工作流引擎就是交付计划。问一句*“我的哪些 POV 有风险?”*就能得到答案——无需使用 UI。

开始使用

pAIchart 是一个托管的 MCP hub,可配置为 Claude 连接器或 ChatGPT 应用,因此无需安装任何内容。将 AI 客户端指向端点,完成身份验证,然后说明目标。

  • Hub:https://paichart.app/mcp
  • 连接方式:Claude Desktop(GitHub OAuth)或 ChatGPT(Microsoft OAuth)——也可以使用 Web 应用
  • 第一句可以说:“Help me get started with paichart”——也可以运行 list_prompts() 查看所有引导式工作流
  • 隐私:PRIVACY-DEMO.md——演示账户存储的内容、可执行的操作,以及 30 天后自动删除

要运行一个程序(DAG),请在任何可获取的位置提供两个文件(GitHub 仓库即可):

文件内容
requirements.md你的 HLD——以文字说明目标及其约束
topology.json范围内的设备/目标及其连接方式

然后,在 AI 客户端中请求加载“HOWTO-use-pov-program”提示词,或在 GUI 中创建一个任务,即可运行图。 在 GUI 中查看共享 POV 里的大量示例,或者询问“list my povs and show me the details” 也可以从更简单的操作开始:

  • 使用 HOWTO-use-pipeline-harness 提示词,然后询问“为每台交换机配置一个 Loopback0,并将其通告到 BGP”——运行一条流水线,处理一个域,并返回经过审核的软件包
  • “我的哪些 POV 存在风险?”——直接获取交付分析结果
  • “发现服务”——按功能浏览注册表

自行运行

在全新 Ubuntu 24.04 机器或 VM 上完成安装——docs/SELF-HOST-RUN-SHEET.md。 按顺序执行每条命令,无需预先准备任何内容:安装 PostgreSQL 16 和 Node 20,创建数据库,克隆、配置、初始化并启动应用, 完成首次登录,创建管理员账户,安装 Claude Code 并将其连接到你的 hub,还可以选择注册你自己网络中的服务。大约需要 40 分钟,其中大部分时间用于运行 npm ci。

已经有 Node 20、PostgreSQL 16 和一个空数据库?简要步骤如下:

git clone https://github.com/paichart/paichart && cd paichart && npm ci
cp .env.example .env               # set DATABASE_URL, APP_BASE_URL and ADMIN_EMAIL; then:
npm run --silent jwt:keys >> .env  # RS256 signing keys (--silent keeps npm's banner out of .env)
npm run db:seed                    # schema, grants, first SUPER_ADMIN (password printed once), protocols, hub prompts
npm run dev                        # web app  → http://localhost:3000
npm run mcp:http:dev               # MCP hub  → http://localhost:8080/mcp
  • docs/RUNNING.md——说明每个步骤的作用:双进程结构、角色、APP_BASE_URL、生产环境说明
  • docs/VERIFYING-SELF-HOST.md——证明安装使用自己的身份:每个令牌和 OAuth 文档都基于你自己的 APP_BASE_URL 生成,并且会拒绝为其他任何发行方签发的令牌
  • docs/OAUTH-SETUP.md——注册你自己的 GitHub / Google / Microsoft 应用(可选;无需注册也可使用密码登录)
  • CONTRIBUTING.md · SECURITY.md

该平台以Elastic License 2.0 提供源代码:你可以使用、修改、自托管(包括在自己的组织内用于商业用途)并再分发;唯一禁止的事项是将其作为托管或管理服务提供给第三方。本仓库包含完整源代码(Web 应用 + MCP 服务),以及协议和验证套件。paichart.app 上的托管服务运行的也是同一份代码。服务器管理工具(监控、部署、备份)有意不纳入此仓库。

内部机制

You (Claude Desktop / ChatGPT / web app)
  → authenticate to the pAIchart Hub
  → one PIPELINE task, its title declaring the graph, pointing at your HLD
      │
      ├─▶ Program Architect designs the DAG + the interface contract every leg must honour
      │
      ├─▶ ⏸  PLAN GATE — a human releases it (AI client or GUI, one common code path)
      │
      ├─▶ legs execute: parallel where no edge joins them, sequenced where one does
      │     each leg:  harvest (read-only, via per-device MCP) → design → author → review
      │     each edge:  carries a real derived value forward, not an assumption
      │
      ├─▶ Tier 1 arithmetic in code · Tier 2 integration review over the composed set
      │
      └─▶ release gate — a deterministic AND, no confidence number
              ↓
    a reviewed LLD change package, in your AI client and the web GUI
    your team applies it — idempotently, out of band, with the rollback

所有外部调用都以你的身份执行,绝不会使用共享的平台账户——这一点在 Agent 之下强制执行,因此即使提示词注入了 Agent,它也无法超出发出请求的用户权限。

实时服务

Hub 的开放注册表。设备服务有所不同——每次运行时都会根据描述符按需配置,并在运行结束后拆除,因此 pAIchart 绝不会存储你的设备凭据。描述符规范是开放的:规范 + JSON Schema + 四个经过生产环境验证的示例——为你自己的设备编写一个描述符,并在运行前验证。

服务功能用户级身份验证
Snowflake数据仓库查询✅ 外部 OAuth
EIA美国能源数据分析服务账号
Weather实时天气数据服务账号
EODHD金融市场数据服务账号
Alpha Vantage金融数据 — 113 个工具服务账号
Browser Automation网页抓取、屏幕截图、PDF服务账号
Notifications电子邮件、Slack、webhook服务账号
Token ValidatorJWT/JWKS 集成与信任级别调试✅ 用户级 JWT

运行 HOWTO-register-service(list_prompts()),查看从基本注册到 A 级工具架构、访问控制和信任级别的操作指南。

只需一条命令即可注册你自己的服务:

registry(action: "register", {
  name: "my-service",
  description: "What your service does",
  endpoint: "https://my-service.com/mcp",
  category: "data-services"
})

学习

  • 验证资料包 — 20 份文档,每份都在运行前说明预期观察结果。包括失败的轮次。
  • 协议 — 资料包用于约束运行的、面向 Agent 的精确契约;原样发布,并与平台种子逐字节校验。决策日志中的每个版本标记都能在此找到可读文本。
  • 开放问题 — 面向研究人员。我们认为有趣的三项发现(一处缺陷曾在信心逐步上升时获得三层审查人员的一致认可)、一个我们无力定论的假设,以及我们愿意分享的实验室运行数据。
  • 案例研究 — 同一个真实网络→云项目的三篇操作指南:经机器检查(能信任它吗)、由你审批;并非由你编写(它能带来什么)、多领域项目内部解析(它如何构建——DAG、审查层级及其扩展能力)。
  • MCP 工具卓越实践 — 共 12 章,介绍如何构建无需外部文档即可供 AI 客户端调用的 MCP 工具,内容摘自 pAIchart 自身的生产审计:tutorials/README.md
  • @paichart/containment-checks — 一级算术检查,原样提取为 MIT 许可库,并附带其事件样例测试套件:对 LLM 衍生基础设施值(cidr、asn——可按 kind 扩展)进行机械检查;未实现的检查会报告未经过机械覆盖,绝不会报告通过。

链接

  • Hub(在此连接):paichart.app/mcp
  • JWKS:https://paichart.app/api/auth/jwks
  • 验证:verification/
  • 文档:AI 客户端中的 MCP 资源,或 list_prompts()
  • 源代码与自托管:本仓库 — docs/RUNNING.md

致谢

设备采集基于 @sydasif 的 nornir-napalm-mcp 构建,依据 MIT 许可证使用,并经过修改。

关键词

mcp mcp-hub mcp-server model-context-protocol dag directed-acyclic-graph multi-agent-orchestration low-level-design hld-to-lld change-synthesis intent-driven human-gated network-automation network-provisioning napalm nornir batfish kubernetes gitops terraform infrastructure-as-code multi-domain-automation verification deterministic-gate autonomous-agents change-management delivery-management pov service-discovery external-oauth jwks rfc8707 per-user-authentication workflow-orchestration claude-desktop chatgpt snowflake

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。