The HTTP API and MCP endpoint share the same account, wallet and catalog contracts. MCP is a transport for the four control tools; it is not a second catalog or credential plane.

## HTTP API

The API is rooted at `https://api.scrollport.com/v1`. Setup uses `/auth/device` and `/auth/token`; wallet uses `/wallet`; runs use `/runs` and `/runs/:id`. Public catalog search is available without an account, while agent discovery uses the authenticated control-tool surface.

## MCP over Streamable HTTP

The MCP endpoint accepts JSON-RPC messages at the MCP route with the same bearer key. The server implements `initialize`, `ping`, `tools/list` and `tools/call`; it does not advertise resources, prompts or sampling.

`tools/list` returns exactly `discover`, `inspect`, `run` and `wallet`. `tools/call` wraps a successful or teaching-error result so the model sees the `hint` instead of losing it as a transport exception.

## Stateless resume

The MCP server does not issue a session id. A `run_id` stored in the API database is enough to resume a pending run through any instance. This is why `run` is both the start and resume operation and there is no fifth status tool.

## Protocol errors and tool errors

Malformed JSON-RPC requests are protocol errors. A well-formed tool call with an invalid input, missing connection, insufficient balance or failed provider execution is a tool result with `isError: true` and a teaching payload. Read [errors](https://scrollport.com/docs/reference/errors) before deciding whether to retry.