etracker MCP Server

etracker MCP Server

Enables AI assistants to query etracker analytics data such as page views, conversions, and ad performance via the Model Context Protocol.

Category
Visit Server

README

etracker MCP Server

An MCP (Model Context Protocol) server that exposes the etracker analytics API to AI assistants. Partners connect via HTTP/SSE and authenticate with their own API key plus an etracker account token passed per request.

Architecture

  • Transport: StreamableHTTP (MCP over HTTP + SSE)
  • Auth: Two-header scheme — X-Api-Key (partner key) + X-ET-Token (etracker account token)
  • Rate limiting: Three-layer bucket — burst guard (8 req/10 s), global window (40 req/5 min), per-partner window (20 req/5 min)
  • Sessions: In-memory, scoped per MCP session. Session affinity (ClientIP) required when running multiple replicas.

Endpoints

Method Path Auth
GET /health none
ALL /mcp required

Tools

Tool Description
list_reports Lists all available etracker reports for the account
get_report_info Returns available attributes and key figures for a report
get_report_metadata Returns raw column definitions (types, sortable, filterable flags)
get_pageviews Web analytics data (default report: EATime)
get_conversions Conversion and e-commerce data (default report: EAConversions)
get_ad_performance Marketing/ad channel performance (default report: EAMarketing)
get_report_data Generic tool — fetch data from any report with filters
compare_periods Compare a metric between two date ranges

All data tools accept from/to (YYYY-MM-DD, max 90 days), optional attributes and figures (up to 5 each), limit/offset, and sort_column/sort_order.

Authentication

The etracker token is not stored in the server — partners pass it per request via X-ET-Token. The server only stores the mapping of partner API keys to partner IDs.

Generate a partner key:

openssl rand -hex 32

PARTNER_API_KEYS format (JSON object):

{"<key>": "<partner-id>", "<key2>": "<partner-id2>"}

Local development

cp .env.example .env
# Edit .env and set PARTNER_API_KEYS
npm install && npm run dev

Docker

docker build -t etracker-mcp .
docker run -p 3000:3000 \
  -e PARTNER_API_KEYS='{"mykey":"partner-a"}' \
  etracker-mcp

Docker Compose

cp .env.example .env
# Edit .env: set PARTNER_API_KEYS and IMAGE
docker compose up -d

Kubernetes / Helm

Do not use --set for partnerApiKeys — Helm interprets {, }, and , as special syntax and corrupts the JSON. Use a values file instead:

# my-values.yaml
partnerApiKeys: '{"<key>":"<partner-id>"}'
service:
  type: ClusterIP  # or NodePort / LoadBalancer
helm install etracker-mcp ./helm -f my-values.yaml

Ingress

# my-values.yaml
partnerApiKeys: '{"<key>":"<partner-id>"}'
ingress:
  enabled: true
  className: nginx
  host: etracker-mcp.example.com
  tls: true
  tlsSecretName: etracker-mcp-tls

All Helm values

Value Default Description
partnerApiKeys "" JSON object mapping API keys to partner IDs
replicaCount 1 Number of replicas (session affinity handles routing)
image.repository etracker-mcp Container image
image.tag latest Image tag
service.type NodePort Service type
service.nodePort 30300 NodePort value (30000–32767)
service.sessionAffinityTimeoutSeconds 3600 Session stickiness timeout
ingress.enabled false Enable ingress
ingress.host etracker-mcp.example.com Ingress hostname
ingress.tls false Enable TLS
etrackerReports.pageviews EATime Override default pageviews report ID
etrackerReports.conversions EAConversions Override default conversions report ID
etrackerReports.ad EAMarketing Override default ad report ID
resources.requests.cpu 100m CPU request
resources.requests.memory 128Mi Memory request
resources.limits.cpu 500m CPU limit
resources.limits.memory 256Mi Memory limit

MCP client configuration

{
  "mcpServers": {
    "etracker": {
      "url": "https://etracker-mcp.example.com/mcp",
      "headers": {
        "X-Api-Key": "<your-partner-key>",
        "X-ET-Token": "<your-etracker-token>"
      }
    }
  }
}

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured