Red Center Studio
Back to WebDesk for AI agents WebDesk / For AI agents / Docs

WebDesk MCP server docs.

Everything an agent builder needs: the tools, their inputs and outputs, auth, credits, errors, limits and setup for common clients. Plus a free tools server that needs no key.

Overview

  • WebDesk server: https://redcenterstudio.com/api/webdesk/mcp. Paid, bearer API key, one credit per website.
  • Free tools server: https://redcenterstudio.com/api/tools/mcp. No key: geo_audit, spof_scan and decode_error.
  • Transport: MCP Streamable HTTP. Both servers are stateless: no session id, one JSON-RPC message or batch per POST.

Auth

Create a key on the WebDesk for AI agents page. It is free, shown once and starts with wd_; only a fingerprint is stored. Send it on every request:

Authorization: Bearer wd_YOUR_API_KEY

Anyone with the key can spend its credits, so keep it in a secret store, not in code. Lost a key? Create a new one and email Hello@redcenterstudio.com with your Stripe receipt to move unused credits.

Credits

One credit creates one complete one-page website with one free redo. Packs: 1 website for $29 USD; 5 websites for $135 USD ($27 each); 10 websites for $250 USD ($25 each); 25 websites for $575 USD ($23 each). Buy them on the agents page or with buy_credits; credits are added as soon as Stripe confirms payment. Refunds follow the Terms.

WebDesk tools

create_website

Input: The brief fields above.

Output: job_id, status, and payment: { type: "paid", order_id } when a credit was spent, { type: "payment_required", ... } when the key has no credits, or { type: "checkout", checkout_url } with payment_method stripe.

Building runs in the background. Poll get_website_status until status is ready.

get_website_status

Input: job_id (from create_website).

Output: job_id, status, message, paid, version, redos_left, preview_url (short-lived, or null), download_available, expires_at.

Read-only. Poll every 10 to 20 seconds; a website usually takes a few minutes.

Input: job_id.

Output: job_id, url (a signed link to the ZIP), expires_at.

Read-only. The link lasts 15 minutes; call again for a new one. Files are kept for 30 days after delivery.

revise_website

Input: job_id, notes (10 to 1,000 characters, what to change), optional tone, optional palette.

Output: job_id, status, redos_left.

Uses the one free redo. Only works once per website, after it is ready.

get_credit_balance

Input: None.

Output: balance, and packs: [{ pack, credits, price, currency }].

Read-only.

buy_credits

Input: pack: the pack id, which is its number of credits (1, 5, 10, 25).

Output: checkout_url, pack, credits, price, currency, note.

A person, or an agent able to pay by card, completes payment at checkout_url. Credits are added when Stripe confirms the payment.

Brief fields for create_website

FieldTypeRequiredWhat it is
businessNamestring, 2 to 80 charactersYesThe business name, as it should appear on the site.
businessTypeone of: trades_and_home_services, cafe_or_restaurant, salon_or_beauty, health_and_wellness, professional_services, retail_or_shop, creative_or_studio, other_small_businessYesThe closest kind of business.
servicesstring, 3 to 600 charactersYesWhat the business offers: a sentence or a comma-separated list.
locationstring, 2 to 120 charactersYesSuburb, town or region the business serves.
tonefriendly, professional, bold or calmNo (friendly)Tone of voice for the copy.
paletteharbour, ember, forest, twilight, plum or graphiteNo (harbour)Colour palette.
aboutstring, up to 600 charactersNoAnything else worth knowing, such as history, specialties or hours.
contactEmailemail addressNoPublic email shown on the site.
contactPhonedigits, spaces, + - ( ) and dots, up to 40 charactersNoPublic phone number shown on the site.
langen or frNo (en)Language of the buyer's messages, checkout and emails.
siteLangen or frNo (same as lang)Language the website is written in.
payment_methodcredits or stripeNo (credits)credits spends one credit; stripe returns a checkout link for a person to pay for this one website.

Job statuses

StatusMeaning
queuedPaid and waiting to be built.
generatingBeing written and built.
readyFinished: preview and download are available.
failedSomething went wrong. The message says what to do next.
awaiting_paymentCreated with payment_method stripe and waiting for the checkout to be paid.

Websites are written by AI from the brief. Check every word before publishing.

Errors

A tool that fails returns isError: true with a JSON body { "error": code, "message": text, "details": ... }. The codes:

CodeWhat to do
unauthorized (HTTP 401)Missing or unknown API key. Send Authorization: Bearer wd_...
rate_limited (HTTP 429 or tool error)Too many requests. Wait a minute and retry.
invalid_inputA field is missing or out of range. details lists the fields.
payment_requiredNo credits left. Call buy_credits, or create_website with payment_method stripe.
not_foundNo job with that id for this API key.
forbiddenThe job belongs to another key.
conflictThe job is not in the right state for that call, for example a redo before the website is ready, or a second redo.
expiredThe files were deleted after the download period.
unavailableThe service is paused or a dependency is down. Retry later.
internalUnexpected error. Retry once, then email us with the job id.

Rate limits

  • WebDesk server: 60 requests a minute per connection.
  • geo_audit: 5 audits a minute per connection.
  • spof_scan: 6 scans a minute and about 20 fresh scans an hour per connection. A domain scanned in the last hour is answered from cache and does not count.
  • decode_error: no separate limit beyond normal abuse protection.

Over a limit, wait a minute and retry. Do not retry in a tight loop.

Client setup

Claude Code

claude mcp add --transport http webdesk https://redcenterstudio.com/api/webdesk/mcp --header "Authorization: Bearer wd_YOUR_API_KEY"

Free tools, no key:

claude mcp add --transport http rcs-tools https://redcenterstudio.com/api/tools/mcp

Claude Desktop

The free tools server works as a custom connector: Settings, Connectors, Add custom connector, then paste https://redcenterstudio.com/api/tools/mcp. For WebDesk, which needs a bearer key, add it to claude_desktop_config.json through the mcp-remote bridge (needs Node.js):

{
  "mcpServers": {
    "webdesk": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://redcenterstudio.com/api/webdesk/mcp",
        "--header",
        "Authorization:${WEBDESK_AUTH}"
      ],
      "env": {
        "WEBDESK_AUTH": "Bearer wd_YOUR_API_KEY"
      }
    }
  }
}

Cursor

In ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "webdesk": {
      "url": "https://redcenterstudio.com/api/webdesk/mcp",
      "headers": {
        "Authorization": "Bearer wd_YOUR_API_KEY"
      }
    },
    "rcs-tools": {
      "url": "https://redcenterstudio.com/api/tools/mcp"
    }
  }
}

Any Streamable HTTP client

POST JSON-RPC to the server address. The WebDesk server needs the bearer key and an Accept header that allows application/json and text/event-stream:

curl -s https://redcenterstudio.com/api/webdesk/mcp \
  -H "Authorization: Bearer wd_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

The free tools server answers plain JSON:

curl -s https://redcenterstudio.com/api/tools/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"decode_error","arguments":{"error":"ESOCKETTIMEDOUT"}}}'

Free tools server

Three checks from the free tools pages, as MCP tools. No key and no sign-up. Each result is JSON. The decoder also names the matching fixed-price fix where one exists.

ToolInputOutputPaid next step
geo_auditurlscore out of 100, grade, each check with pass, warn or fail, the detected platform and copy-paste fixes (structured data, llms.txt, robots.txt).GEO Foundation Package, $499 USD
spof_scandomainthe providers behind email, sign-in, DNS, website hosting, outbound email and SaaS, what one outage would stop, a risk score and recommendations.Resilience Check, $299 USD
decode_errorerrorup to five matching Bubble® errors, each with the likely cause, a link to the full fix and the fixed-price service that fixes it.App Triage or API Rescue, by error

geo_audit reads the home page, robots.txt, sitemap.xml and llms.txt of the address you give. spof_scan reads public DNS only. Nothing about the caller is stored.

Help

Questions or a bug? Email Hello@redcenterstudio.com with the job id. Pricing and API keys: WebDesk for AI agents. Client examples and the registry listing: webdesk-mcp on GitHub.