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:toolspermission (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 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:
{
"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.
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.
list_toolsetsThe connected sources, how many tools each offers, and whether one was unreachable at the last check.enable_toolsetOpen one source. Answers with its tools and their arguments; they also join the list as <source>/<tool>.disable_toolsetClose a source again to keep the list short.call_toolCall a tool of an opened source by name: call_tool(source, tool, arguments). Works in every client, before its tool list refreshes.<source>/<tool>An upstream tool, proxied with that source's credentials. linear/list_issues, postgres/query.list_sourcesThe workspace's connected sources and their state.billing_statusPlan, tool calls used this month, and what is included.upgrade_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
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