Skip to content

Provisioning API · Internal testing only

Connect with MCP

The builders.ac MCP server lets compatible AI clients manage workspaces, domains, personas, inboxes, and operations through the complete Provisioning API toolset. It is hosted and managed by builders.ac, so there is no package to install and no local server to keep running.

Streamable HTTP
https://mcp.builders.ac/mcp

The /mcp path is the Streamable HTTP transport endpoint. Use the complete URL shown above.

OAuth is the recommended connection method. On the first connection, your client opens a browser so you can sign in to builders.ac and approve access. You do not need to create or paste an API Key or API Secret for OAuth. Retrieving encrypted inbox or domain credentials requires an API-key connection; see Encrypted responses.

  1. In ChatGPT, open Settings → Security and login and enable Developer mode.
  2. Open Plugins, select the plus button, and create a connection named builders.ac.
  3. Under Connection, enter the server URL shown above.
  4. Create the connection, complete the browser authorization, and review the discovered tools.
  5. Start a new chat and add builders.ac from the tools menu.

Developer mode and custom connections can be limited by your ChatGPT plan or workspace policy. See Connect and test an MCP server in ChatGPT.

Add the remote HTTP server:

Terminal
claude mcp add --transport http builders-ac https://mcp.builders.ac/mcp

Start Claude Code, run /mcp, select builders-ac, and complete the browser authorization. Use claude mcp list later to check the connection.

See Connect Claude Code to tools with MCP.

Configure a remote Streamable HTTP MCP server with the URL shown above and choose OAuth when your client asks for an authentication method. In addition to OAuth discovery and dynamic client registration, the client must use an HTTP loopback callback on localhost, 127.0.0.1, or [::1]. Other hosted callback domains are not accepted.

If your client asks for the transport separately, choose Streamable HTTP, not SSE or stdio.

After connecting, ask your client:

  • “Which builders.ac account am I connected as?”
  • “List my workspaces.”
  • “Show the personas in my workspace.”
  • “List my provisioning operations and their status.”

For the complete setup lifecycle, follow Set Up Your Sending Infrastructure with AI. It covers owned domains, nameservers, mailbox creation, sequencer connections, and the manual warmup checkpoint, with the same internal-testing limitations.

The server exposes 47 tools: all 44 Provisioning operations and three helpers. The default tools/list response includes the entire current catalog. Provisioning names and input schemas come from the OpenAPI contract, using its operation IDs as tool names. See the Provisioning guide for resource behavior.

Area Tools
Helpers me, sending_ac_info, provisioning_api_key_setup
Account getAuthenticatedAccount, listEncryptionKeys
Meta getApiIndex, getProvisioningOpenApi, getProvisioningProblem, listProvisioningProblems
Workspaces listWorkspaces, createWorkspace, getWorkspace, updateWorkspace, deleteWorkspace, archiveWorkspace, unarchiveWorkspace
Personas listPersonas, createPersona, getPersona, updatePersona, deletePersona
Domains listDomains, getDomain, updateDomain, deleteDomain, connectDomains, reconnectDomain, buyDomains, renewDomain, setDomainRedirect, cloneDomain, setDomainSequencer, removeDomainSequencer
Inboxes listInboxes, createInboxes, getInbox, updateInbox, deprovisionInboxes, uploadInboxes
Provider accounts listProviderAccounts, createProviderAccount, getProviderAccount, updateProviderAccount, deleteProviderAccount
Operations listOperations, getOperation, cancelOperation

The three helpers take no arguments. me returns the connected user’s ID, name, and email; sending_ac_info describes builders.ac; provisioning_api_key_setup directs you to create a builders.ac API credential and reconnect using it.

MCP tools are invoked through tools/call. Let your client discover their schemas and call them. The server exposes tools only, with no MCP resources or prompts.

Provisioning tools use the API’s path and query parameter names, such as wsp, dom, inb, and limit. JSON request fields go inside body. A required Idempotency-Key header becomes a required idempotency_key argument. For example, createWorkspace accepts:

{
"idempotency_key": "a553bfc5-0651-4b21-a847-6d12507b7c9f",
"body": { "name": "Outreach" }
}

Your agent can generate the idempotency key. Use a new key for a new intended operation and reuse the same key and arguments when retrying that operation. Changing the key on retry can create duplicate work. If an execution’s outcome is uncertain, check the resource or operation status before repeating a mutation.

createInboxes accepts up to 150 entries, but the resulting capacity-occupying total on the Domain must be exactly 50, 75, or 150. On a fresh Domain, request one of those totals; on an existing Domain, use the allowed_additions returned with domain_inbox_count_invalid to choose a tier-valid top-up. Paid-slot availability is a separate check.

Provisioning results contain status, relevant response headers, and the API body. Validation, tenant access, feature flags, rate limits, pagination, and idempotency follow the API. HTTP errors appear as tool errors. Asynchronous actions return operation data and a Location header when the API supplies one; use getOperation to check progress. Domain purchase (buyDomains) and renewal (renewDomain) currently return 501.

deleteWorkspace, deletePersona, deleteDomain, deprovisionInboxes, removeDomainSequencer, and deleteProviderAccount execute when called. They carry destructiveHint: true, so your AI client may show its own approval dialog. The MCP server does not add a confirmation page, typed confirmation, or proof challenge. An API Secret is not needed for destructive MCP calls.

Direct HTTP calls to the Provisioning API still require its sealed-proof flow for these operations. That requirement applies to the public API, not the authenticated MCP tools.

getInbox and getDomain require API-key authentication because their responses can contain credentials encrypted for that API Key. MCP returns the same encrypted fields as the API. Decrypt the ciphertext locally with the corresponding API Secret if you need to read it. There is no browser secret-view page, and the AI client receives no decrypted credential values from these responses.

OAuth calls to either tool return api_key_required before the operation runs, with a link to create a builders.ac API credential. Reconnect through a client that supports API-key bearer authentication to use those tools. You can also call provisioning_api_key_setup for these instructions.

MCP Inspector is useful when you want to test the server independently of an AI client.

  1. Start the Inspector:

    Terminal window
    npx @modelcontextprotocol/inspector@latest
  2. Open the local URL printed in your terminal.

  3. Select Streamable HTTP, enter the builders.ac server URL, and select Connect.

  4. If authentication is requested, open Auth settings, run the quick OAuth flow, then connect again.

  5. Select List Tools. You should see all 47 tools, including listWorkspaces, deleteWorkspace, and provisioning_api_key_setup.

Interactive MCP clients should use OAuth. The client discovers the builders.ac authorization server, registers itself, and uses authorization code with PKCE. Access is limited to the mcp:use scope, and a compatible client manages access and refresh tokens for you. OAuth resolves your Provisioning account automatically on first use; there is no key-generation or key-download step during consent.

Clients that support bearer authentication may instead send an existing Provisioning API Key. Configure this in the client’s authentication settings:

Authorization: Bearer age1…

Send only the API Key. Never send the API Secret to the MCP server or store it in an MCP client configuration.

What you see What it means What to do
405 Method Not Allowed in a browser Browsers send GET; the MCP transport uses POST Connect through an MCP client or MCP Inspector
404 Not Found at the hostname root The transport endpoint is at /mcp Use the complete server URL shown above, including /mcp
The browser authorization does not open The client did not start OAuth Choose OAuth, reconnect, or verify with MCP Inspector
api_key_required getInbox or getDomain was called through OAuth Request an API Key with provisioning_api_key_setup and reconnect using it
The tools are missing or stale The client cached older server metadata Refresh or rescan the connection, then start a new chat
The client supports only SSE or local MCP It cannot use this Streamable HTTP endpoint Use a client with native Streamable HTTP and OAuth support
Authorization repeatedly fails The client’s saved session may be stale Disconnect, clear the builders-ac authorization, and connect again

Opening the server URL in a browser is not a health check. A 405 response there is expected; listing tools through MCP Inspector is the definitive connection test.