Skip to main content
Two ways to connect, depending on your client — both use the same credits, tier and rate limit.
  • 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:
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
Add the block above, then fully quit and reopen Claude — reloading the window is not enough.
This config file holds a live credential in plaintext. Don’t commit it, and don’t paste it into a chat — including into the agent you are configuring.

Listing all 900+ tools

A session advertises 5 tools by default; the catalog is reached through search_toolsdescribe_toolrun_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:
Works with either auth method — append it to the connector URL for OAuth, or to 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.

Troubleshooting