Fleets

io.github.runFleetsPublished by GitHub account runFleetsv0.2.2Updated Oct 24, 2026

Multi-site analytics as tools: GA4, Search Console, Cloudflare edge, PageSpeed, insights.

VerifiedSTDIODesktop onlyWeb Search & ScrapingData & Analytics

Overview

AI-generated overview

Lets an assistant pull live multi-site web analytics — GA4, Search Console, Cloudflare edge, PageSpeed — and query them in natural language.

What you can do
The fleets-mcp server exposes a Fleets account's analytics as tools. It lists sites and their connected sources, then returns GA4 summaries and breakdowns (sources, campaigns, referrals, landers, events, users, devices, demographics), conversion funnels, Google Search Console summaries, Cloudflare edge analytics, and PageSpeed/Core Web Vitals. It also offers AI-ready insights, a natural-language ask tool answered server-side with citations, and a per-site change log that can be written to and read back.
When to use it
Use it when an assistant should answer questions about your own sites' traffic, SEO, edge, or performance data without you opening the Fleets app. It suits recurring reporting, funnel and campaign analysis, and keeping a change log alongside the numbers.
Requirements
Runs locally over stdio as the npm package fleets-mcp (Node.js >= 22; macOS, Linux, Windows). Authentication is a Fleets personal access token: either run fleets login once, which stores it in ~/.fleets/config.json, or set the FLEETS_TOKEN environment variable. Network access to Fleets and the connected analytics sources is required.
Before you install
The FLEETS_TOKEN personal access token is a credential; it overrides the stored config file, so treat it as a secret and avoid committing it. Most tools are read-only, but log_change writes a change-log entry to your site. The ask tool sends your question to be answered server-side, and analytics data is retrieved from third-party sources such as GA4, Search Console and Cloudflare.

Installation

In SourceWeft

  1. Open Fleets in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

fleets

Terminal CLI for Fleets. Per-site commands mirror the app UI tabs at https://fleets.run/app/<slug>/<tab>.

Install

bash
npm install -g fleets

Authenticate

bash
fleets login

Picks between two methods:

  1. browser (default) — device flow: CLI prints a URL + 8-character code, auto-opens your browser, you click authorize, CLI finishes automatically.
  2. paste a token — mint one in app → account → cli, paste it in.

Skip the prompt with a flag:

bash
fleets login --browser     # force device flowfleets login --paste       # force token paste
fleets login --token fl_xxxxxxxxxxxxxxxx   # paste in one shot (CI)export FLEETS_TOKEN=fl_xxxxxxxxxxxxxxxx     # skip login entirely

Slug-first dispatch

The most intuitive way to run commands is to put the site slug first, like you're "inside" that site:

bash
fleets fightbets                         # GA4 summary (defaults to stats)fleets fightbets sources                 # top traffic sourcesfleets fightbets funnel session_start view   # conversion funnelfleets fightbets seo --range 30d         # GSC summary, last 30 daysfleets fightbets open settings           # print app URL

The legacy form fleets <command> <slug> (e.g. fleets sources fightbets) still works.

Commands

Setup

CommandDescription
fleets loginBrowser device-flow auth (no paste)
fleets add <domain> [--detect]Create a site; --detect auto-links GA4 + GSC
fleets connect <slug>Auto-detect GA4 + GSC via service account
fleets connect <slug> --property <id>Set GA4 property explicitly
fleets connect <slug> --gsc <site-url>Set GSC site explicitly

Analytics (per-site)

All accept --range (default 7d) and --json. Commands with top-N tables also accept --limit.

CommandTabData source
fleets list—All your sites with sparkline + Δ7d
fleets <slug> / fleets stats <slug>dayGA4 summary
fleets <slug> sourcessourcesGA4 traffic sources
fleets <slug> campaignscampaignsGA4 UTM campaigns
fleets <slug> referralsreferralsGA4 referrals
fleets <slug> landerslandersGA4 landing pages
fleets <slug> eventseventsGA4 events
fleets <slug> usersusersGA4 country + device breakdown
fleets <slug> funnel <step1> <step2>…funnelGA4 funnel
fleets <slug> seoseoGoogle Search Console
fleets <slug> edgeedgeCloudflare Analytics
fleets <slug> speedspeedPageSpeed Insights

Utility

CommandDescription
fleets <slug> exportDaily GA4 CSV/JSON export
fleets <slug> query "<text>"Natural-language analytics query
fleets <slug> open [tab]Print the app URL for a site

MCP server

The same package ships an MCP server, fleets-mcp, so agents (Claude Code, Claude Desktop, Cursor, …) can pull your live Fleets analytics as tools. It reuses the CLI's auth — run fleets login once (or set FLEETS_TOKEN) and the MCP server picks up the same token from ~/.fleets/config.json.

Add it to a client

Claude Code:

bash
claude mcp add fleets -- fleets-mcp

Claude Desktop / Cursor (claude_desktop_config.json or .cursor/mcp.json):

json
{  "mcpServers": {    "fleets": {      "command": "fleets-mcp"    }  }}

No global install? Use npx with the fleets-mcp launcher package:

json
{  "mcpServers": {    "fleets": {      "command": "npx",      "args": ["-y", "fleets-mcp"]    }  }}

If you authenticate via env instead of fleets login, add "env": { "FLEETS_TOKEN": "fl_xxx" } to the server entry.

Tools

All read-only except log_change (writes a change-log entry). Every analytics tool takes a slug (from list_sites) and an optional range (7d, 30d, 24h).

ToolWhat it returns
list_sitesAll sites + connected sources (GA4 / Cloudflare / GSC) — start here
statsGA4 summary: sessions, users, pageviews, events, engagement, bounce
sources · campaigns · referrals · landers · eventsGA4 breakdowns (accept limit)
users · devices · demographicsGA4 audience breakdowns
funnelGA4 conversion funnel across steps (2+)
seoGoogle Search Console summary
edgeCloudflare edge analytics (bots, humans, cache)
speedPageSpeed Insights + Core Web Vitals
insightsAI-ready signals worth investigating (optionally per site)
askNatural-language question answered server-side with citations
log_change · recallWrite / read the per-site change log

Environment variables

VariableDescription
FLEETS_TOKENPersonal access token. Skip fleets login entirely — useful for CI. Overrides ~/.fleets/config.json.

Range format

All --range flags accept:

  • 7d — last 7 days
  • 30d — last 30 days
  • 90d — last 90 days
  • 24h — last 24 hours (rounds to 1 day)

Requirements

  • Node.js >= 22 (LTS)
  • Works on macOS, Linux, Windows

Source: README.md at commit ba6d038

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.2LatestSep 16, 2026

Score

50% 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.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts