n8n
Open workflow automation with a visual editor and optional self-hosting
Turns websites into APIs your AI agent calls over plain HTTP instead of driving a browser.
Some links on this page are affiliate links: we may earn a commission if you sign up, at no extra cost to you.
API Anything is a free, open-source tool (MIT license) that learns the requests a website sends to its own server and turns them into operations an AI agent can call. Instead of opening a page and reading the screen, the agent resends the site's own request with new values and gets clean data back. It learns a site by loading the page twice with two different inputs; whatever changed between the two requests becomes a field the agent fills in. Calls go over plain HTTP first, fall back to a browser page if the site blocks that, and, for reads only, run the full page as a last resort. When a site changes, it re-learns the request and keeps the fix only after a test call works. It suits people who already work with Claude Code, Codex, Cursor or another MCP client and want faster, cheaper web lookups. Setup offers to share what it learns from public pages in a shared catalog (cookies and tokens stripped); run it with --local-only to send nothing. It cannot solve CAPTCHAs, some sites block it, and you are responsible for each site's terms.
| Requirement | Why |
|---|---|
| Node 22.13 or newer | Setup and the server run on Node |
| A Chromium browser: Chrome (default), Brave, Edge, Chromium, Vivaldi or Arc | Only to learn new sites and for the browser fallback. Calling operations someone already shared doesn't need one |
| An agent: Claude Code, Codex, Cursor, Claude Desktop, Gemini CLI or VS Code | Where the tools show up |
To use a browser other than Chrome, set API_ANYTHING_BROWSER to a name like brave or to the browser's path.
node --version
If it says less than v22.13, or nothing, install the current LTS from nodejs.org first.
Setup asks whether you want to help build the shared catalog. Decide before you run it:
| You want | Run setup with |
|---|---|
| To share what you learn from public pages (cookies and tokens are stripped) | --yes |
| To share nothing, but still search the catalog | --no-share |
| Nothing sent to the catalog at all, searches included | --no-share --local-only |
For client work, use --no-share --local-only.
A second question, background verification (an idle server testing up to 20 new shared operations a day from your network), is off by default. Turn it on with --verify only if you want it.
Interactive. It lists the agents it finds and asks which ones to connect:
npx -y api-anything setup
Or name the agent directly:
npx -y api-anything setup --agents claude-code --no-share --local-only
Agent names: claude-code, codex, cursor, claude-desktop, gemini, vscode. Separate several with commas.
To see what it would change without changing anything, add --dry-run.
What setup does:
claude mcp add --scope user api-anything -- npx -y api-anything mcp.~/.claude/skills/api-anything/. Codex, Cursor, Gemini CLI, VS Code: ~/.agents/skills/api-anything/). Claude Desktop takes skills only as an upload in its settings.~/.api-anything/key.json.<file>.bak-api-anything first. It never touches your other MCP entries.If the output says "ok": false, look for the agent whose mcp is failed and read its error.
Close and reopen Claude Code (or whichever agent you connected) so it loads the new tools.
npx -y api-anything call hacker-news search query=sqlite
You want "ok": true, "tier": 1 and a list of stories. Tier 1 means plain HTTP, no browser.
Then ask your agent: "What does Goodreads rate Piranesi?" It should call find_sites, then call_operation. For a site nobody has taught it yet, it calls learn_site.
| Tool | Does |
|---|---|
find_sites | Searches the catalog and this machine's sites |
list_operations | Shows an operation's inputs and returned fields |
call_operation | Calls a read |
call_batch | Up to 20 reads in a row |
call_write_operation | Calls a write. Only on a server started with --allow-writes |
get_job | The result of a call still running after about 25 s |
get_result | The rest of an answer that was cut |
site_status | This machine's record of a site's calls and repairs |
learn_site | Learns a new read, tests it and answers your request |
list_sites, login | What's installed; refresh a session you imported |
To use a site where you're logged in, import your session from the browser you already use:
api-anything login <site>
Sessions are stored encrypted with your system's keychain. If a login window opens, sign in and close it. It closes by itself after 10 minutes.
npx -y api-anything setup --share-only --no-share
--share-only records your answers and changes nothing else. For one shell session only, API_ANYTHING_LOCAL_ONLY=1 does the same as --local-only.
Setup points each agent at the latest release, so every start runs the newest version. To stay on the version you tested:
npx -y api-anything setup --pin
Print an entry with absolute paths and paste it into your client's MCP config:
npx -y api-anything mcp --print-config
| Problem | Fix |
|---|---|
| The client says the server failed to start, or shows no api-anything tools | It can't find node or api-anything. Run api-anything mcp --print-config and use its entry. Check that the node it names is 22.13+ |
| It worked, then stopped after you changed Node versions | The entry points at the old node. Run --print-config again and replace the entry |
Startup timeout through npx | The first run downloads the package. Run the npx command once in a terminal, then restart the client |
A call answers class: "pending" | It's still running. Call get_job with its job. Don't call the tool again |
| A tool call times out | Raise the client's tool timeout to 60 s or more. In Claude Code: MCP_TOOL_TIMEOUT (ms) |
| The client asks approval before every read | Restart it so it loads the current tool list |
A call comes back blocked | The site showed a challenge it couldn't clear. There's no CAPTCHA solving |
API Anything's docs don't list an uninstall command. In Claude Code, removing the MCP entry stops the tools from loading:
claude mcp remove api-anything --scope user
Then delete ~/.claude/skills/api-anything/ and ~/.api-anything/. For other agents, remove the api-anything entry from their MCP config. Setup left a .bak-api-anything copy of each file it edited.
Free and open source (MIT). No account and no API key; your own agent and model costs apply.
Open workflow automation with a visual editor and optional self-hosting
Visual scenario builder for multi-branch automations
Trigger-and-action automation across a large catalog of web apps
Developer platform for building phone and web voice AI agents