dot·sweep

POST /mcp — the MCP server

No API key, no account, no signup. Responses are JSON, CORS is open, and every endpoint is read-only — nothing here can register, buy or change anything.

The endpoint

https://dotsweep.com/mcp — one URL, nothing to install and nothing running on your machine. Model Context Protocol over JSON-RPC, streamable HTTP.

curl -X POST https://dotsweep.com/mcp -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Tools

All three are read-only. Nothing here registers, buys or transfers anything, and the server holds no account of yours to change — which is why there is no dry-run flag and no idempotency key in this API.

A GET here answers 405, and that is correct

Every message is a POST. There is no server-initiated stream, so a GET on this URL returns 405 with Allow: POST rather than a page or a stream. A client reporting that as an error is describing the endpoint working.

It adds no capability

This is a transport over the endpoints documented here, and it holds no logic of its own. It exists so the service can be added to a client and listed in MCP registries. If you are writing code rather than configuring an assistant, call the HTTP endpoints directly.

Adding it to a client

Setup instructions per client — Claude, Claude Code, Cursor, VS Code and Codex, each with the exact menu path. There is no transport to choose in any of them, and no key to paste.

Errors

{ "error": { "code": "invalid_domain", "message": "...", "hint": "..." } }

Codes: invalid_domain, bad_body, batch_too_large, rate_limited, unknown_endpoint, method_not_allowed, internal_error. The hint says what to do differently. For anything other than rate_limited and internal_error, repeating the same call fails the same way.

Rate limit

120 requests a minute per client, counted as requests rather than domains. Edge cache hits never reach the Worker and are not counted at all.

That rate is the whole quota. There is no daily or monthly ceiling, no credit balance and no trial that expires, so a job that stays under the rate can run as long as it needs to. Said plainly because an unstated limit gets read as a hidden one, and a caller who plans around a monthly cap is planning around nothing.

The other endpoints

The whole reference on one page → · as plain text →