askbowtie

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_report and get_custom_dimensions_and_metrics. Stops at analytics. Google titles it Experimental, it runs locally on your machine, it asks only for the analytics.readonly scope, 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.

QuestionGoogle AnalyticsPostHogaskbowtie
Runs when the chat is closed?No, localYes, hostedYes, hosted
Joins across silos in one call?No, GA4 onlyWithin PostHog's own dataYes, across all of the above
What must be installed?GA4, already on most sitesPostHog's SDKaskbowtie's own snippet
What does it cost?FreeFree to call; AI tools billFree 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.

ToolThe question it answers
get_summaryhow is the site doing, in one call
get_incidentswhat is broken right now, ranked by business impact
get_incident_detailwhich page and which element, for one of those
get_conversionshow many conversions, at what rate, and which pages they fire on
get_flowwhere a defined funnel leaks, step by step
get_searchwhich queries earn impressions and clicks
crawl_sitewhat a crawler sees, including tags and broken links
manage_watchwatch one thing and tell a human if it breaks
playbookthe 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)ToolResult
05:35:12get_incidentswhat was failing, ranked by business impact
05:35:18get_incident_detailthe signature behind one of those classes
05:38:07get_conversionsrefused: the call named a domain the token could not access
05:38:37list_domainswhich sites the token can see
05:39:14get_conversionsconversions 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 askConnect
"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.

MistakeWhat it costs
Picking by star countyou get the most bookmarked README, not the server that answers your questions
Assuming local and hosted are interchangeablea local server cannot notice anything while you are asleep
Connecting everything at onceoverlapping 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.