AnyMCP
Allows AnyMCP to add amazon.com as a site, record/learn interactions, and expose the resulting tools for Amazon tasks in the user's browser.
Provides tools for searching arXiv and finding recent papers on specified topics.
Allows querying Bitcoin trading prices as part of cryptocurrency price checks.
Allows querying Ethereum trading prices as part of cryptocurrency price checks.
Provides tools for GitHub repository search and data retrieval, such as finding most-starred frameworks or other repository results, with compacted API responses.
Enables signed-in browser interactions with Instagram, including sending direct messages, reading recent posts, and sharing/learning instagram.com tools.
Provides tools for npm package search and package information/version lookup.
Can read Product Hunt pages as compact text via the generic page-reading/open_url capability, avoiding raw HTML.
Provides tools for looking up PyPI package information with compacted responses.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Add AnyMCP to Claude, Cursor or any MCP app once. Your AI can then search Hacker News, look up a package, check the weather, or message someone on Instagram, using small direct tools instead of clicking through pages.
When there's no tool for something yet, your AI does it in the browser once, and AnyMCP turns what the site did into a tool. Next time it's a single call.
Just ask
Once AnyMCP is installed, talk to your AI as usual:
Try saying | |
💬 Social | "Send a message to @alex on Instagram saying I'm running 10 minutes late" |
"What has @natgeo posted on Instagram this week?" | |
"Post on X: we just shipped v2 🎉" | |
"Summarize my latest LinkedIn notifications" | |
🛠️ Developer | "Find the most-starred Rust web frameworks on GitHub" |
"What's the latest version of react on npm?" | |
"Top 5 stories on Hacker News right now" | |
"Find recent arXiv papers on speculative decoding" | |
🌍 Everyday | "What's the weather in Lisbon this weekend?" |
"Find pharmacies near Times Square" | |
"What are Bitcoin and Ethereum trading at?" | |
"Read this page and give me the key points: https://…" | |
⚙️ AnyMCP itself | "Add amazon.com" · "How many tokens has AnyMCP saved?" · "Share my instagram.com tools" |
Anything that sends, posts, buys or deletes asks you first. Signed-in sites (Instagram, X, LinkedIn…) need the browser extension; public ones (GitHub search, weather, Hacker News) work without it.
Related MCP server: byob
Quick start
1. Add AnyMCP to your AI app
claude mcp add anymcp -- npx -y anymcp-gatewayClaude Desktop: Settings → Developer → Edit Config, then add:
{
"mcpServers": {
"anymcp": { "command": "npx", "args": ["-y", "anymcp-gateway"] }
}
}Cursor: add the same block to ~/.cursor/mcp.json. Any other MCP app: run npx -y anymcp-gateway as a stdio server.
2. Install the Chrome extension (for sites you're signed in to)
Until it's on the Chrome Web Store: run npm install && npm run build in this repo, open chrome://extensions, turn on Developer mode, click Load unpacked and pick packages/extension/dist. There's nothing to pair: the side panel's dot turns green when your AI app is open. (Other Chromium browsers, or your own builds: paste the token from anymcp token under the extension's Settings → Advanced.)
3. Ask something. "What's the weather in Lisbon this weekend?"
You need Node.js 20+ and, for the extension, Chrome 116+.
How it works
You ──▶ your AI ──▶ AnyMCP ──┬──▶ public APIs (GitHub, npm, weather…) no browser needed
└──▶ your own Chrome tab, signed in as you Instagram, X, LinkedIn…Find a tool. Your AI searches AnyMCP's library and loads only the tool it needs.
No tool? Learn one. Your AI does the task in the browser. AnyMCP watches the requests the site makes and saves them as a new tool.
Next time, one call. The same kind of task, even with different details, is a single fast call. Tools fix themselves when sites change, and you can share them with everyone.
Token savings
Measured on real calls in November 2026, at about 4 characters per token.
Where tokens go | Without AnyMCP | With AnyMCP | Saved |
Tool list in every conversation (100 sites, 3 tools each) | ~28k | ~1.4k | 95% |
API responses (GitHub, npm, PyPI, Hacker News) | 160.4k | 8.9k | 94.5% |
Reading a heavy page (Product Hunt home page, HTML vs. text) | ~354k | ~1.5k | 99.6% |
A session with 100 sites' tools loaded and those four API calls uses about 188k tokens without AnyMCP and about 10k with it: 94.5% less.
Call | Site sent | AI received | Saved |
PyPI package info | 48.2k | 0.1k | 99.8% |
GitHub repository search | 40.6k | 2.4k | 94% |
npm package search | 63.3k | 5.0k | 92% |
Hacker News front page | 8.3k | 1.4k | 83% |
Across all 8 calls measured (these four plus four small ones), AnyMCP sent 12.5k tokens of the 176k the sites returned: 93% less.
Why it saves so much
The tool list stays small. Most MCP setups put every tool's description in every conversation, about 95 tokens per tool. AnyMCP lists a dozen general tools, about 1.4k tokens, however many sites or servers you add.
Responses are trimmed to the fields that matter. Results from other MCP servers are compacted too.
Clicking becomes one call. Many rounds of reading a page and clicking become one small
call_tool.Pages come back as text, never HTML.
Learned tools are shared, so others get the one-call version from the start.
Where it saves less
APIs that are already small, like a weather forecast.
The first visit to a new site, while the tool is being learned.
Finding a tool takes a step or two (
search_tools,describe_tool). Pin a site you use often to skip this.The 99.6% page figure is against raw HTML. A web-fetch tool that already returns text gets similar text.
Other MCP servers are counted too, in two ways: their results are trimmed (what the server sent vs what your AI got), and their tool definitions stay out of every AI session. Each time an AI app connects, AnyMCP records the tool definitions it would otherwise have loaded for your servers, minus whatever the AI looks up with describe_tool. That's a low estimate, since apps resend tool lists with every message. The side panel and anymcp stats show it per server.
Your own numbers: ask "how many tokens has AnyMCP saved?", run anymcp stats, or open the extension's side panel.
Safe by design
🔐 Your logins stay in your browser. AnyMCP never sees or stores your passwords, cookies or session codes.
✋ You approve it. The first use of a site asks you, and anything that changes data asks every time unless you choose "always".
🐢 It acts like a person. Calls are spaced out and capped per site, most of all on social networks, and AnyMCP stops by itself if a site pushes back (captcha, "too many requests"). Many sites' terms don't allow automation, so use it at your own risk.
🧾 Tools are plain data. A shared tool is a JSON file, never code, and it's checked for personal data before you share it.
More
AnyMCP gives the AI a few tools instead of hundreds, so it doesn't fill the AI's context:
Tool | What it does |
| Find tools across every site: "flight prices", "python package" |
| Developer, News, Reference, Travel, Finance… |
| Show the sites and tools in a category or curated list |
| Get a tool's parameters, only when needed |
| Run it |
| Turn a site or list you use often into regular tools the AI can call directly |
| Ask you something mid-task (a choice, yes/no, or a short answer) and wait for your reply, in a small browser window |
| Read any web page as text, in your signed-in browser (or fetched directly without the extension). Meant to replace the AI's generic web fetch: it counts the tokens saved and learns the site's data calls for next time |
| Open the setup window in Chrome for a site that has no tools yet, so you can record it |
| Pick up tools the open page offers: its forms, the site's own WebMCP tools, an OpenAPI description, an official profile |
| Delete your own tools, e.g. learned ones that aren't useful |
| Check a profile for personal data and get a link to submit it to the community registry |
| How many tokens AnyMCP has saved so far |
Managing tools happens by asking your AI: "remove the learned Instagram tools", "share my instagram.com profile", "how many tokens has AnyMCP saved?". The side panel only shows the current site's tools, a Record this site button, and settings.
Browser tools that work on any page: list_tabs, read_page, find_elements, click, fill, navigate, screenshot.
A typical call: search_tools("weather") → describe_tool("open-meteo.com/get_forecast") → call_tool(...).
Most of the time you don't need to do anything: your AI learns a site as it uses it (see below). To set one up yourself, ask your AI to "add instagram.com" (it calls add_site) or click Record this site in the side panel. A setup window opens:
Open site: you allow AnyMCP on that site and it opens in a tab.
AnyMCP shows what it already found (community tools, the site's own API description, forms) and asks whether you want to record how you use the site.
Use the site normally for a minute: open your profile, search, open an item. The window counts what it captures.
Stop and make tools, review the list, Save tools. Your AI can use them right away.
Your AI can also run scan_site on an open page to pick up its forms, the site's own WebMCP tools, an OpenAPI description, or an official profile the site publishes.
What recording captures:
API calls, including GraphQL and the "saved query" style big sites use: Facebook, Instagram and Threads (
doc_id), X (/graphql/<id>/<Name>) and Apollo apps. You get one tool per action (profile_page,search_timeline,create_tweet…), and only the real inputs become parameters.Page visits, for sites with no API. Visiting
/natgeo/and/nasa/becomes anopen_pagetool that opens any profile and returns its text.You review the suggested tools in the setup window, untick ones you don't want, and save.
The workflow your AI follows (AnyMCP tells it this when it connects):
Look for a tool first (
search_tools). If one fits, onecall_tooldoes the job.If there's no tool, the tool can't do this exact thing, or it fails, do the task in the browser. AnyMCP learns from it.
Next time the same kind of task comes up, use the tool it learned.
Tools also get better over time. When the AI's clicks do the same action as an existing tool, AnyMCP updates that tool: it picks up the site's new internal query ids (sites like Instagram change them often), adds inputs the site now sends, and rebuilds a tool that has failed in the last day from the request that just worked. The AI is told what changed.
It learns as your AI works. When there's no tool for something and the AI clicks through a site with the browser tools, AnyMCP watches the requests those clicks trigger (not the page's background traffic) and turns new ones into tools in your profile for that site. The AI is told on its next call, so the next time it's one call_tool instead of a dozen clicks and page reads. Any site the AI uses for the first time gets its own entry, even a plain site with no API: it gets an open_path tool ("open any page on this site and read it") plus whatever page tools with inputs it saw (a search page, a profile by name), so next time search_tools finds the site. If AnyMCP isn't allowed on that site yet, a small window asks you first. To drop learned tools, ask your AI (it calls remove_tools); turn learning off in the side panel's Settings. Background calls (ads, logging, promotions) and anything that hands out credentials are skipped. Ids the page invents per request (like a message's offline_threading_id) are generated fresh on every call, and when an id comes from a page address or another tool's result, the tool says so.
Session codes. Logged-in sites send login and anti-forgery codes with every request (CSRF tokens, Facebook's fb_dtsg, an authorization header). AnyMCP never saves them. A recorded tool marks them as {$live:…}, {$cookie:…} or {$meta:…}, and your browser fills them in each time the tool runs. If a value can't be found, the result says so: open the site in Chrome, signed in, use it for a moment, and try again.
What still doesn't work well:
Sites that only talk over WebSockets (some chat and trading apps).
Requests the page signs with fresh code on every call (some anti-bot systems); the recorded tool gets rejected.
Sites that block automation, or ask for a CAPTCHA.
Values that change on every request in ways the page computes itself. These usually show up in the result as "missing session values".
For these, the general browser tools (read_page, find_elements, click, fill, navigate) still work on any page.
AnyMCP can also sit in front of the other MCP servers you use (GitHub, filesystem, Notion…). Every server you add to your AI app normally puts all its tool definitions into every conversation; big ones cost tens of thousands of tokens before you ask anything. Behind AnyMCP their tools live in the catalog: the AI finds them with search_tools, loads one tool's details with describe_tool, and runs it with call_tool. Results are compacted (empty and null fields dropped, JSON minified, very long output capped) and counted in your token savings.
anymcp server import claude-code # copy the servers you already use (also claude-desktop, cursor)
anymcp server add github --env GITHUB_PERSONAL_ACCESS_TOKEN=… -- npx -y @modelcontextprotocol/server-github
anymcp server add notion --url https://mcp.notion.com/mcp --header "Authorization=Bearer …"
anymcp server test github # start it, list its tools, show the tokens kept out of context
anymcp server listAfter importing, remove those servers from your AI app so their tools aren't loaded twice. Servers start the first time one of their tools is used, and their tool lists are cached. Tools that change data (by their own annotations, or names like create_…, delete_…) ask you first, like site tools. API keys you pass with --env/--header are stored only in ~/.anymcp/servers.json (readable only by you).
Servers that ask things mid-call work too. When a server asks the user a question (elicitation), AnyMCP shows it in a small Chrome window (or your AI app's own prompt if the extension isn't connected) and passes the answer back. When a server asks for AI-generated text (sampling), AnyMCP forwards it to your AI app; if the app can't do that, it can call the Claude API with your own key, but only after you turn it on:
anymcp server sampling on # uses ANTHROPIC_API_KEY or your `ant auth login` profile
anymcp server sampling on --model claude-sonnet-5-5 --api-key sk-ant-…
anymcp server sampling offRemote servers are tried over Streamable HTTP first and fall back to the older SSE transport automatically (force one with --transport sse).
One copy of each server. However many AI sessions you have open, only the main AnyMCP gateway (the one connected to Chrome) runs your servers; the others send their calls to it. A server's questions still go back to the session that made the call: a server works for one session at a time (calls from the same session run side by side, other sessions wait their turn), so a question always has exactly one owner.
It pauses for you instead of giving up. If a site says you're signed out (or sends the AI to a login page), AnyMCP opens the site in Chrome, asks you to sign in, waits, and retries. AnyMCP never asks for passwords or codes itself: you sign in on the real site. The AI can also ask you anything mid-task with
ask_userand wait for the answer.First use of a site asks you. Choose "always" to stop being asked for that site.
Anything that changes data asks every time (posting, buying, deleting), unless you choose "always" for that tool.
If your AI app can't show the question, the extension opens a small approval window. If neither is available, run
anymcp allow <site>.The extension only works on sites you allow. When your AI needs a new site, a small window asks you; you can also click Allow on this site in the side panel.
Text from web pages is marked as untrusted, so the AI treats it as content and not as instructions.
Sites like Instagram, Facebook, X and LinkedIn limit or block accounts that act like bots. AnyMCP runs as you, in your own browser, so to the site it looks like you, as long as it behaves like a person. To keep it that way, AnyMCP paces everything it does on a site, whether through a tool or the browser tools:
Pace | Used for | Between calls | Changes to data (posts, likes, follows, messages) |
strict | Social networks, marketplaces, Google, Amazon… | 3–8 s, at most 8 a minute, 150 an hour | 30–75 s apart, at most 10 an hour and 40 a day |
normal | Other signed-in sites | 1–2.5 s, at most 25 a minute | 8–20 s apart, at most 40 an hour and 200 a day |
relaxed | Public APIs (weather, Wikipedia, npm…) | a fraction of a second | 2–5 s apart |
Gaps are random, so the timing isn't machine-regular. The daily caps on posts, likes, follows and messages apply even if you chose "always allow".
When a site pushes back, AnyMCP stops. It watches for HTTP 429 ("too many requests"), captchas, security checks (Instagram /challenge, Facebook /checkpoint, Google's "unusual traffic" page), action blocks (feedback_required) and "rate limit exceeded" or "please wait a few minutes" replies. That site is then paused for everything, browser tools included: for as long as the site's Retry-After header asks, otherwise 15 minutes, then 1 hour, 6 hours and 24 hours if it happens again within a day. The AI is told to stop and tell you. Four failed calls in a row also pause a site for 10 minutes, because repeating a broken request looks automated.
What you can do:
Prefer reading over acting. Bulk following, liking, messaging or posting is what gets accounts restricted, at any speed.
If a site shows you a check ("confirm it's you", a captcha), clear it in Chrome, then run
anymcp resume <site>.anymcp paceshows each site's pace, how much AnyMCP did there today, and any pauses.anymcp pace <site> strict|normal|relaxed|off|autochanges a site's pace. Faster raises the risk.
Read the site's terms. Many sites don't allow automated use, even of your own account. AnyMCP says so the first time it uses one of these sites, and you use it at your own risk. Pacing lowers the chance of a block; it can't rule one out.
anymcp Run the MCP server (this is what your AI app launches)
anymcp token Print the pairing token for the browser extension
anymcp list List site profiles and whether you've allowed them
anymcp allow <profile-id> Allow a site's tools without being asked
anymcp revoke <profile-id> Remove that approval
anymcp install <file.json> Add a profile file as one of your own profiles
anymcp remove <profile-id> Delete one of your own profiles
anymcp validate <file> Check a profile file
anymcp stats [reset] How many tokens AnyMCP has saved
anymcp pace Show how AnyMCP paces each site, and any paused sites
anymcp pace <site> <pace> Set a site's pace: strict, normal, relaxed, off or auto
anymcp resume <site> End a pause early, once you've cleared the site's check
anymcp server … Connect your other MCP servers (see above)Settings and data live in ~/.anymcp (set ANYMCP_HOME to change it).
Site tools are described by profiles: plain JSON files, never code. The registry in registry/ has 11 profiles to start with (Hacker News, Wikipedia, GitHub, npm, PyPI, Stack Overflow, Open-Meteo, OpenStreetMap, arXiv, a dictionary and CoinGecko) and four curated lists.
To add a site, see CONTRIBUTING.md. The format is in docs/profile-format.md.
npm install
npm run build # shared → registry index → gateway → extension
npm test # shared and gateway tests
npm run validate:registry # check profiles, lists and categories
npm run package:extension # zip the extension for the Chrome Web StorePath | What |
| The |
| Chrome extension: runs tools in tabs, side panel, tool generation |
| Wire protocol, profile schema, templating, tool generation, privacy scan |
| Community profiles, categories and lists; |
| Profile format, publishing guide |
Design and milestones: PLAN.md. Privacy: PRIVACY.md. Releasing: docs/publishing.md.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Let AI agents use your real, signed-in Chrome: tabs, clicks, forms, screenshots and video.
Let your AI agent operate any website through a real, logged-in browser session.
Connect AI agents to your own Chrome with scoped access, approvals, and verified task results.
Read, crawl and act on websites, signed in as the user, and turn any site into an API.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceLets AI assistants control your real Chrome browser to perform web tasks like reading pages, taking screenshots, clicking, and typing, using your existing logged-in sessions.145MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI tools to browse the web as the user by providing access to a persistent browser session with logged-in accounts, supporting recipes for email, PRs, calendar, and more.8 npm5MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to browse websites, extract information, fill forms, interact with pages, and execute multi-step web tasks autonomously.-