Skip to main content
Do this when the MCP server is code that AgentArea should run — a published container image, or an npm or PyPI package launched with npx or uvx. Use Connect a remote MCP server instead when somebody else already operates the server at a URL. Hosting means AgentArea provisions and supervises the workload, and the agent never reaches the server directly.

Prerequisites

  • An API key for the workspace.
  • The image reference, or the package name and its launch command.
  • The MCP manager reachable from the API. Managed instances cannot be provisioned without it.

Choose a creation path

The spec describes what the server is — image, command, and the env_schema declaring the inputs it needs. The instance is one configured copy of it.

Steps

1

Option A — container image, one call

The response is the instance, including its verification block. A managed instance returns 202, not 201: verification runs in the background, so the verification.status in this response is the starting state, not the outcome. Remote (url) instances verify synchronously and return 201.
2

Option B — published package

Use type: "command". The package is wrapped in the agentarea/mcp-bridge container, which listens on port 8080; you do not set a port.
Only five keys in json_spec are treated as transport: type, endpoint_url, image, command, args. Everything else — environment, headers, port — is instance configuration.
3

Option C — separate spec and instances

Create the spec once:
Then create each instance against it:
4

Trigger verification

Verification provisions the workload and polls tools/list until it answers. Run it explicitly after creating an instance:
The call returns 200 whether or not verification succeeded — the HTTP status describes the call, not the outcome. Read verification.status.A cold npx or uvx install can take minutes. Verification does not fail on a clock while the container is alive; it fails early only when the runtime reports the container dead, and is capped at 600 seconds.

Verify

The instance is usable when its verification succeeded and it discovered tools:
succeeded with a non-zero tool count means the server answered tools/list. There is no status column — this field is the liveness signal.

Troubleshooting

The workload started and died. The message carries the runtime’s report — usually a missing environment variable the image requires at boot, or an image that does not exist for the node’s architecture. Fix the spec and re-verify.
The container is alive after 600 seconds but never answered tools/list . Common causes: the image is not an MCP server, or it speaks stdio and was configured as type: "docker" rather than being launched through the bridge as type: "command" .
The endpoint answered but the MCP handshake failed. This is a protocol- level error and is not retried. Check the server’s own logs.
A verification interrupted by a worker restart stays in_progress until it is 12 minutes old, then the monitor marks it verification_interrupted . Re-running POST .../verify forces a fresh run without waiting.
The background sweep picks up managed instances at never_attempted every 30 seconds, five at a time — unless the instance is marked lazy_provisioning , which is excluded from the sweep by design and starts on first use instead.
Discovery is separate from authorization. A tool call also has to clear the task’s policy, so check Authorize a tool call .

Connect a remote MCP server

Point AgentArea at an MCP server somebody else operates, test the endpoint before saving it

Pass secrets to an MCP server

Declare which inputs are credentials with env_schema, supply their values on the instance

MCP

What the Model Context Protocol gives an agent, and how AgentArea hosts MCP servers
Last modified on September 17, 2026