SETTO API

MCP server

Connect Claude Code, Cursor or any Streamable HTTP MCP client to the SETTO External API with six read-only tools, authenticated by the same organization API token.

SETTO publishes a remote Model Context Protocol server at https://docs.setto.io/mcp. It exposes the same six read-only endpoints as the HTTP API as MCP tools, so an assistant can answer "how many teams are in the Cuarta Fuerza category?" by calling a tool instead of you pasting JSON into a chat. It takes the same organization API token you already use — there is nothing extra to provision.

Endpoint

PropertyValue
URLhttps://docs.setto.io/mcp
TransportStreamable HTTP
AuthAuthorization: Bearer setto_live_… — the same organization token as the REST API
AccessRead-only

The server is a thin proxy: it forwards each tool call to the External API with your token and hands the JSON back. Anything the API refuses — another organization's tournament, a write — the MCP server refuses too.

Tools

ToolEndpoint behind itGuide
meGET /v1/external/meAuthentication
list_tournamentsGET /v1/external/tournamentsList tournaments
get_tournamentGET /v1/external/tournaments/{idx}Get a tournament
list_divisionsGET /v1/external/tournaments/{idx}/divisionsList divisions
list_teamsGET /v1/external/tournaments/{idx}/teamsList teams
get_roundGET /v1/external/rounds/{idx}Get a round

Arguments mirror the query parameters documented for each endpoint, including populate, limit/offset and the division filter. There is no tool that writes.

Connect a client

claude mcp add --transport http setto https://docs.setto.io/mcp \
  --header "Authorization: Bearer $SETTO_API_TOKEN"

Export SETTO_API_TOKEN in the shell you run that command from, so the secret never appears in your shell history. Confirm with /mcp inside Claude Code — setto should list the six tools.

Clients this does not work with yet

No OAuth in v1

Claude Desktop and claude.ai custom connectors, and ChatGPT's connectors, require the MCP server to implement OAuth. Version 1 of the SETTO MCP server authenticates with a bearer token only, so those clients cannot connect to it.

Until OAuth lands, use one of these instead:

  • Claude Code or Cursor — both accept a static Authorization header, as above.
  • The Agent Skillsetto-api teaches any agent the six endpoints and it makes plain HTTP calls. That works in every client, including the ones above.
  • The REST API directly — see the quickstart.

Security notes

  • The token is a header, not a secret the model sees. Configure it in the client, never paste it into a conversation — a pasted token ends up in the transcript and, depending on your setup, in logs.
  • Use the environment. $SETTO_API_TOKEN in Claude Code, ${env:…} in Cursor. Do not commit .cursor/mcp.json with a literal token in it.
  • Scope what you can. A token reads one organization and nothing else. If you are connecting a shared workspace, create a dedicated token for it so you can revoke it alone.
  • Read-only by construction. There is no tool that mutates SETTO data, so a confused or prompt-injected model cannot change a draw or a score through this server.
  • It counts against your rate limit. Tool calls are API requests: 120 per 60 seconds per token, shared with anything else using that token. See Rate limits.

A sample conversation

You: Which categories in Torneo Apertura 2026 still have unfinished games?

Assistant: calls list_tournaments with status: "IN_PROGRESS" — found Torneo Apertura 2026 (3c9b7f52-…).

calls list_divisions with that tournament and populate: "rounds" — three categories, five rounds between them.

calls get_round for each round with populate: "games"

Cuarta Fuerza Varonil has 4 of 12 games still UPCOMING; Primera Fuerza Femenil is complete; Mixta B has 1 game left, scheduled for Saturday 10:00.

Three tool names, no JSON on your screen. The assistant is reading the same payloads documented in the guides — if a number looks wrong, ask it which tool call produced it and check that endpoint by hand.

  • Agent Skills — the client-agnostic fallback, and what to install when MCP is not an option.
  • Docs for LLMsllms.txt, per-page Markdown, /openapi.json.
  • Rate limits — the budget your tool calls share.

On this page