This article was originally published on the Zenrows blog.
Cutting an agent's MCP stack down to the servers it uses changes how the agent behaves. Every connected tool takes up context, and a crowded menu leads the agent to pick the wrong one. Two servers for the same job, such as two browser servers, leave it choosing between near-identical tools. Keep one server per capability, and each tool the agent sees has a clear job.
This post shows what to keep. It maps the six capabilities a production agent can need to the MCP server that covers each one, gives three ready-made stacks, and shows how to connect remote and local servers to Claude Code, Cursor, and other clients. A typical agent needs only two or three servers.
The Stack at a Glance
| Capability | MCP server | What your agent gets | Skip it when |
|---|---|---|---|
| Web data access | Zenrows MCP | Pages, structured JSON, crawls, and batch jobs on protected and JavaScript-heavy sites | Your agent never needs information from the web |
| Browser automation | Zenrows MCP | A cloud browser it clicks, types, and navigates in, with residential proxies and anti-bot bypass | Your agent only reads pages |
| Memory | Mem0 (Zep for facts that change over time) | Context that persists across sessions | Your agent is stateless |
| Code and dev tools | GitHub MCP, with Context7 for library docs | Repositories, issues, pull requests, and Actions runs | Your agent doesn't touch code |
| Databases | Supabase MCP | Tables, SQL queries, migrations, and logs for a Postgres project | Your agent has no database |
| Productivity and SaaS | Google Drive, Notion, Slack, Atlassian | Documents, wikis, conversations, and tickets | Your agent has no workplace data to act on |
Each server on this list is first-party or officially maintained, actively developed, and covers a job no other server in the stack covers.

Connect the Servers
Remote servers run on the provider's infrastructure. You add the URL to your client and sign in with OAuth, so there's nothing to install or update. Local servers run on your machine as subprocesses, usually through npx or Docker, and read credentials from environment variables. Claude Code, Cursor, VS Code, and Claude Desktop accept both.
The remote Zenrows server is https://mcp.zenrows.com/mcp, and the local one runs with one command.
npx -y @zenrows/mcp The local server starts without an API key and creates a free account on its first call, which you can claim later. The Zenrows CLI prints the exact config for your client, and the CLI docs list every supported client. Supabase's hosted server lives at https://mcp.supabase.com/mcp and signs you in through the browser.
What Each Server Does
Zenrows MCP handles web data. It exposes scrape, extract, crawl, batch, and browser tools. Adaptive Stealth Mode escalates the request setup only when a site needs it, and when the agent names the fields it needs, Zenrows returns just those as structured JSON at a fraction of the tokens a full page costs. In a benchmark of four scraping APIs, Zenrows succeeded on all 800 requests against DataDome, Cloudflare, and Akamai targets. Agents can also pay per request over x402 or MPP without an account, and the free plan includes 5,000 credits a month.
Zenrows MCP also handles browser automation. The cloud browser runs behind residential proxies with anti-bot bypass, and sessions keep cookies, local storage, and tabs between calls. It clicks, types, fills forms, picks dropdowns, scrolls, hovers, drags, and presses keys. It reads pages through the accessibility tree as text, so no vision model is needed, and it can take screenshots, save PDFs, and run JavaScript, with several actions chained in a single call. Playwright MCP, Microsoft's server, runs a local browser and suits testing your own apps.
Mem0 handles memory. The current official Mem0 MCP server is hosted. It stores memories under user, session, and agent scopes and updates existing ones. The original self-hosted mem0-mcp repo is archived, and Mem0 itself is Apache 2.0 licensed. Use Zep, with its Graphiti engine, for facts that change over time.
GitHub MCP handles code. The first-party server had over 33k stars as of October 2026 and covers code search, branches, issues, pull requests, and Actions runs. Running and testing code still happens elsewhere, such as CI. Context7 by Upstash adds version-specific library docs.
Supabase MCP handles databases. It lists tables, runs SQL, applies migrations, queries logs, checks security and performance advisors, deploys Edge Functions, and generates TypeScript types. Scope it to one project and turn on read-only mode to run queries as a read-only Postgres user.
Official servers handle workplace tools. Google Drive searches and reads files and spreadsheets, Notion searches and updates pages and databases, Slack reads channels and threads and sends messages, and Atlassian works with Jira tickets and Confluence docs.
Three Sample Stacks
| Agent | Servers |
|---|---|
| Web research agent | Zenrows and Mem0 (memory is optional for one-off tasks) |
| Coding agent | GitHub MCP, Playwright MCP, and Zenrows |
| Internal company assistant | Mem0, Slack, Google Drive, and Notion |
Mistakes to Avoid
- Connecting too many tools inflates context and leads the agent to pick the wrong one.
- Running two servers for the same job, such as two browser servers, makes the agent choose between near-identical tools.
- Granting broad credentials, such as a GitHub token with write access to every repository, gives the agent more reach than its task needs. Scope each token and use read-only access where the agent only reads.
- Letting an agent send messages or push changes without an approval step leaves it open to prompt injection. ## Wrapping Up Pick servers from your agent's workflow. Connect the ones it uses and leave the rest off. ## What's Next
- Start free with Zenrows and its 5,000 monthly credits.
- Compare scraping-focused options in the roundup of scraping MCP servers.
- Build a local agent with Ollama and the Zenrows MCP server.

