Manycrawl

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.

Control — the agent drives

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.

Drain — the agent works

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.

GroupWhat it doesTools
DiscoveryFind out what exists and whether the engine is upcapabilities · engine_status · list_tables · get_table · get_columns · table_status
Build a tableCreate rows from a source or a CSVcreate_source · scrape_more · inspect_csv · import_csv · delete_table
EnrichAdd columns and run themadd_column · run_column · update_column · set_automation · control_status
Worker queueThe drain side: claim a job, answer itpending_count · next_job · submit_result · fail_job
BrowseAlso drain side: read pages and search while working a claimed jobsearch · fetch_page · get_links

Full reference, with what each one returns →

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.

The entrysame endpoint, three spellings
// 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.