Labsco
wireboard logo

WireBoard

β˜… 3

from wireboard

Lets LLM agents (Claude Desktop, Cursor, VS Code, etc.) query your real-time and historical analytics in conversation. Built on top of the official @wireboard/api JavaScript SDK.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedPaid serviceNeeds API keys

wireboard-mcp

Official Model Context Protocol server for WireBoard.

Lets LLM agents (Claude Desktop, Cursor, VS Code, etc.) query your real-time and historical analytics in conversation. Built on top of the official @wireboard/api JavaScript SDK.

Mint a token

You need a WireBoard API token before either install path will work. Mint one at Settings β†’ API with the analytics:read ability for REST tools and live:read for the live snapshot tool.

What you can ask

Once configured, ask Claude things like:

  • "How many visitors did my site get last week?"

  • "Show me the top 10 referrers for the past 30 days."

  • "What's happening on my site right now?"

  • "Which pages under /checkout have the worst bounce rate this month?"

  • "How many Purchase events fired from utm_source=newsletter yesterday?"

  • "Compare visitor counts day by day for the past two weeks."

Claude will pick the right tool, call it, and answer in natural language.

Available tools

Tool What list_sites Every site in the account get_account Token-owner identity + abilities get_aggregate Period totals: visitors, pageviews, bounce rate, duration get_timeseries One metric (visitors or pageviews) bucketed by hour or day get_history Per-day visitors / returning / pageviews / bounce / duration get_breakdown Top-N rows by dimension (country, device, browser, referrer, etc.) get_top_urls Per-URL metrics with prefix / contains / exact filters query_events Custom event queries with grouping and filtering get_live_state Real-time snapshot (live visitor count, top pages, active sessions, etc.) list_dimensions Meta: every dimension, metric, and limit the API supports

All tools accept natural date ranges: "today", "yesterday", "last 7 days" (or "30d" shorthand), "this week", "last week", "this month", "last month", or explicit "YYYY-MM-DD..YYYY-MM-DD". Always UTC.

Rate limiting

The MCP proactively caps itself at 100 requests/minute (under the API's 120/minute limit) so LLM bursts space themselves out instead of hitting 429s. Override with the WIREBOARD_MCP_RATE_PER_MINUTE env var if you have a use case that needs different pacing.

The underlying SDK still auto-retries on 429 as a backstop.

Security

  • Treat your token like a credential. It has full analytics:read and live:read scope on every site in the account.

  • Don't commit your MCP client config to a public repo with the token in it. Use an env var or a secret manager and reference it from your config.

  • Revoke and rotate if a token leaks. Settings β†’ API in your dashboard.

The MCP is read-only: it can fetch data, never modify it. The WireBoard public API itself is read-only in v1.

Logging

Logs go to stderr (so they don't interfere with the MCP protocol on stdout).

Source and contributing

Building locally

Copy & paste β€” that's it
npm install
npm test # run vitest
npm run build # bundle TS β†’ dist/index.js (esbuild, ~600 KB)
npm run build:mcpb # also pack dist/wireboard-mcp- .mcpb

The .mcpb is a zip of manifest.json, icon.png, and the single bundled dist/index.js. All runtime dependencies are inlined by esbuild.

License

MIT.