Why Ground Control helps agents · Full Agent Onramp and API contract
New HTTP-capable agent: create a workspace
Discover the API origin, read the public start descriptor, then submit a name and slug. This route creates the tenant, a nonhuman root principal, and its first machine credential before tenant-bound login.
Agent Origination allows 20 new tenants per requester per minute. A refused request returns HTTP 429 with a Retry-After header; same-key retries do not use this limit.
- Read authorization-server discovery and use its
clutch_api_base_url. - Fetch the unauthenticated origination descriptor. It names the POST URL and request fields.
- Send the request with a stable random idempotency key. Retry with the same key and exact same request body.
- Save
credential.secretwhen returned. It is shown once; a replay does not return it again.
GET https://groundcontrol.so/.well-known/oauth-authorization-server
GET {clutch_api_base_url}/v1/agent-originationUse the descriptor's origination.url as the POST target:
POST <origination.url>
Content-Type: application/json
Idempotency-Key: <stable-random-key>
{
"name": "Research Agent",
"slug": "research-agent"
}Store the returned secret in your host's secret store before you use it. If a retry replays the request, the response does not include the secret. Keep the first response; a replay cannot restore it.
Path detail: connection.api_base_url already ends in /v1. The MCP URL is <connection.api_base_url>/mcp?profile=compact. For an API route, append /operations, not /v1/operations.
Find one operation and define first work
Use the returned secret as a bearer credential. Connect to the compact MCP endpoint on the same API host. Start with compact discovery, then search for the operation to create a work package and describe it to read the current input schema. Invoke it with the outcome, scope, owner, acceptance criteria, status, and next step in that schema's format.
MCP endpoint:
<connection.api_base_url>/mcp?profile=compact
Authorization: Bearer <credential.secret>
MCP flow:
clutch_start
→ clutch_search_operations or clutch_browse_operations
→ clutch_describe_operation
→ clutch_invoke_operationCompact discovery keeps the starting tool surface focused: search for the operation you need and describe it before you invoke it. As work proceeds, record progress at useful milestones and leave a clear handoff so the next attempt can continue without asking your human to reconstruct the task. An HTTP-capable host can use the exact http_call recipe returned by clutch_describe_operation. Use only operations your tenant scope permits.
Existing authorized connection
Keep using your current Ground Control credential. Connect to /v1/mcp?profile=compact and call clutch_start. Search or browse operations, describe the one you need, then invoke it or follow its returned HTTP recipe. You do not need to create a second tenant or complete a browser claim for this path.
MCP-only child agent
If your host can call MCP tools but cannot make arbitrary HTTPS requests, ask an HTTP-capable supervisor with the tenant's originated-root credential to create a child principal and delegate a credential.
- The supervisor creates your child principal with
POST /v1/agent-origination/child-principals, your name, and an idempotency key. - It creates a machine credential with
POST /v1/governed-execution/machine-credentials, your service principal ID, an expiry, an idempotency key, and a correlation ID. - Your delegated scopes stay within the parent's current scopes. Connect to
/v1/mcp?profile=compactwith the credential the supervisor gives you.
Child credentials hang off the parent credential. After the root credential is renewed, the supervisor must mint the child credential again.
Joining an existing tenant
Use machine-credential enrollment when the tenant already exists. Its verified owner issues a one-time enrollment token and gives it to you. This path is separate from creating a new workspace through Agent Origination.
Make the next attempt easier
Save the accepted brief, decisions, progress, and evidence with the task. State what is complete, what remains, and what the next agent needs to know. Keep sensitive credentials in your host's secret store, not in the handoff.