- OAuth — for clients that support it (Claude.ai, Claude Desktop’s Connectors settings). No key to copy: sign in and authorize from a screen on iotools.cloud, revoke anytime from your account.
- API key — for clients that only take a static config file (Cursor, Windsurf, most others). Paste a Bearer key once.
OAuth
1
Add the connector
Claude.ai — Settings → Connectors → Add custom connector.
Claude Desktop — Settings → Connectors → Add custom connector.Enter the server URL:
2
Sign in and authorize
Claude opens iotools.cloud in a browser. Sign in (or create a free account if you don’t have one), then approve the connection on the consent screen — it names the app asking and what it’s requesting, every time, not just the first.
3
Done
Claude reconnects on its own after this — no key, no config file, nothing to keep in sync.
Revoke access anytime from Account → Connected apps. It’s immediate — the app’s access stops on its very next call, not after some token expires.
API key
Every client below reads the same shape. Get a key from Account → API keys, then substitute it:- Claude Desktop
- Cursor
- Windsurf
- Other clients
Prefer OAuth above if your version supports Connectors — it’s simpler and needs no file editing. To configure a key manually instead (e.g. for a version that predates Connectors), edit
claude_desktop_config.json:- macOS —
~/Library/Application Support/Claude/claude_desktop_config.json - Windows —
%APPDATA%\Claude\claude_desktop_config.json
Listing all 900+ tools
A session advertises 5 tools by default; the catalog is reached throughsearch_tools → describe_tool → run_tool, because the full listing is ~215k tokens and most clients load it eagerly. If yours loads tools lazily (Claude Code, the Claude API’s tool-search), add ?listing=full for every tool by name with its own schema:
url in the config above. Same key or grant, same credits, same tools. See the overview.
Check it worked
Ask the agent something only a tool can answer:Use IOTools to convert “hello world” to uppercase.It should find
case-converter with search_tools and run it with run_tool, coming back with HELLO WORLD. If it answers without calling a tool, it hasn’t loaded the server — restart the client.
Clients that support elicitation stop and ask before the paid call:
String Case Converter costs 3 credits. Run it?That’s the safeguard, not a glitch — approve and it runs, decline and nothing is charged. See Your agent can’t spend credits without asking. If you connected via OAuth, the app also shows up under Account → Connected apps — a quick way to confirm the grant actually went through.