Analytics MCP
Mastra-based agents and workflows for weather insights and payment analytics. The project sets up two agents (weather and Stripe/PayPal analytics), automated workflows, and an MCP server that exposes analytics tools.
Features
- Weather agent & workflow: uses OpenRouter LLM + Open-Meteo for weather-driven activity suggestions.
- Analytics agent & workflow: summarizes Stripe, PayPal, and GA4 (BigQuery) performance with guardrails to avoid hallucinations.
- MCP server: exports analytics tools (Stripe) and the analytics agent for integration with other MCP clients.
- Utilities: currency conversion (exchangerate.host), time zone info, and LibSQL-backed memory.
Prerequisites
- Node.js >= 20.9
- NPM
- API credentials: OpenRouter, Stripe, PayPal, and a GCP service account with access to the BigQuery events table.
Environment setup
- Copy the sample env:
cp .env.example .env.development(or.env.staging/.env.production). - Fill the variables you need; the file
.env.<APP_ENV>is picked based onAPP_ENV(defaultdevelopment). - Put
GOOGLE_CLOUD_CREDENTIALSas a single-line service account JSON; replace newline characters in the private key with\\n.
Key variables:
APP_ENV: selects.env.<APP_ENV>.- OpenRouter:
OPENROUTER_API_KEY,OPENROUTER_MODEL_DEFAULT, optional overrides for agent/scorer. - Stripe:
STRIPE_API_KEY,STRIPE_BASE_URL(optional; defaults to Stripe API). - PayPal:
PAYPAL_CLIENT_ID,PAYPAL_CLIENT_SECRET,PAYPAL_BASE_URL(sandbox/production). - FX:
FX_BASE_URL(default exchangerate.host). - BigQuery GA4:
GOOGLE_CLOUD_PROJECT_ID,GOOGLE_CLOUD_CREDENTIALS,BIGQUERY_EVENTS_TABLE,BIGQUERY_DEV_EVENTS_TABLE.
Running
- Install deps:
npm install - Mastra dev mode:
npm run dev - Build:
npm run build - After build, start:
npm start
Note: observability storage defaults to :memory:; adjust in src/mastra/index.ts if you need persistence.
