Skip to main content

adaptorch-mcp

Installable Python wrapper for the AdaptOrch MCP server.

The package runs a hardened facade over adaptorch.mcp_server, so routing and synthesis stay aligned with AdaptOrch core without copying those algorithms into the wrapper. The default remote exposure profile keeps local topology and trace oracles out of the public MCP surface.

Install

pip install --upgrade "adaptorch-mcp>=0.5.1,<0.6"
adaptorch-mcp-client --help

Use adaptorch-mcp-client to select this hardened wrapper explicitly. The legacy adaptorch-mcp name is retained, but the engine also installs that name and some installers can overwrite it. This release supports the adaptorch 0.1.x engine, not the planned code-free 0.2.x meta-package.

If AdaptOrch is not published to your package index yet:

pip install "adaptorch[api] @ git+https://github.com/dmae97/adaptorch.git"
pip install adaptorch-mcp

One-shot with uvx:

uvx --from "adaptorch-mcp==0.5.1" adaptorch-mcp-client --help
uvx --from "adaptorch-mcp==0.5.1" --with "adaptorch[api] @ git+https://github.com/dmae97/adaptorch.git" adaptorch-mcp-client --help

For contributors inside this monorepo:

uv sync --all-packages --extra dev
uv run adaptorch-mcp-client --help

Run stdio MCP

Use stdio for Claude Code, Claude Desktop, and other local MCP hosts. The upstream token is the AdaptOrch API key issued at https://adaptorch.com/app/api-keys (ado_live_*, or ado_test_* for test mode; legacy ak_* keys remain accepted).

export ADAPTORCH_CONTROL_PLANE_TOKEN="<ado_live_your-key>"
adaptorch-mcp-client --transport stdio --base-url https://adaptorch.com

For a BYOK-only control plane, configure the provider credential in the MCP process environment:

export ADAPTORCH_MCP_PROVIDER="openai"
export ADAPTORCH_MCP_PROVIDER_MODEL="gpt-4.1-mini"
export ADAPTORCH_MCP_PROVIDER_API_KEY="<provider-api-key>"

The key is never exposed as an MCP tool argument or JSON body field. It is sent only on run submission, redacted from errors, and omitted from status, artifact, usage, and catalog requests. Older engines without provider-credential support fail closed; source checkouts can install the current engine with make engine-local ENGINE_PATH=../adaptorch.

Runs submitted through this wrapper are stamped metadata.connector_source="mcp" by the engine, so they appear in the dashboard MCP status card and https://adaptorch.com/app/runs for the key's tenant.

Run HTTP MCP

Use HTTP for local gateways, reverse proxies, or remote MCP clients. Keep the client-facing MCP token separate from the upstream AdaptOrch token.

export ADAPTORCH_CONTROL_PLANE_TOKEN="<upstream-adaptorch-token>"
export ADAPTORCH_MCP_HTTP_AUTH_TOKEN="<client-facing-mcp-token>"  # must differ from upstream

adaptorch-mcp-client \
  --transport http \
  --base-url https://adaptorch.com \
  --http-host 127.0.0.1 \
  --http-port 8765 \
  --http-auth-token "$ADAPTORCH_MCP_HTTP_AUTH_TOKEN"

Health and metrics require the client-facing bearer token:

python - <<'PY'
import os
from urllib.request import Request, urlopen

request = Request(
    "http://127.0.0.1:8765/mcp/health",
    headers={"Authorization": f"Bearer {os.environ['ADAPTORCH_MCP_HTTP_AUTH_TOKEN']}"},
)
with urlopen(request) as response:
    print(response.read().decode("utf-8"))
PY

The built-in HTTP listener is loopback-only. Put an authenticated TLS reverse proxy in front of it for remote clients.

CLI reference

Command Purpose Important options
adaptorch-mcp-client (adaptorch-mcp legacy alias) Start the stdio or HTTP MCP server. --transport {stdio,http}, --base-url, --api-token, --timeout-seconds, --stdio-framing, --http-host, --http-port, --http-auth-token
adaptorch-mcp-doctor Print redacted local diagnostics. --json, --strict
adaptorch-mcp-smoke Verify stdio initialize + tools/list. --command, --base-url, --api-token, --timeout-seconds, repeatable --expected-tool

For adaptorch-mcp, the public wrapper resolves the control-plane URL in this order: explicit --base-url, then trimmed/validated ADAPTORCH_CONTROL_PLANE_BASE_URL, then the hosted fallback https://adaptorch.com. adaptorch-mcp-smoke keeps a local-dev fallback of http://127.0.0.1:8000 when no base URL is configured. Pass --base-url explicitly in checked-in MCP client configs for reproducible behavior.

Environment variables

Variable Purpose Notes
ADAPTORCH_CONTROL_PLANE_TOKEN Upstream AdaptOrch API key (ado_live_*/ado_test_*, legacy ak_*) from /app/api-keys. Required unless --api-token is passed.
ADAPTORCH_CONTROL_PLANE_BASE_URL Base URL used when --base-url is omitted. Trimmed and validated as HTTP(S); do not embed credentials.
ADAPTORCH_MCP_PROVIDER BYOK provider name, or auto. Set with ADAPTORCH_MCP_PROVIDER_MODEL; run submission only. auto uses the one provider whose own key variable is set (OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY, OPENROUTER_API_KEY, GOOGLE_API_KEY) and fails closed otherwise.
ADAPTORCH_MCP_PROVIDER_MODEL BYOK provider model. Set with ADAPTORCH_MCP_PROVIDER; run submission only.
ADAPTORCH_MCP_PROVIDER_API_KEY BYOK provider key. Process-local and secret-safe; optional only for keyless providers.
ADAPTORCH_MCP_HTTP_AUTH_TOKEN Client-facing bearer token for HTTP/SSE MCP. Required for HTTP and must differ from the upstream token.
ADAPTORCH_MCP_EXPOSURE_PROFILE MCP exposure policy. remote (default) hides local route/trace oracles; full explicitly restores the parent surface.
ADAPTORCH_MCP_ALLOW_INSECURE_CONTROL_PLANE Development-only remote HTTP opt-in. Truthy values allow plaintext non-loopback control-plane URLs; never enable in production.
ADAPTORCH_MCP_ALLOWED_ORIGINS Comma-separated HTTP origin allowlist. Use with browser or remote HTTP clients.
ADAPTORCH_MCP_MAX_PAYLOAD_SIZE_BYTES Maximum accepted HTTP request body size. Keep bounded for public deployments.
ADAPTORCH_MCP_REQUEST_TIMEOUT_SECONDS HTTP request timeout budget. Applies to HTTP server request handling.
ADAPTORCH_MCP_MAX_SSE_SUBSCRIBERS Maximum concurrent SSE subscribers. Defaults are provided by adaptorch.mcp_server.
ADAPTORCH_MCP_TIMEOUT_SECONDS Control-plane client timeout for app-factory usage. Useful when embedding the ASGI app.
ADAPTORCH_MCP_HTTP_HOST / ADAPTORCH_MCP_HTTP_PORT Shell/template values for --http-host and --http-port. CLI flags are authoritative.
ADAPTORCH_REPRODUCIBLE Benchmark/eval reproducibility beta. Benchmark/eval scope only; not general runtime determinism.
ADAPTORCH_ROUTER_ACCURACY_GATE Online-router learned-model gate. point default or wilson; advanced/operator use.
ADAPTORCH_PAPER_SEMANTIC_WEIGHT Paper-mode lexical/semantic blend. Default 0.35; nonzero values use Python scoring over the native fast path.

Engine-delegated optional controls

The wrapper forwards these controls to the installed adaptorch engine; it does not implement routing, synthesis, or benchmark algorithms itself. See the root configuration guide for non-env controls such as manifest_canonical_sha256, pass_rate_credit, quality_signal, prefer_multi_model_ensemble_singleton, and MCP prefer_ensemble_singleton.

Tool surface

Tool Purpose
adaptorch_run Submit an AdaptOrch task payload and optionally wait.
adaptorch_get_run Read a run summary and its optional bounded Correctness Wall view by run_id.
adaptorch_get_artifacts Read artifact metadata for a run.
adaptorch_list_runs List recent runs.
adaptorch_cancel_run Request run cancellation (write/destructive; keep manually approved).
adaptorch_server_metrics Read redacted MCP server metrics.
adaptorch_capabilities Read synthesis modes (with deprecated aliases), topologies, output extractors, connectors, and server features.
adaptorch_usage Read the calling tenant's usage window (plan level, period, used, limit, remaining, percentage).
adaptorch_plan_catalog Read hosted plan catalog: Starter $0, Pro $39, Team $149.

adaptorch_get_traces and adaptorch_route_topology are available only when ADAPTORCH_MCP_EXPOSURE_PROFILE=full. In the default profile, run diagnostics and telemetry are redacted, run-resource templates are hidden, completions are disabled, and server events are not broadcast to SSE subscribers.

For modern MCP clients, adaptorch_get_run advertises a closed outputSchema and returns structuredContent reconstructed from the wrapper's own allowlist projection. Its optional correctness_wall is bounded advisory observability from the installed parent AdaptOrch engine. Even a PASS verdict is not a correctness proof, active-selector decision, or authorization to apply a candidate; inspect its claim_boundary and recommended_action.

Security boundary

The hardened defaults reduce direct algorithm-oracle, transport, and token-confusion risk. They do not provide DRM: reverse engineering cannot be made impossible for distributed Python code or a queryable black-box service. Keep proprietary algorithms and rate-limit/model-extraction defenses on the hosted control plane; treat full as trusted local/operator mode only.

Remote control-plane URLs require HTTPS by default. Plain HTTP is accepted only for exact loopback addresses, unless the development-only ADAPTORCH_MCP_ALLOW_INSECURE_CONTROL_PLANE=1 opt-in is set. The HTTP MCP listener itself accepts only loopback binds.

Diagnostics and smoke tests

adaptorch-mcp-doctor
adaptorch-mcp-doctor --json
adaptorch-mcp-doctor --strict

The doctor command reports package availability, expected MCP tools, redacted environment metadata, and controlPlane base-url plus transport-policy validity without printing token values. The control-plane token entry adds formatRecognized (prefix check against the dashboard ado_*/ak_* key contract, booleans only). --strict fails for invalid exposure profiles, malformed URLs, or remote plaintext URLs without the explicit development opt-in.

export ADAPTORCH_CONTROL_PLANE_TOKEN="<ado_live_your-key>"
adaptorch-mcp-smoke --base-url https://adaptorch.com

Expected JSON includes "ok": true, adaptorch_plan_catalog, and the expected core tool subset. If no base URL is supplied, smoke targets http://127.0.0.1:8000 for local development. Add repeatable --expected-tool <name> flags when validating a specific hosted/core release.

Example configs

  • ../../examples/claude_desktop_config.json
  • ../../examples/omk.mcp.json
  • ../../examples/mcp-http.env.example

Checked-in examples use placeholders or environment interpolation. Fill real URLs and tokens only in local, uncommitted config files. For shared or production clients, avoid auto-approving run, artifact, and trace readers unless those payloads are already sanitized.

HTTP app factory

create_default_mcp_http_app() embeds the canonical AdaptOrch MCP HTTP ASGI app. It requires an upstream control-plane token in the environment.

export ADAPTORCH_CONTROL_PLANE_TOKEN="<upstream-adaptorch-token>"
export ADAPTORCH_CONTROL_PLANE_BASE_URL="https://adaptorch.com"
export ADAPTORCH_MCP_HTTP_AUTH_TOKEN="<client-facing-mcp-token>"  # distinct from upstream
from adaptorch_mcp import create_default_mcp_http_app

app = create_default_mcp_http_app()

Metadata

Release files for adaptorch-mcp 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adaptorch-mcp 0.5.1
File Size Uploaded
adaptorch_mcp-0.5.1.tar.gz 51.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for adaptorch-mcp 0.5.1
File Interpreter ABI Platform
adaptorch_mcp-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 84.7 kB

Release files / adaptorch_mcp-0.5.1.tar.gz

Download URL adaptorch_mcp-0.5.1.tar.gz
Size 51.0 kB
Tags Source
SHA-256 checksum
How to use checksums
375d93895e1757f221867071dafb3e887cd20074376da39acfbdd9475c84e65a
BLAKE2b-256 checksum
How to use checksums
b7f198d5733f41950876c23ce2a2c9d6ad24fd2ac575a02044f6b225031aac9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / adaptorch_mcp-0.5.1-py3-none-any.whl

Download URL adaptorch_mcp-0.5.1-py3-none-any.whl
Size 33.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1ee30ea6afe9fe94a4fc3c40280f841794abddeb82cdac7f2217f7e9f6829c3c
BLAKE2b-256 checksum
How to use checksums
d45eb1a2a7f50eb8a55aa568fad0b0b7209ad86117e2f469f6292796d3e5f96f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.5.2

2 release files

This release

0.5.1 This release

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page