跳转至

JSON 输出结构

以下是注册表读取命令输出的机器可读结构,以及这些结构所描述的已保存服务器配置结构。

JSON 输出结构

在脚本和仪表板中使用 --json。字段集可能会随时间增长,因此消费者应忽略未知键。

读取命令会将无效配置、未知服务器和已禁用的命名探针报告为 { "ok": false, "error": { "type": "cli_error", "message": "..." } },并以非零退出码退出。一旦 doctor 或 probe 生成报告,错误将保留在该报告中,而不会生成第二个 JSON 文档。

status --json
{
  "path": "/home/user/.openclaw/openclaw.json",
  "servers": [
    {
      "name": "docs",
      "configured": true,
      "enabled": true,
      "ok": true,
      "transport": "streamable-http",
      "launch": "streamable-http https://mcp.example.com/mcp",
      "auth": "oauth",
      "authStatus": {
        "hasTokens": true,
        "requiresAuthorization": false,
        "hasClientInformation": true,
        "hasCodeVerifier": false,
        "hasDiscoveryState": true,
        "hasLastAuthorizationUrl": false,
        "state": "authorized"
      },
      "requestTimeoutMs": 20000,
      "connectionTimeoutMs": 5000,
      "toolFilter": {
        "include": ["search", "read_*"],
        "exclude": []
      },
      "supportsParallelToolCalls": true
    }
  ]
}
doctor --json
{
  "ok": true,
  "path": "/home/user/.openclaw/openclaw.json",
  "servers": [
    {
      "name": "docs",
      "ok": true,
      "issues": [
        {
          "level": "warning",
          "message": "OAuth credentials are not authorized; run openclaw mcp login docs"
        }
      ]
    }
  ]
}

当任何已启用且被检查的服务器存在 error 级别问题时,doctor --json 会以非零状态退出。warning 和 info 级别的问题会被报告,但这些问题本身不会导致命令失败。

probe --json
{
  "generatedAt": "2026-05-31T09:00:00.000Z",
  "servers": {
    "docs": {
      "launch": "streamable-http https://mcp.example.com/mcp",
      "tools": 2,
      "codexApprovalMode": "auto",
      "approvalHint": "tools have no safety annotations; calls require approval in prompting session postures",
      "resources": true,
      "listChanged": {
        "tools": true,
        "resources": false,
        "prompts": false
      }
    }
  },
  "tools": ["docs__read_page", "docs__search"],
  "diagnostics": []
}

probe --json 会打开一个实时的 MCP 客户端会话,并直接输出结果;与 status/doctor 不同,该输出没有顶层的 path 字段。每个服务器都包含其生效的 codexApprovalMode;当该模式为 auto 且发现的工具没有安全注解时,会出现 approvalHint。该提示描述的是提示模式下的审批要求,而不是默认的完全权限模式。resources 和 prompts 键仅在该服务器确实声明了相应能力时才会出现(没有 prompts 的服务器会省略 prompts 键,而不是报告 false)。当存在诊断信息,或某个选中的已启用服务器未能连接时,该命令会先打印完整结果,再以非零状态退出,以便自动化检查部分成功的情况。使用 probe 来验证可达性和能力,而不是用于静态配置审计。

示例配置结构:

{
  "mcp": {
    "servers": {
      "context7": {
        "command": "uvx",
        "args": ["context7-mcp"]
      },
      "docs": {
        "url": "https://mcp.example.com",
        "transport": "streamable-http",
        "requestTimeoutMs": 20000,
        "connectionTimeoutMs": 5000,
        "supportsParallelToolCalls": true,
        "auth": "oauth",
        "oauth": {
          "scope": "docs.read"
        },
        "sslVerify": true,
        "clientCert": "/path/to/client.crt",
        "clientKey": "/path/to/client.key",
        "toolFilter": {
          "include": ["search_*"],
          "exclude": ["admin_*"]
        },
        "codex": {
          "defaultToolsApprovalMode": "approve"
        }
      }
    }
  }
}

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw