Firstlytics

io.github.firstlyticsPublished by GitHub account firstlyticsv1.0.0Updated Nov 14, 2026

Your Firstlytics web and product analytics: reports, goals, funnels, users and custom SQL.

VerifiedStreamable HTTPWeb executableDatabasesData & AnalyticsBusiness & Commerce

Overview

AI-generated overview

Connects an assistant to Firstlytics web and product analytics so it can query reports, funnels, goals, users and custom SQL.

What you can do
  • List sites and read or change site settings
  • Read traffic reports: overviews, timeseries, breakdowns, live visitors, sessions and events
  • Inspect errors, Core Web Vitals, journeys, annotations and segments
  • Manage funnels and goals, including conversion and drop-off analysis
  • Query signed-in users, traits, retention, active users and feature usage
  • Run custom SQL and read Search Console data
When to use it
Useful when you want an assistant to answer questions about your own site traffic and product usage, such as where signups came from, and to maintain goals, funnels and segments without opening the dashboard.
Requirements
Either the hosted endpoint over Streamable HTTP with an Authorization bearer header, or the npm package run locally over stdio with Node.js 20 or later. Both need an organisation API key from Organization settings, supplied as FIRSTLYTICS_API_KEY or the Authorization header; key scopes decide which tools work. Custom SQL requires the Scale plan.
Before you install
The API key grants access to your analytics data and, with write scopes, lets the assistant create, change and delete sites, goals, funnels and members, and erase users. Grant read-only scopes unless changes are wanted. Visitor-derived text such as page titles, paths and event names reaches the assistant, so treat its suggestions from them with care. The key is sent only to the configured server URL.

Installation

In SourceWeft

  1. Open Firstlytics in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

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.firstlytics%2Fmcp/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.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

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

README

Firstlytics MCP server

Firstlytics is first-party web and product analytics: cookieless by default, with the tracker on your own domain. This is its Model Context Protocol server: Claude, Cursor and other AI assistants can answer questions such as "Where did last week's signups come from?" with your data, and manage your goals and funnels.

There are two ways to connect, with the same tools:

  • Hosted, at https://api.firstlytics.com/v1/mcp (Streamable HTTP), for clients that connect to remote servers: Claude Code, Cursor, VS Code, Windsurf and others. Nothing to install.
  • This package, @firstlytics/mcp, over stdio, for clients that start local servers, such as Claude Desktop: npx -y @firstlytics/mcp. It is a bridge to the hosted server, so its tools are always the hosted server's.

Both sign in with an organisation API key.

The API key

In Firstlytics, Organization settings → API keys → New key. The key's scopes decide what the assistant can do, and a key limited to some sites sees only those:

ScopeTools
stats:readreports (overview, timeseries, breakdowns, live, visits, events, errors, Web Vitals, journeys, goal conversions, funnel results) and custom SQL (run_query, get_query_schema: Scale plan)
sites:readlist_sites, site settings, funnels, annotations, segments
sites:writecreating, changing and deleting sites, goals and funnels
members:readlist_members
members:writeinviting people (not admins) and choosing which sites a member sees

For an assistant that only reads reports, give it stats:read and sites:read. Add the write scopes only when you want it to change things; it asks before deleting anything.

Set it up

Replace fl_live_... with your key.

Claude Code

bash
claude mcp add --transport http firstlytics https://api.firstlytics.com/v1/mcp \  --header "Authorization: Bearer fl_live_..."

Claude Desktop

Settings → Developer → Edit Config, then in claude_desktop_config.json:

json
{  "mcpServers": {    "firstlytics": {      "command": "npx",      "args": ["-y", "@firstlytics/mcp"],      "env": { "FIRSTLYTICS_API_KEY": "fl_live_..." }    }  }}

Restart Claude Desktop after saving. It needs Node.js 20 or later.

Cursor

In ~/.cursor/mcp.json (every project) or .cursor/mcp.json (one project):

json
{  "mcpServers": {    "firstlytics": {      "url": "https://api.firstlytics.com/v1/mcp",      "headers": { "Authorization": "Bearer fl_live_..." }    }  }}

VS Code

In .vscode/mcp.json; VS Code asks for the key the first time and keeps it:

json
{  "inputs": [    { "type": "promptString", "id": "firstlytics-key", "description": "Firstlytics API key", "password": true }  ],  "servers": {    "firstlytics": {      "type": "http",      "url": "https://api.firstlytics.com/v1/mcp",      "headers": { "Authorization": "Bearer ${input:firstlytics-key}" }    }  }}

Other clients

A client that connects to remote servers: https://api.firstlytics.com/v1/mcp, Streamable HTTP, with the header Authorization: Bearer fl_live_....

A client that starts local servers: the command npx -y @firstlytics/mcp, with FIRSTLYTICS_API_KEY in its environment.

Tools

ToolWhat it does
list_sites, get_sitethe sites the key sees, with visitors in the last 24 hours; one site's settings
create_site, update_site_config, delete_siteadd a site, change its settings, delete it
get_overview, get_overview_timeseriesvisitors, visits, page views, bounce rate, duration, over a period and over time
get_breakdowntop pages, sources, countries, devices, events, properties ...
get_live_statsvisitors now and in the last 30 minutes
get_sessions, get_sessionvisits, and every event of one visit
get_events, get_event_namesrecent events; custom events with counts
get_errors, get_web_vitals, get_journeysJavaScript errors, Core Web Vitals, common paths
get_funnels, analyze_funnel, save_funnel, delete_funnelfunnels and where visitors drop off
get_goals, create_goal, update_goal, delete_goalgoals and their conversions
get_annotations, list_segments, apply_segmentannotations, saved segments, a report with a segment
list_members, add_member, update_member_site_accessmembers, invitations, which sites a member sees
get_query_schema, run_querycustom SQL over the site's own data (Scale plan)
get_search_console_status, get_search_console_dataSearch Console: clicks, impressions, CTR and position
get_users, get_user, get_user_traitssigned-in users, one user's profile across days, users by trait
get_retention, get_active_users, get_feature_usageretention cohorts, DAU, WAU, MAU and stickiness, feature adoption
delete_usererase a user for an erasure request (asks for confirm_user_id)

Every tool does what the matching API endpoint does, with the same checks. The user tools read data collected with cookies, so they need a site in a cookie mode; on a cookieless site they find no users.

The full guide: firstlytics.com/docs/settings/mcp-server.

Configuration

Environment variable
FIRSTLYTICS_API_KEYan organisation API key (fl_live_...); required
FIRSTLYTICS_MCP_URLanother server than https://api.firstlytics.com/v1/mcp

Good to know

  • The assistant reads what your visitors left in your data: page titles, paths, referrers, event names. Treat what it suggests from them as you would any text from the web.
  • Delete a key in Organization settings when you no longer use it; the assistant loses access at once.
  • The key is sent only to the server in FIRSTLYTICS_MCP_URL, over HTTPS. This package keeps nothing on disk.

Development

bash
npm installnpm test

The tests run the bridge against a stand-in for the hosted server, in memory and as the firstlytics-mcp command over stdio.

Questions and bugs: GitHub issues or [email protected].

License

MIT, © FunFirst s.r.o.

Source: README.md at commit 70fd7f0

Tools

0
This server asks for a credential such as an API key, so SourceWeft could not read its tools without one and has not indexed them.

Version history

1
  1. v1.0.0LatestNov 14, 2026

Score

85% 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 daysRequired25 pts
  • Auth declaredRequired10 pts
  • 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