MCP
Your agent can build the list itself
Manycrawl ships an MCP server with 29 tools. Claude opens a source, adds the columns it needs, waits for the run and reads the finished table back. The scraping happens on your machine, in your session, from your IP.
Claude Desktop and Codex connect from a button in the app. Claude Code and Cursor take one line of config.
What it looks like
One request, one finished table
you
Find 40 dental clinics in Munich, get their emails,
and tell me which ones take bookings online.
claude
manycrawl_engine_status desktop: true, signed in, pro
manycrawl_create_source maps · "dentist Munich" · maxRows 40
→ tableId session_1788…
manycrawl_table_status filling: true · 12 rows
manycrawl_table_status filling: false · 40 rows
manycrawl_add_column scrape → "Emails"
manycrawl_add_column ai → "Online booking"
manycrawl_get_table coverage: Emails 31/40, Online booking 40/40
40 clinics. 31 have a published email. 22 take bookings online
— the other 18 still book by phone, so that is who to call.
Everything above happened in the app on your desk. The table is still there when the conversation ends, with the rows, the columns and the run history, ready to filter, enrich further or export.
Why this is different
The desktop app is the engine
Most "AI can scrape for you" tools mean a hosted scraper you rent. This is your own machine doing the work, with your agent as the operator.
Your session, your IP
Logged into Apollo, Facebook or LinkedIn in the built-in browser? Your agent can use those sources, because it is your browser doing the fetching.
Nothing to host, no per-request bill
There is no cloud worker between you and the page: nothing to rent, no queue behind other customers, no rate limit we invented. Rows still count against your plan's actions — at exactly the rate they do when you click Run yourself.
State outlives the chat
The agent leaves a real table behind, not a wall of text you have to paste somewhere. Close the conversation and the list is still in the app.
The tools
29 tools, and two very different jobs
They split into two halves, and keeping them straight is the difference between the server making sense and reading as a pile of verbs.
Twenty-two tools for building and reading tables. Claude decides what list to make, creates the source, adds enrichment columns, waits, and reads the result. This is what most people mean by MCP here, and all it needs is the app running and signed in.
Seven tools that invert it. An AI column in the app queues a job; the agent claims it, reads pages and searches its way to an answer, and submits it. A Claude or Codex subscription does the thinking instead of an API key. They only work on a job you have claimed.
| Group | What it does | Tools |
|---|---|---|
| Discovery | Find out what exists and whether the engine is up | capabilities · engine_status · list_tables · get_table · get_columns · table_status |
| Build a table | Create rows from a source or a CSV | create_source · scrape_more · inspect_csv · import_csv · delete_table |
| Enrich | Add columns and run them | add_column · run_column · update_column · set_automation · control_status |
| Worker queue | The drain side: claim a job, answer it | pending_count · next_job · submit_result · fail_job |
| Browse | Also drain side: read pages and search while working a claimed job | search · fetch_page · get_links |
Clients
Anything that can reach your machine
Each of these four has its own setup guide. It is the same server and the same 29 tools in every one — a single entry pointed at the bridge the app is already running on port 8765.
Claude Desktop
One click in the app writes ~/.claude.json. Work in the Code tab.
Claude Code
One entry in .mcp.json — or nothing at all, if you already pressed Connect.
Codex
One click too, writing two lines of TOML and leaving the rest of the file alone.
Setup guide
Cursor
One entry in ~/.cursor/mcp.json. No restart — it picks the file up on its own.
// Cursor — ~/.cursor/mcp.json
{ "mcpServers": { "manycrawl": { "url": "http://127.0.0.1:8765/mcp" } } }
// Claude Code — .mcp.json
{ "mcpServers": { "manycrawl": { "type": "http", "url": "http://127.0.0.1:8765/mcp" } } }
# Codex — ~/.codex/config.toml
[mcp_servers.manycrawl]
url = "http://127.0.0.1:8765/mcp"
One endpoint. The differences are cosmetic: whether the client wants type spelled out, and whether its config is JSON or TOML. There is nothing to install and no Node to set up — the desktop app runs the bridge itself.
Which of them should drain?
Claude Desktop, Claude Code and Codex all run on a subscription, so the seven drain tools cost you nothing extra there. Cursor will run them too, but it spends Cursor's quota to do it — which is the thing they were built to avoid. Point the twenty-two control tools at any of the four.
Not ChatGPT
And the desktop app does not change it: connectors resolve in OpenAI's cloud, which cannot reach 127.0.0.1. The direction that would work is the inverse — a REST job API an external agent calls — which is specified and not built. Codex is the OpenAI client that does work, because it runs on your machine.
The bridge listens on loopback and has no authentication, because nothing outside your machine is meant to reach it. Do not tunnel or port-forward it to the public internet.
Honest limits
What it will not do
Work once you quit the app
The desktop app is the engine. Closing the window is fine — it hides to the tray and keeps serving. Quit it properly and the local bridge goes with it, so Claude loses the server until you open the app again.
Run in a hosted sandbox
The server talks to a local bridge on 127.0.0.1. It is not reachable from a cloud agent, by design.
Bypass a source's limits
Apollo still serves ~1–2k per search. LinkedIn is still paced. The agent gets the same ceilings you do.
Point your agent at your machine
One click in the app's settings, and the Manycrawl you already have becomes something your agent can operate.