Base:
- Daemon binds to
127.0.0.1:<port>. - Default port:
9090.
Endpoints:
GET /v1/capabilitiesGET /v1/capabilities/:idPOST /v1/tools/callGET /v1/resourcesPOST /v1/resources/readGET /v1/promptsPOST /v1/prompts/get
Response semantics:
- list endpoints return
{ "version": "v1", ... }payloads - execution/read/get endpoints return normalized envelope:
ok,request_id,trace_id,data,error
Error codes:
TOOL_NOT_FOUNDRESOURCE_NOT_FOUNDPROMPT_NOT_FOUNDSERVER_UNREACHABLEINVALID_ARGSUPSTREAM_TIMEOUTUPSTREAM_ERRORINTERNAL_ERROR
Run:
warmplane mcp-server --config mcp_servers.jsonExposed MCP tools (lightweight schemas):
capabilities_listcapability_describecapability_callresources_listresource_readprompts_listprompt_get
These tools return the same lightweight JSON payloads used by CLI/HTTP facade semantics.
Also exposed natively via MCP methods:
- resources:
resources/list,resources/read - prompts:
prompts/list,prompts/get
Configured in mcp_servers.json:
authStorePath: optional shared MCP auth-store path overridecapabilityAliases:<server>.<tool>-> capability IDresourceAliases:<server>.<resource-uri>-> resource IDpromptAliases:<server>.<prompt-name>-> prompt IDpolicy.allow/policy.deny: ID pattern gates across tools/resources/promptspolicy.redactKeys: redaction keys for logged payloads
mcpServers.<id> must define exactly one transport selector:
command: stdio transporturl: streamable HTTP transport (JSON + SSE)
If both or neither are present, startup fails with config validation errors.
command(required for stdio)args(optional)env(optional)
url(required for HTTP/SSE)protocolVersion(optional, default2025-11-25)allowStateless(optional; defaults to rmcp transport behavior)headers(optional map of static request headers)auth(optional):- bearer:
{ "type": "bearer", "token" | "tokenEnv" } - basic:
{ "type": "basic", "username", "password" | "passwordEnv" } - oauth:
{ "type": "oauth", "clientId"?, "clientSecret" | "clientSecretEnv"?, "scope"?, "tokenStoreKey"? }
- bearer:
For bearer/basic auth, exactly one secret source must be set.
For oauth auth, Warmplane reads the shared mcp-auth.json store and injects the stored upstream bearer token into outbound HTTP requests.
warmplane auth status --config mcp_servers.jsonwarmplane auth import --config mcp_servers.json <id> --access-token-env <ENV>warmplane auth logout --config mcp_servers.json <id>