Skip to main content
Glama
janus-analytics

Janus Analytics MCP Server

README.md
# Janus Analytics MCP Server

An [MCP server](https://modelcontextprotocol.io) that connects AI coding agents to your [Janus](https://addjanus.ca) analytics. Query your dashboard, events, funnels, and usage directly from Claude Code, Cursor, Windsurf, or any MCP-compatible client.

## Setup

### 1. Get a Janus API key with `Full access` scope

Sign up at [addjanus.ca](https://addjanus.ca) and create an API key in Settings. Set the scope to **Full access**.

Keys default to **Ingest** scope, which can only send events — an Ingest key returns `403` on every tool in this server. Generate a key specifically for MCP rather than reusing the one on your website: a Full access key reads all your analytics and can manage keys, so it must never appear in browser code.

> **Upgrading from an earlier version?** Existing keys were moved to `Ingest` scope when scoping shipped. If your tools started returning `403`, create a Full access key in Settings and update `JANUS_API_KEY`.

### 2. Add to your MCP client

**Claude Code**

```bash
claude mcp add janus -- npx -y @janus-analytics/mcp-server
```

Then set your API key:

```bash
export JANUS_API_KEY=jns_your_key_here
```

**Claude Desktop / Cursor / Windsurf**

Add to your MCP config file:

```json
{
  "mcpServers": {
    "janus": {
      "command": "npx",
      "args": ["-y", "@janus-analytics/mcp-server"],
      "env": {
        "JANUS_API_KEY": "jns_your_key_here"
      }
    }
  }
}
```

Config file locations:
- **Claude Desktop:** `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows)
- **Cursor:** Settings > MCP Servers
- **Windsurf:** `~/.windsurf/mcp.json`

## Tools

All tools are **read-only** — the server never modifies your data.

| Tool | Description |
|------|-------------|
| `get_dashboard_stats` | Event counts, unique visitors, top pages, referrers, UTM sources, countries, bounce rate, and daily trends. Optional `apiKeyId` filter. |
| `query_events` | Search the event log with filters for type, tags, date range, API key, and pagination. |
| `get_usage` | Current month's event usage vs. tier cap, API key count, and per-key breakdown. |
| `list_journeys` | List all funnels with step definitions, match scope, and conversion windows. |
| `get_journey_results` | Funnel conversion data — per-step counts, conversion rates, and median time between steps. |
| `list_api_keys` | Your API keys with names, prefixes, allowed origins, and last-used dates. |

## Example prompts

Once connected, ask your AI agent things like:

- "How's my traffic looking this week?"
- "Show me the top pages from the last 7 days"
- "What's my funnel conversion rate for the signup journey?"
- "Am I close to my usage limit this month?"
- "Which API key is getting the most events?"

## Configuration

| Environment variable | Required | Description |
|---------------------|----------|-------------|
| `JANUS_API_KEY` | Yes | Your Janus API key (starts with `jns_`). Must have `Full access` scope |

## License

MIT