Lookout

io.github.lookoutstats由 GitHub 账号 lookoutstats 发布v0.2.0更新于 Nov 2, 2026

Ask about Vercel Web Analytics and Speed Insights across all your projects and boards.

已验证Streamable HTTP可网页运行开发者工具安全与监控数据与分析

概览

AI 生成的概览

Lookout MCP 让助手读取工作区内各站点与看板的 Vercel Web Analytics 和 Speed Insights 数据,另有两个可选的写入工具。

可以做什么
  • 列出看板,并读取看板内每个站点的访客数、与上一周期的变化、浏览量、主要来源与国家、目标转化
  • 深入查看单个站点:按日或按小时的访客、主要引荐来源、国家与页面、生产部署、Core Web Vitals 以及看板备注
  • 以绝对值、指数化或基线模式并排比较最多五个站点
  • 按 UTM 广告系列、来源和媒介拆分访客,并查看看板内站点之间的流量走向
  • 读取按设备划分的 Core Web Vitals(LCP、INP、CLS)与最慢路由、看板按影响排序的修复清单,以及告警规则和近期触发记录
  • 在图表上添加带日期的备注,并生成短期有效的 PDF 或 CSV 导出链接(写入工具)
适用场景
适合用自然语言询问自己 Vercel 站点的流量与性能:哪个落地页下滑、哪个广告系列带来访客、移动端是否通过 Core Web Vitals、哪些修复最值得优先做。已用 Lookout 汇总多个项目 Vercel Web Analytics 的团队尤为适用。
运行要求
需要 Lookout 账号,以及在 Settings › API & MCP 中创建的 API 密钥(lk_live_…)。本地 stdio 方式通过环境变量 LOOKOUT_API_KEY 提供,托管端点则通过 Authorization 的 bearer 头提供。使用 npx/stdio 方式需要 Node.js,并需能访问 Lookout API。写入工具需要具备备注与导出权限的密钥。
安装前请注意
API 密钥属于机密:应放在本地客户端配置中,不要写入会提交的文件,泄露后及时吊销。密钥默认只读,只有创建时勾选备注与导出权限才能添加图表备注和生成导出链接。返回内容中的引荐来源、路径、UTM 值、部署信息和备注文本来自外部,应视为数据而非指令。每个密钥每小时限 600 次请求,与 REST API 共用该额度。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Lookout,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.lookoutstats%2Flookout-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "lookout": {
      "type": "http",
      "url": "https://mcp.lookoutstats.com/",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

lookout-mcp

[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:

  • Hosted, over Streamable HTTP: https://mcp.lookoutstats.com
  • Local, over stdio: npx lookout-mcp

60-second setup

  1. In Lookout, open Settings › API & MCP and create an API key (lk_live_…). Select Allow notes and exports only if you want the two write tools.
  2. Add the server to your client with one of the configurations below. Paste the key into the configuration.
  3. Restart the client.

Claude Desktop

Open Settings → Developer → Edit config (claude_desktop_config.json), and add this entry:

json
{  "mcpServers": {    "lookout": {      "command": "npx",      "args": ["-y", "lookout-mcp"],      "env": { "LOOKOUT_API_KEY": "lk_live_…" }    }  }}

claude.ai (connectors)

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.

Cursor

Put this in .cursor/mcp.json in your project. To use the server in all your projects, put it in ~/.cursor/mcp.json.

json
{  "mcpServers": {    "lookout": {      "url": "https://mcp.lookoutstats.com",      "headers": { "Authorization": "Bearer lk_live_…" }    }  }}

Claude Code

bash
claude mcp add --transport http lookout https://mcp.lookoutstats.com \  --header "Authorization: Bearer lk_live_…"

Windsurf

Put this in ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "lookout": {      "serverUrl": "https://mcp.lookoutstats.com",      "headers": { "Authorization": "Bearer lk_live_…" }    }  }}

Other clients

  • stdio: LOOKOUT_API_KEY=lk_live_… npx -y lookout-mcp
  • Streamable HTTP: POST 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.

Tools

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.
  • Each tool returns a one-line summary first. Compact JSON follows the summary.
ToolArgumentsResult
list_boards—The boards in the workspace, with their ids and site counts
get_boardboard, rangeAll sites on a board. For each site: visitors, change against the previous period, page views, pages per visit, top source and country, conversions
get_sitesite, range, board?One site in detail. It shows visitors per day (or per hour), top referrers, countries and pages, production deployments and Core Web Vitals. With board, it also shows the notes.
compare_sitessites[] (1–5), range, mode, baseline?Sites side by side. absolute shows visitors. indexed sets the first bucket to 100. baseline shows each site as a percentage of one site.
get_campaignssite, rangeVisitors by UTM campaign, source and medium, with goal conversions. This needs Vercel Web Analytics Plus.
get_flowboard, rangeTraffic between the sites on a board: which site sends visitors to which site
get_speedsite, range, deviceCore Web Vitals (LCP, INP, CLS, p75) for all, mobile or desktop visitors, and the slowest routes
list_fixesboard, range, statusThe board's Fix list: what to fix first, ranked by visitors affected, with why it matters and how to check the fix
list_alerts—The alert rules, and the alerts of the last 30 days
add_annotation ✎board, site?, date, text, scopeAdds a note to a day on the board's charts, for one site or for all sites
export_board ✎board, fmt (pdf or csv), rangeA download link for the board. The link is valid for 5 minutes.

✎ 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.

Example questions

  1. "Which landing page dropped most this week, and what deployed right before?"
  2. "Compare the three pricing pages over the last 30 days, indexed."
  3. "Where do visitors to acme.com come from, and which campaign brought the most?"
  4. "Are our sites passing Core Web Vitals on mobile? Which route is slowest?"
  5. "Do my landing pages send visitors to the main site? Which ones are dead ends?"

Skills

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:

text
/plugin marketplace add lookoutstats/lookout-skills/plugin install lookoutstats@lookout

Security

  • Your key gets only your data. Each call goes to the Lookout API with your key. A key can only see its own workspace. The server keeps no data and does not log answers. The server does not store the key.
  • A key is read-only by default. A key can only read data unless you create it with Allow notes and exports. A write key can add chart notes and make export links. It cannot change boards, members, alerts or settings. It cannot see your Vercel token.
  • No personal data. Vercel Web Analytics does not use cookies. It reports aggregated data. Answers contain counts, domains, paths, referrers and countries. Answers do not identify people.
  • Keep the key out of your repository. Put the key in a local configuration of your client. Examples are ~/.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.
  • Limits. Each key has 600 requests per hour. The REST API and the MCP server share this limit. 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.
  • Data from outside. Referrers, paths, UTM values, deployment messages and note texts come from websites and their visitors. The server tells the model to use them as data, not as instructions. Keep keys read-only unless you need the write tools.

Send security problems to [email protected].

Self-hosting

bash
npm i -g lookout-mcpPORT=3000 lookout-mcp-http        # Streamable HTTP on http://127.0.0.1:3000 (POST /, GET /health)

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:

ts
import { createHttpHandler } from "lookout-mcp/http";export const POST = createHttpHandler();

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.

Links

Lookout is not affiliated with Vercel Inc.

来源:README.md,提交 7f3b8b0

工具

11

list_boards

List boards

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

无需输入参数。

get_board

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.

输入参数board必填range

get_site

Get 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.

输入参数site必填boardrange

compare_sites

Compare 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.

输入参数moderangesites必填baseline

get_campaigns

Get 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.

输入参数site必填range

get_flow

Get 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.

输入参数board必填range

get_speed

Get 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.

输入参数site必填rangedevice

list_fixes

List 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.

输入参数board必填rangestatus

list_alerts

List alerts

The workspace's alert rules (board, metric, drop or rise, threshold %) and what fired in the last 30 days.

无需输入参数。

add_annotation

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.

输入参数date必填sitetext必填board必填scope

export_board

Export 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").

输入参数fmtboard必填range

版本历史

2
  1. v0.2.0最新Oct 26, 2026
  2. v0.1.1Oct 25, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分