list_boards
List boards
The workspace's boards (each a dashboard of sites), with their ids and site counts.
Takes no parameters.

io.github.lookoutstatsPublished by GitHub account lookoutstatsv0.2.0Updated Nov 2, 2026
Ask about Vercel Web Analytics and Speed Insights across all your projects and boards.
Lookout MCP gives an assistant read access to Vercel Web Analytics and Speed Insights across a workspace's sites and boards, plus two optional write tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.lookoutstats%2Flookout-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"lookout": {
"type": "http",
"url": "https://mcp.lookoutstats.com/",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}[npm] [CI] [License: MIT] [MCP] [Listed on mcpservers.org]
This is the MCP server for Lookout. Lookout shows Vercel Web Analytics for all your projects in one view.
Connect Claude, Cursor or a different MCP client. Then ask about your sites: visitors, sources, campaigns, Core Web Vitals and traffic between your sites. The answers come from your real numbers.
"Which landing page dropped most this week, and what deployed right before?"
The server is a thin client of the Lookout REST API. Every answer comes from api.lookoutstats.com. The server stores no data.
You can run the server in two ways:
https://mcp.lookoutstats.comnpx lookout-mcplk_live_…). Select Allow notes and exports only if you want the two write tools.Open Settings → Developer → Edit config (claude_desktop_config.json), and add this entry:
A claude.ai custom connector does not send a key header. Thus the hosted server cannot get your API key from a connector yet. Use Claude Desktop (above) or Claude Code until Lookout supports OAuth sign-in for connectors.
Put this in .cursor/mcp.json in your project. To use the server in all your projects, put it in ~/.cursor/mcp.json.
Put this in ~/.codeium/windsurf/mcp_config.json:
LOOKOUT_API_KEY=lk_live_… npx -y lookout-mcpPOST https://mcp.lookoutstats.com with the header Authorization: Bearer lk_live_…. If your gateway keeps Authorization for itself (Smithery does), send X-Lookout-Api-Key: lk_live_… instead.These rules apply to all tools:
range is 24h, 7d (the default) or 30d. It can also be a custom window, for example { "from": "2026-10-01", "to": "2026-10-14" }. A custom window is 30 UTC days or less.board is the board's id or its exact name.✎ A write tool. A write tool needs a key with Allow notes and exports.
Resources:
lookout://boards: the boards.lookout://boards/{id}: the sites on a board, for the last 7 days.Prompts:
weekly_brief(board): a short brief. It names the sites with the largest changes and the causes.why_did_it_drop(site): finds when a drop started, what changed, and the likely cause.The lookout-skills repository adds two agent skills on top of this server:
lookout-fix finds the site of the current repository on your boards. It takes the top open item of the Fix list and makes the change in your code.lookout-report writes a weekly or monthly report from all your boards.In Claude Code, one plugin installs the skills and this server:
~/.cursor/mcp.json, the Claude configuration and an environment variable. Do not put it in a file that you commit. You can revoke a key at any time in Settings › API & MCP. A revoked key stops on the next request.compare_sites makes 1 request for each site. Each other tool makes 1 request. Above the limit, you get a 429 response with a Retry-After header. The hosted server accepts batches of 5 messages or fewer.Send security problems to [email protected].
The server listens on 127.0.0.1 by default. In a container, set HOST=0.0.0.0.
You can also use the handler in your own server. The handler is a plain (Request) => Promise<Response> function:
You can deploy this repository to Vercel without changes (vercel.json, api/index.js). To use a different API base URL with either entry point, set LOOKOUT_API_URL.
Lookout is not affiliated with Vercel Inc.
Source: README.md at commit 7f3b8b0
List boards
The workspace's boards (each a dashboard of sites), with their ids and site counts.
Takes no parameters.
Get a board
Every site on a board for a range, busiest first: visitors and their change vs the previous period, page views, pages per visit, top source and country, and goal conversions.
boardrequiredrangeGet a site
One site in depth for a range: visitors per day (or hour for 24h) with the previous period, top referrers, countries and pages, its production deployments, its Core Web Vitals (Speed Insights p75), and, with board, the board's notes dated in the range. One API request.
siterequiredboardrangeCompare sites
Up to 5 sites side by side over a range. mode: absolute (visitors per bucket), indexed (each site's first non-zero bucket = 100) or baseline (each site's visitors as % of the baseline site's). One API request per site.
moderangesitesrequiredbaselineGet campaigns
A site's visitors by UTM campaign, source and medium for a range, with the goal's conversions. Needs Vercel Web Analytics Plus or Enterprise; otherwise status is plan_required.
siterequiredrangeGet traffic between sites
Traffic between a board's sites for a range: each site's visitors, and hops (from, to, visitors) — visits to a site whose referrer is another site of the same board. External traffic is not included.
boardrequiredrangeGet Core Web Vitals
A site's Core Web Vitals from real visitors (Vercel Speed Insights, p75, production) for one device — LCP, INP, CLS and a passing / needs_work / poor / off status — with its slowest routes by LCP.
siterequiredrangedeviceList what to fix
A board's Fix list for a range, ranked by visitors affected: slow Core Web Vitals, sites that send nobody onward, sites most visitors leave after one page, low conversion, falling traffic, untagged social campaigns, and setup gaps (no goal, no Speed Insights, no Web Analytics). Each item has its kind, site, title, detail, why it matters and how to verify a fix. status: open (default), snoozed or resolved.
boardrequiredrangestatusList alerts
The workspace's alert rules (board, metric, drop or rise, threshold %) and what fired in the last 30 days.
Takes no parameters.
Add a note
Pins a note to a day on a board's charts, e.g. "Launched pricing v2": for one site (scope "site", the default when site is given) or every site on the board (scope "board"). Needs a key with write access ("Allow notes and exports"). Text is kept to 80 characters.
daterequiredsitetextrequiredboardrequiredscopeExport a board
Makes a download link for a board as a PDF (the board as a page) or CSV (one row per site). The link works for 5 minutes. Needs a key with write access ("Allow notes and exports").
fmtboardrequiredrange100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
{ "mcpServers": { "lookout": { "command": "npx", "args": ["-y", "lookout-mcp"], "env": { "LOOKOUT_API_KEY": "lk_live_…" } } }}{ "mcpServers": { "lookout": { "url": "https://mcp.lookoutstats.com", "headers": { "Authorization": "Bearer lk_live_…" } } }}claude mcp add --transport http lookout https://mcp.lookoutstats.com \ --header "Authorization: Bearer lk_live_…"{ "mcpServers": { "lookout": { "serverUrl": "https://mcp.lookoutstats.com", "headers": { "Authorization": "Bearer lk_live_…" } } }}/plugin marketplace add lookoutstats/lookout-skills/plugin install lookoutstats@lookoutnpm i -g lookout-mcpPORT=3000 lookout-mcp-http # Streamable HTTP on http://127.0.0.1:3000 (POST /, GET /health)import { createHttpHandler } from "lookout-mcp/http";export const POST = createHttpHandler();