@sealmetrics/mcp
MCP server for querying SealMetrics analytics from Claude Code, Claude Desktop, or any MCP-compatible client.
Setup
1. Get an API key
Go to Settings > API Tokens in your SealMetrics dashboard and generate a new API key.
2. Configure your MCP client
Add to your project's .mcp.json or ~/.claude/settings.json:
{
"mcpServers": {
"sealmetrics": {
"command": "npx",
"args": ["-y", "@sealmetrics/mcp"],
"env": {
"SEALMETRICS_API_KEY": "sm_xxxx...",
"SEALMETRICS_SITE_ID": "my-site"
}
}
}
}
Environment variables
| Variable | Required | Description |
|---|---|---|
SEALMETRICS_API_KEY |
Yes | Your API key (starts with sm_) |
SEALMETRICS_SITE_ID |
No | Default site ID (skips needing to pass site_id to every tool) |
SEALMETRICS_BASE_URL |
No | API base URL (default: https://my.sealmetrics.com/api/v1) |
Available tools
list_sites
List all sites accessible with your API key.
get_overview
Dashboard KPIs: pageviews, entrances, bounce rate, conversions, revenue. Includes time series data and optional period comparison.
Parameters: site_id, period, compare
get_traffic_sources
Traffic broken down by source (utm_source): google, facebook, direct, etc.
Parameters: site_id, period, compare, limit, sort_by, sort_order
get_traffic_mediums
Traffic broken down by medium (utm_medium): organic, cpc, email, referral, etc.
Parameters: site_id, period, compare, limit, sort_by, sort_order
get_campaigns
Campaign performance (utm_campaign) with entrances, conversions, and revenue.
Parameters: site_id, period, compare, limit, sort_by, sort_order, utm_source, utm_medium
get_pages
Metrics per page URL path: pageviews, entrances, conversions.
Parameters: site_id, period, compare, limit, sort_by, sort_order, path_filter, multi-value filters country, device_type, browser, os, channel_group, utm_source, utm_medium, utm_campaign, utm_term, and include (device|browser|os|channel_group).
Breaking change in 1.2.0:
countryis nowarray of string(wasstring). Passcountry: ["ES"]instead ofcountry: "ES".
get_landing_pages
Landing page performance: entrances, bounce rate, conversions.
Parameters: site_id, period, compare, limit, sort_by, sort_order, path_filter, plus the same multi-value filter set and include parameter as get_pages (same breaking change on country).
get_conversions
Aggregated conversions by type (purchase, signup) with count, revenue, and average order value.
Parameters: site_id, period, compare, limit, sort_by, sort_order, utm_source, utm_medium, country
For per-event detail use get_conversions_raw. For per-product analysis use get_conversion_items_raw.
get_microconversions
Aggregated microconversions (add_to_cart, newsletter_signup, etc.) by type with counts.
Parameters: site_id, period, compare, limit, sort_by, sort_order, conversion_type
For per-event detail use get_microconversions_raw.
get_conversions_raw
Raw conversion rows (one per event) with timestamp_utc, timestamp_local, full attribution. Date range capped at 31 days; limit capped at 100 (default 10) to control LLM token usage.
Parameters: site_id, period or (start_date + end_date), page, limit (1–100), include_properties (default false), and multi-value filters conversion_type, country, device_type, browser, os, channel_group, utm_source, utm_medium, utm_campaign, utm_term, utm_content.
When include_properties=false the custom properties map is stripped from each row to keep responses compact.
get_microconversions_raw
Same shape as get_conversions_raw but for /stats/microconversions/raw (no amount/clid).
get_conversion_items_raw
One row per item inside a conversion (e.g. one row per product in a purchase). properties is always included — that's where product_id, sku, price, quantity live.
Parameters: site_id, period or (start_date + end_date), page, limit (1–100), and the same multi-value filter set as the other raw tools. Note: this tool does not accept include_properties.
get_countries
Traffic by country with entrances, conversions, and revenue.
Parameters: site_id, period, compare, limit, sort_by, sort_order
get_devices
Device type (desktop/mobile/tablet), browser, and OS breakdown in a single call.
Parameters: site_id, period, compare
get_funnel
Funnel analysis with step-by-step conversion rates and dropoff.
Parameters: site_id, period, country
get_tracking_code
Get the tracking pixel code for a site and the full JavaScript API reference for implementing pageviews, conversions, microconversions, and content grouping. Use this when you need to install tracking on a website.
Parameters: site_id
Common parameters
| Parameter | Values | Default | Description |
|---|---|---|---|
site_id |
string | $SEALMETRICS_SITE_ID |
Site to query |
period |
today, yesterday, 7d, 30d, 90d, this_month, last_month, this_year, etc. |
30d |
Time period |
compare |
previous, yoy |
none | Comparison mode |
limit |
1-100 | 20 | Max rows returned |
page |
number | 1 | Page number for paginated results |
sort_by |
varies per tool | varies | Sort field |
sort_order |
asc, desc |
desc |
Sort direction |
Example usage
Once configured, you can ask Claude:
- "Show me an overview of my site for the last 7 days"
- "What are the top traffic sources this month?"
- "Compare this month's conversions with last month"
- "Which landing pages have the highest bounce rate?"
- "Show me revenue by country for Q1"
Development
npm install
npm run build # Compile TypeScript
npm test # Run tests
npm run dev # Run with tsx (dev mode)
License
MIT