The best MCP servers for your website
Category-shaped, not a ranking. Every claim below was checked on 2026-09-21.
For your code and your app
This category is well served and well covered elsewhere, so here it is briefly, with the boundary that matters for each.
- GitHub. Repositories, pull requests, issues, code search. Stops at your code, not your users
- Sentry. Errors, issues, traces and performance, hosted at
mcp.sentry.dev. Stops at what your application reports to Sentry, not what the page does around it - Playwright. A real browser it can drive and click through. Stops at one session it runs itself, not real visitors
- Context7. Up-to-date library and framework documentation. Stops at documentation, not your project
- Figma. Your design files, tokens and components. Stops at design, not what shipped
These are complements, not competitors, and a good setup mixes them. Notice that the second half of each entry says a version of the same thing: each one sees the thing you built, and none of them sees the people using it.
For your live website
Three servers reach this category. They are not variations of one product, and the differences are the kind you feel in week two rather than in the first hour.
- Google Analytics MCP. Your GA4 data through
run_report,run_funnel_report,run_realtime_reportandget_custom_dimensions_and_metrics. Stops at analytics. Google titles it Experimental, it runs locally on your machine, it asks only for theanalytics.readonlyscope, and it is doing nothing while your chat is closed - PostHog. Analytics, error tracking with stack traces, feature flags, experiments and HogQL queries, through a hosted endpoint at
mcp.posthog.com. Stops at what PostHog itself collects: it needs PostHog's own SDK on your site, and it does not reach Search Console, Google Ads, uptime or a crawl. Connecting and calling tools is free, though some tools run an LLM internally and bill as PostHog AI spend - askbowtie. One server over traffic, conversions, JavaScript errors, Core Web Vitals, Search Console, Google Ads, uptime, crawl, page roles, section engagement, custom events and A/B tests, hosted, so it keeps watching between chats. Stops at sites running its own snippet: it sees nothing from before you installed it, it cannot read your GA4, and it is free to roughly 100,000 events a month across your sites before credits apply
The four questions, answered for all three
Directories rank MCP servers by stars, which measures how many people bookmarked a README. These four questions are answerable from documentation in about ten minutes, and they decide whether a server is still connected next month. Answering them only for the winner would be a way of rigging the result, so here they are for all three.
| Question | Google Analytics | PostHog | askbowtie |
|---|---|---|---|
| Runs when the chat is closed? | No, local | Yes, hosted | Yes, hosted |
| Joins across silos in one call? | No, GA4 only | Within PostHog's own data | Yes, across all of the above |
| What must be installed? | GA4, already on most sites | PostHog's SDK | askbowtie's own snippet |
| What does it cost? | Free | Free to call; AI tools bill | Free to ~100,000 events/month |
Read row three before row two. A server that joins beautifully is worth nothing to you until the thing it reads is actually installed, which is why the GA4 server is the fastest of the three to get an answer out of: the data is usually already there.
There is a fifth question worth asking that no table can score, because it is about writing rather than architecture: are the tool descriptions specific? A description is the only thing an agent reads when deciding whether a tool answers your question, so a server that says "gets data" does not fail loudly. It gets called at the wrong moments and quietly makes your agent worse.
What the website category exposes
"Traffic, conversions and errors" is a category, not a capability list, so here is what the tools are actually called on the server this site runs, and what each one answers.
| Tool | The question it answers |
|---|---|
get_summary | how is the site doing, in one call |
get_incidents | what is broken right now, ranked by business impact |
get_incident_detail | which page and which element, for one of those |
get_conversions | how many conversions, at what rate, and which pages they fire on |
get_flow | where a defined funnel leaks, step by step |
get_search | which queries earn impressions and clicks |
crawl_site | what a crawler sees, including tags and broken links |
manage_watch | watch one thing and tell a human if it breaks |
playbook | the indexed procedures, so the agent follows a known route |
That is nine of forty-seven, and they are not the eight frozen ones: the surface grew by addition, and the original eight keep their exact shapes because live clients depend on them. The rest cover performance, ads, referrers, landing pages, page roles, section engagement, custom events, A/B tests, long-window trends and notes. Ask for playbook before you go exploring: it returns the index first, then the procedure you pick, which is faster than discovering a surface one question at a time.
The gap most lists leave
Run down a typical roundup and count what the entries watch. Code, docs, design, databases, a browser the agent drives itself. Every one of them is about the thing you are building.
Your agent can read your repository, your component library and your migration history, and still have no idea that the checkout button stopped working on Tuesday.
That is not an oversight by the people writing the lists. It reflects who was connecting servers first, which was developers, working on code. The category only becomes obvious once the question changes from "is this implemented correctly" to "is this working for the people using it".
The worked example: what joining looks like
Here is the difference between fetching and joining, taken from askbowtie's own per-call activity log on 4 September 2026 rather than from a feature table. Five calls, one user, times in UTC.
| Time (UTC) | Tool | Result |
|---|---|---|
| 05:35:12 | get_incidents | what was failing, ranked by business impact |
| 05:35:18 | get_incident_detail | the signature behind one of those classes |
| 05:38:07 | get_conversions | refused: the call named a domain the token could not access |
| 05:38:37 | list_domains | which sites the token can see |
| 05:39:14 | get_conversions | conversions for the right domain |
Three of those five answered the question; one was refused and one was the recovery from it. A fetch-only server cannot produce this sequence at all, because a list of metrics never tells the agent which follow-up is worth making. What is Model Context Protocol? works through the chain call by call, including what the log can and cannot prove about it.
How many servers to run
One mechanical fact, then a recommendation, and it is worth keeping them apart.
The fact: every connected server contributes its tool list at connection time, and overlapping lists make tool choice harder rather than easier. How much harder depends on your client. Some now defer MCP tools behind a search step rather than putting every one in front of the model, which changes the arithmetic but not the direction.
The recommendation, which is a recommendation and not a measurement: start with one, add the second when you notice yourself asking a question it cannot answer, and prefer one server that covers a whole domain over three that each cover a third of it. Overlap is what makes a choice ambiguous, so fewer servers with clearer boundaries beats more servers with fuzzy ones.
Choosing by what you actually ask
Pick by the questions you find yourself asking, not by category coverage.
| If you mostly ask | Connect |
|---|---|
| "why does this code do that?" | GitHub, and Context7 for the libraries |
| "why did this request throw?" | Sentry, plus Playwright to reproduce it |
| "what are my users doing?" | whichever of the three site servers matches what you already have installed |
| "is anything broken right now?" | a hosted site server, because nobody is asking at 2am |
Three mistakes people make
All three are cheap to avoid once named.
| Mistake | What it costs |
|---|---|
| Picking by star count | you get the most bookmarked README, not the server that answers your questions |
| Assuming local and hosted are interchangeable | a local server cannot notice anything while you are asleep |
| Connecting everything at once | overlapping tool lists, and a harder choice for the agent on every question |
There is a fourth, subtler one: connecting a server and never restarting the client. The tool list is fetched once at connection, so a server that ships a new tool does not reach a session that is already open.
Where to go next
The point of MCP is not collecting servers. It is that one agent, in one conversation, reaches everything you care about, and your live site is part of everything. If the website category is the gap in your setup, the next page walks through connecting one end to end.