DOC-MCP-001 · 开发者

连接代理,查看执行记录。

推荐使用托管 MCP 端点,无需访问私有核心仓库。认证、模型运行和代码验证是不同步骤。

服务器
https://adaptorch.com/mcp
协议
MCP 2025-11-25
传输
托管 HTTP MCP · 本地桥接是独立路径
联系方式
ingeng2004@gmail.com

§ 01

托管连接提供什么

在现有 MCP 客户端中提交运行、查询状态和查看可用产物。托管服务返回的工具列表是当前能力参考。

模型运行完成不代表代码库检查已执行。请查看运行记录及可用验证结果;共享托管命令验证默认禁用。

协议版本默认为 2025-11-25;同时支持 2024-11-05、2025-03-26 与 2025-06-18。

§ 02

推荐:连接托管服务

使用支持 HTTP 的 MCP 客户端。创建账户和 AdaptOrch 密钥后配置端点,无需克隆私有核心仓库。

1 · 创建密钥

在 /app/signup 注册,在 /app/api-keys 创建 API 密钥。直接 HTTP 指南统一使用 ADAPTORCH_API_KEY。请勿将真实密钥提交到仓库。

export ADAPTORCH_API_KEY="ado_..."

2 · 确认认证,不运行模型

这个只读 tools/list 请求检查端点和凭据。它不提交任务,不验证所有客户端配置,也不证明代码检查能力可用。

: "${ADAPTORCH_API_KEY:?Set your AdaptOrch API key first}"
curl --fail --silent --show-error https://adaptorch.com/mcp \
  -H "Authorization: Bearer $ADAPTORCH_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

有效密钥会返回包含 adaptorch_run 的 result.tools 数组。不带密钥时同一请求返回 {"code":-32001,"message":"Missing bearer token"} 与 HTTP 401 — 这个响应本身就证明端点可达。

端点:https://adaptorch.com/mcp · 通过 POST 发送 JSON-RPC。GET 按设计返回 405 — 没有可订阅的 SSE 流。令牌可通过 Authorization: Bearer 或 X-API-Key 传递。

执行还需要你的模型服务商密钥

AdaptOrch API 密钥用于服务认证。模型执行还需要供应商、模型及供应商密钥。配置下面三个变量,并用 X-Provider 请求头传递。模型令牌费由供应商另行收取。

托管模型完成不等于代码库测试通过。代码检查需要独立执行环境;只有记录显示相关检查实际运行时,才将其算作验证。

注册后打开各客户端连接指南

Set these only in your local environment; never in a shared transcript or committed file.

export ADAPTORCH_PROVIDER="openai"
export ADAPTORCH_PROVIDER_MODEL="YOUR_SUPPORTED_MODEL"
export ADAPTORCH_PROVIDER_KEY="YOUR_PROVIDER_KEY"

§ 03

3 · 推荐客户端连接

先使用下面完整的 Claude Code HTTP 示例。其他配置块只展示各客户端的认证语法;模型执行前请按登录后仪表盘的指南添加供应商请求头。

Claude Code — 一条命令

: "${ADAPTORCH_API_KEY:?Set your AdaptOrch API key}"
: "${ADAPTORCH_PROVIDER:?Set a supported provider}"
: "${ADAPTORCH_PROVIDER_MODEL:?Set the provider model ID}"
: "${ADAPTORCH_PROVIDER_KEY:?Set your provider key}"
claude mcp add --transport http adaptorch https://adaptorch.com/mcp \
  --header "Authorization: Bearer ${ADAPTORCH_API_KEY}" \
  --header "X-Provider: ${ADAPTORCH_PROVIDER}" \
  --header "X-Provider-Model: ${ADAPTORCH_PROVIDER_MODEL}" \
  --header "X-Provider-Key: ${ADAPTORCH_PROVIDER_KEY}"

Cursor — <code>~/.cursor/mcp.json</code>

{
  "mcpServers": {
    "adaptorch": {
      "url": "https://adaptorch.com/mcp",
      "headers": { "Authorization": "Bearer ${ADAPTORCH_API_KEY}" }
    }
  }
}

Codex CLI — <code>~/.codex/config.toml</code>(TOML,不是 JSON)

[mcp_servers.adaptorch]
url = "https://adaptorch.com/mcp"
bearer_token_env_var = "ADAPTORCH_API_KEY"
env_http_headers = { "X-Provider" = "ADAPTORCH_PROVIDER", "X-Provider-Model" = "ADAPTORCH_PROVIDER_MODEL", "X-Provider-Key" = "ADAPTORCH_PROVIDER_KEY" }

Gemini CLI — <code>~/.gemini/settings.json</code>(键名为 <code>httpUrl</code>)

{
  "mcpServers": {
    "adaptorch": {
      "httpUrl": "https://adaptorch.com/mcp",
      "headers": { "Authorization": "Bearer ${ADAPTORCH_API_KEY}" }
    }
  }
}

VS Code — <code>.vscode/mcp.json</code>(顶层键为 <code>servers</code>)

{
  "servers": {
    "adaptorch": {
      "type": "http",
      "url": "https://adaptorch.com/mcp",
      "headers": { "Authorization": "Bearer ${env:ADAPTORCH_API_KEY}" }
    }
  }
}

Windsurf — <code>~/.codeium/windsurf/mcp_config.json</code>(键名为 <code>serverUrl</code>)

{
  "mcpServers": {
    "adaptorch": {
      "serverUrl": "https://adaptorch.com/mcp",
      "headers": { "Authorization": "Bearer ${ADAPTORCH_API_KEY}" }
    }
  }
}

认证不等于执行。直接 HTTP 指南使用 ADAPTORCH_API_KEY;本地桥接用 ADAPTORCH_CONTROL_PLANE_TOKEN 表示同一个服务凭据。二者都不是模型供应商密钥。 Shell 会展开环境变量,客户端可能保存展开后的请求头。请私密保存配置,切勿提交密钥。

4 · 提交一次有界任务并检查记录

让连接的客户端使用下面的单任务输入调用 adaptorch_run 一次。此步骤可能消耗运行额度和供应商费用。查询状态时不要重复提交。

{
  "payload": {"subtasks": [{"id": "ping", "description": "Reply exactly PONG", "estimated_tokens": 16}]},
  "synthesis_mode": "paper",
  "budget_policy": {"global_timeout_budget_seconds": 20}
}

用返回的 run_id 调用 adaptorch_get_run、adaptorch_get_artifacts,或打开 /app/runs。确认模型和输出,再检查验证命令是否真正运行;SUCCEEDED 本身不能证明这一点。

401:检查服务认证和供应商密钥。429:检查额度和速率限制。供应商计费失败、验证环境不支持都属于配置阻碍,而不是成功激活。

Run records · Plan allowances and BYOK · Data flow

§ 04

维护者:本地桥接与引擎开发

本地 Python 包装器委托给 AdaptOrch 引擎,适用专有许可。下载本身不授予更广的使用权;请查看条款及发行包内的许可。此维护路径要求引擎已可用,不是托管客户的快速开始步骤。

pip install adaptorch-mcp

export ADAPTORCH_CONTROL_PLANE_TOKEN="$ADAPTORCH_API_KEY"
export ADAPTORCH_MCP_PROVIDER="$ADAPTORCH_PROVIDER"
export ADAPTORCH_MCP_PROVIDER_MODEL="$ADAPTORCH_PROVIDER_MODEL"
export ADAPTORCH_MCP_PROVIDER_API_KEY="$ADAPTORCH_PROVIDER_KEY"
adaptorch-mcp --transport stdio --base-url https://adaptorch.com

本地桥接的 ADAPTORCH_CONTROL_PLANE_TOKEN 接收 AdaptOrch API 密钥。ADAPTORCH_MCP_PROVIDER、ADAPTORCH_MCP_PROVIDER_MODEL、ADAPTORCH_MCP_PROVIDER_API_KEY 配置进程内供应商凭据。请勿把密钥作为工具参数发送。

本地客户端不等于自托管控制平面。独立执行环境可通过代码库验证 PoC另行商定。普通客户可直接使用上面的托管 HTTP 指南,无需私有核心仓库。

§ 05

工具参考

托管 tools/list 响应决定当前可用工具。结果和错误遵循返回的模式。工具列表响应不是模型运行或验证结果。

adaptorch_run

向 AdaptOrch 控制平面提交任务负载,可选择等待完成。

WRITEnon-destructivenon-idempotentOPEN-WORLD

参数 类型 必填 默认值
prompt string conditional —
context string no —
payload object no —
connector_name string no "mcp"
synthesis_mode string (enum) no "robust"
model string no —
trace boolean no false
budget_policy object no —
wait_for_terminal boolean no true
timeout_seconds number no 120.0
poll_interval_seconds number no 1.0
verification_commands string[] no — (gated)
prefer_ensemble_singleton boolean no false
output_extractor string (enum) no —
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
  "params": { "name": "adaptorch_run",
    "arguments": { "prompt": "${TASK_PROMPT}", "synthesis_mode": "robust",
                   "wait_for_terminal": true, "timeout_seconds": 120.0 } } }

adaptorch_get_run

按 run_id 获取运行摘要。

READ-ONLYnon-destructiveIDEMPOTENTOPEN-WORLD

参数 类型 必填 默认值
run_id string yes —
{ "jsonrpc": "2.0", "id": 2, "method": "tools/call",
  "params": { "name": "adaptorch_get_run", "arguments": { "run_id": "${RUN_ID}" } } }

adaptorch_get_artifacts

按 run_id 获取运行产物。

READ-ONLYnon-destructiveIDEMPOTENTOPEN-WORLD

参数 类型 必填 默认值
run_id string yes —
{ "jsonrpc": "2.0", "id": 3, "method": "tools/call",
  "params": { "name": "adaptorch_get_artifacts", "arguments": { "run_id": "${RUN_ID}" } } }

adaptorch_list_runs

列出最近的 AdaptOrch 控制平面运行,最新的排在前面。

READ-ONLYnon-destructivenon-idempotentOPEN-WORLD

参数 类型 必填 默认值
limit integer (1–100) no 20
status string no —
{ "jsonrpc": "2.0", "id": 4, "method": "tools/call",
  "params": { "name": "adaptorch_list_runs", "arguments": { "limit": 20, "status": "SUCCEEDED" } } }

adaptorch_get_traces

按 run_id 获取运行的执行追踪。

READ-ONLYnon-destructiveIDEMPOTENTOPEN-WORLD

参数 类型 必填 默认值
run_id string yes —
{ "jsonrpc": "2.0", "id": 5, "method": "tools/call",
  "params": { "name": "adaptorch_get_traces", "arguments": { "run_id": "${RUN_ID}" } } }

adaptorch_cancel_run

按 run_id 请求取消正在执行的运行。

WRITEDESTRUCTIVEnon-idempotentOPEN-WORLD

参数 类型 必填 默认值
run_id string yes —
{ "jsonrpc": "2.0", "id": 6, "method": "tools/call",
  "params": { "name": "adaptorch_cancel_run", "arguments": { "run_id": "${RUN_ID}" } } }

adaptorch_route_topology

使用本地 TopologyRouter 为任务 DAG 推荐执行拓扑(不调用控制平面)。

READ-ONLYnon-destructiveIDEMPOTENTclosed-world

参数 类型 必填 默认值
subtasks object[] yes —
dependencies object[] no —
{ "jsonrpc": "2.0", "id": 7, "method": "tools/call",
  "params": { "name": "adaptorch_route_topology",
    "arguments": { "subtasks": [ { "id": "t1" }, { "id": "t2" } ],
                   "dependencies": [ { "from": "t1", "to": "t2" } ] } } }

adaptorch_server_metrics

返回脱敏后的 MCP 工具调用计数与延迟分位数。

READ-ONLYnon-destructivenon-idempotentclosed-world

无参数。

{ "jsonrpc": "2.0", "id": 8, "method": "tools/call",
  "params": { "name": "adaptorch_server_metrics", "arguments": {} } }

adaptorch_capabilities

返回支持的综合模式、连接器与服务器能力。

READ-ONLYnon-destructiveIDEMPOTENTclosed-world

无参数。

{ "jsonrpc": "2.0", "id": 9, "method": "tools/call",
  "params": { "name": "adaptorch_capabilities", "arguments": {} } }

adaptorch_plan_catalog

返回当前 AdaptOrch 托管云套餐目录:Starter $0、Pro $39、Team $149。

READ-ONLYnon-destructiveIDEMPOTENTOPEN-WORLD

无参数。

{ "jsonrpc": "2.0", "id": 10, "method": "tools/call",
  "params": { "name": "adaptorch_plan_catalog", "arguments": {} } }

§ 06

鉴权

stdio 依赖本地信任模型加控制平面令牌。HTTP+SSE 额外提供 bearer 鉴权、来源允许列表、协议版本校验与负载大小上限。

环境变量 默认值 用途
ADAPTORCH_CONTROL_PLANE_TOKEN required Control-plane bearer token (stdio + http)
ADAPTORCH_CONTROL_PLANE_BASE_URL http://127.0.0.1:8000 Control-plane base URL
ADAPTORCH_MCP_HTTP_AUTH_TOKEN falls back to control-plane token Bearer expected on HTTP requests
ADAPTORCH_MCP_ALLOWED_ORIGINS localhost, 127.0.0.1, ::1 Allowed Origin header values
ADAPTORCH_MCP_MAX_PAYLOAD_SIZE_BYTES 1048576 Max HTTP request body (else 413)
ADAPTORCH_MCP_ALLOW_VERIFICATION_COMMANDS off Gate for verification_commands

HTTP 响应:缺失或无效 bearer 令牌返回 401,来源不被允许返回 403,负载超过上限返回 413。令牌使用 hmac.compare_digest 比较,且从不写入日志。

§ 07

工作流

以下三种常见流程覆盖了大多数代理集成场景。

1 · 运行并收集

调用 adaptorch_run 并带上 wait_for_terminal,然后用 adaptorch_get_run、adaptorch_get_artifacts 与 adaptorch_get_traces 读取结果。

{ "name": "adaptorch_run",
  "arguments": { "prompt": "${TASK_PROMPT}", "wait_for_terminal": true } }
{ "name": "adaptorch_get_artifacts", "arguments": { "run_id": "${RUN_ID}" } }

2 · 预先路由 DAG

adaptorch_route_topology 在本地计算推荐拓扑 — 它不会调用控制平面。

{ "name": "adaptorch_route_topology",
  "arguments": { "subtasks": [ { "id": "t1" }, { "id": "t2" } ],
                 "dependencies": [ { "from": "t1", "to": "t2" } ] } }

3 · 运维

用 adaptorch_list_runs 列出近期运行,用 adaptorch_cancel_run 停止正在执行的运行。adaptorch_run_prompt 与 adaptorch_get_run_prompt 提示词封装了这两条路径。

§ 08

故障排查

  • 找不到启动器:请使用 adaptorch-mcp 控制台脚本或 scripts/run_adaptorch_mcp.sh。
  • 缺少令牌:设置 ADAPTORCH_CONTROL_PLANE_TOKEN,或传入 --api-token。
  • 分帧不匹配:stdio 使用换行分隔的 JSON-RPC;请勿混用 Content-Length 分帧。
  • HTTP 401 / 403:检查 bearer 令牌与 Origin 允许列表。
  • HTTP 413:负载超过大小上限;请调高上限或缩小请求体。
  • verification_commands 被拒绝:该数组会按允许列表校验;请移除不被允许的命令。
  • 冒烟测试:GET /mcp/health 与 GET /mcp/sse?once=true。