Direct answer

Add https://api.spyn3.com/agent/mcp to any MCP client that supports remote (Streamable HTTP) servers. Authenticate with a workspace API key in the Authorization header, or let a client that supports MCP OAuth sign in through SPYN3's consent screen.

What you need

  • A SPYN3 account — the Free plan needs no card.
  • At least one connected source: an MCP server from the gallery, a Postgres database, a REST API or Google Drive.
  • Either an API key with the call:tools permission (Dashboard → API keys; the secret is shown once), or a client that runs the MCP authorization flow.

Add the server

The dashboard's MCP page shows this configuration with your endpoint filled in. In Claude Code:

Claude Codeshell
claude mcp add --transport http spyn3 https://api.spyn3.com/agent/mcp \
  --header "Authorization: Bearer $SPYN3_API_KEY"

In clients that read a server map — Cursor's mcp.json and most others:

MCP client configurationJSON
{
  "mcpServers": {
    "spyn3": {
      "type": "http",
      "url": "https://api.spyn3.com/agent/mcp",
      "headers": {
        "Authorization": "Bearer ${SPYN3_API_KEY}"
      }
    }
  }
}

A client that supports MCP OAuth needs only the URL. It discovers SPYN3's authorization server from https://api.spyn3.com/.well-known/oauth-protected-resource, and you approve the workspace and scopes on SPYN3's consent screen. Details are in authentication.

Keep the key out of the file

Reference the key through an environment variable, as above. Never commit a real spyn3_live_ key, paste it into an issue, or show it in a screenshot. Revoke a leaked key in the dashboard; it stops working immediately.

What the agent sees

A connected agent starts with a short list. Each connected source is a folder, and its tools stay hidden until the agent opens it.

NAVlist_toolsetsThe connected sources, how many tools each offers, and whether one was unreachable at the last check.
NAVenable_toolsetOpen one source. Answers with its tools and their arguments; they also join the list as <source>/<tool>.
NAVdisable_toolsetClose a source again to keep the list short.
CALLcall_toolCall a tool of an opened source by name: call_tool(source, tool, arguments). Works in every client, before its tool list refreshes.
CALL<source>/<tool>An upstream tool, proxied with that source's credentials. linear/list_issues, postgres/query.
READlist_sourcesThe workspace's connected sources and their state.
READbilling_statusPlan, tool calls used this month, and what is included.
ACTupgrade_planReturns a checkout link for a higher plan. A human completes the payment.

The source name is the connector's label in the dashboard, lower-cased: a connector labelled Linear becomes linear/…. Namespacing is what lets two upstreams both offer a search.

A session

tools/call sequencetext
list_toolsets()
→ github · 41 tool(s) · disabled
  linear · 23 tool(s) · disabled
  postgres · 3 tool(s) · disabled

enable_toolset(source: "linear")
→ Enabled linear: 23 tool(s). Call them as linear/<tool>, or with call_tool(…)
  - list_issues(assignee?, state?, limit?): List issues…
  …

call_tool(source: "linear", tool: "list_issues", arguments: {assignee: "me", state: "started"})
→ …Linear's answer, unchanged…

Which folders are open is remembered per agent credential. Two agents that share a workspace each keep their own list short.

Tool-list refresh

The endpoint is stateless, so it can't push a list_changed notification. A newly opened folder's tools appear the next time the client calls tools/list, and SPYN3 marks a federated list as cacheable for only 30 seconds so that happens quickly. Many clients (Claude Code among them) keep their first list for the whole session, so enable_toolset answers with the opened tools and their arguments, and call_tool calls them without waiting for a refresh. No reconnect needed.

When a source fails

SPYN3 is a proxy, so an upstream's failure comes back as an error that names the source and gives the reason, never as an empty result that reads like "nothing found". A source that keeps failing is circuit-broken, so a dead upstream degrades only its own folder. Its tools stay listed with a warning, because they very probably still exist.

Limits

  • 120 requests per minute per agent credential.
  • Your plan's monthly tool calls: 500 on Free (hard cap), 10,000 on Pro, 50,000 on Team. Only calls that reach a connected source count; browsing folders is free.
  • Remote MCP servers only. Servers that run as a local process (stdio) are not supported yet.

One URL should outlive one client

Connect your first source

Free covers 500 tool calls a month. Connect one system you already use and point the agent you already have at it.

Start free