Tracking Plan MCP Server
README.md
# Tracking Plan MCP Server
> Beginner-friendly Model Context Protocol (MCP) server built with **TypeScript + Node.js** to create, list, inspect, and validate tracking plans for **Ecommerce** and **Lead-Generation / Service Businesses**.





---
## š Project Overview
The **Tracking Plan MCP Server** allows AI assistants (such as Cursor, Claude Desktop, and Antigravity) to manage analytics tracking specifications locally.
It supports two distinct business models out-of-the-box:
1. **Ecommerce Businesses**: Product views, cart activity, checkout steps, payment info, revenue, and purchase transactions.
2. **Lead Generation & Service Businesses**: Service views, form starts, form submissions, lead generation, phone clicks, email clicks, WhatsApp clicks, appointment bookings, and quote requests.
---
## šļø Architecture & Data Flow
```text
AI Assistant (Cursor / Claude Desktop / Antigravity)
ā
MCP Client
ā
MCP Server (stdio transport)
ā
MCP Tools (create_tracking_plan, get_tracking_plan, list_tracking_plans, validate_tracking_event)
ā
Tracking Plan Service (Business logic & Validation)
ā
JSON Storage (fs/promises)
ā
data/tracking-plans.json
```
---
## š¼ Supported Business Types
### š 1. Ecommerce
Tracks:
- Product page views (`view_item`)
- Cart interactions (`add_to_cart`, `remove_from_cart`, `view_cart`)
- Checkout flow (`begin_checkout`, `add_payment_info`)
- Purchases & revenue (`purchase`)
*Purchase Event Required Parameters*: `transaction_id`, `value`, `currency`, `items`.
### š 2. Lead Generation / Service Businesses
Tracks:
- Service page views (`view_service`)
- Form interactions (`form_start`, `form_submit`)
- Lead submissions (`generate_lead`)
- Direct contacts (`contact`, `phone_click`, `email_click`, `whatsapp_click`)
- Appointment bookings (`appointment_start`, `appointment_booked`)
- Quote requests (`quote_request`)
*Lead Submission Required Parameters*: `form_id`, `form_name`.
---
## š ļø MCP Tools Reference
| Tool Name | Parameters | Description |
| :--- | :--- | :--- |
| `create_tracking_plan` | `id`, `name`, `description`, `business_type`, `platform`, `events` | Creates a new tracking plan after validating business_type and checking duplicate IDs. |
| `get_tracking_plan` | `plan_id` | Retrieves complete tracking plan definition. |
| `list_tracking_plans` | `business_type` *(optional)* | Lists all tracking plans, optionally filtered by `ecommerce` or `lead_generation`. |
| `validate_tracking_event` | `plan_id`, `event` | Validates a tracking payload against plan schemas, returning errors and warnings. |
---
## š Project Structure
```text
tracking-plan-mcp/
āāā data/
ā āāā tracking-plans.json # JSON persistence storage
āāā dist/ # Compiled JavaScript output
āāā src/
ā āāā index.ts # MCP Server entry point & tool registration
ā āāā models/
ā ā āāā tracking.ts # TypeScript types, Zod schemas, & ErrorCodes
ā āāā services/
ā ā āāā trackingPlanService.ts # Business logic & event validator
ā āāā storage/
ā ā āāā jsonStorage.ts # Safe JSON storage reader/writer
ā āāā tools/
ā āāā createTrackingPlan.ts # create_tracking_plan tool handler
ā āāā getTrackingPlan.ts # get_tracking_plan tool handler
ā āāā listTrackingPlans.ts # list_tracking_plans tool handler
ā āāā validateTrackingEvent.ts # validate_tracking_event tool handler
āāā tests/
ā āāā createTrackingPlan.test.ts
ā āāā getTrackingPlan.test.ts
ā āāā listTrackingPlans.test.ts
ā āāā validateTrackingEvent.test.ts
āāā .gitignore
āāā package.json
āāā tsconfig.json
āāā vitest.config.ts
āāā README.md
```
---
## š Quick Start & Development
### 1. Installation
```bash
npm install
```
### 2. Run Vitest Unit Tests
```bash
npm test
```
### 3. Build Project
```bash
npm run build
```
### 4. Start Server
```bash
npm start
```
---
## āļø MCP Client Configuration
### Cursor IDE Configuration
Add to `.cursor/mcp.json` or Cursor MCP settings:
```json
{
"mcpServers": {
"tracking-plan-mcp": {
"command": "node",
"args": ["C:/Users/FLS/.gemini/antigravity/scratch/tracking-plan-mcp/dist/index.js"]
}
}
}
```
### Antigravity Configuration
Add to `.gemini/antigravity/mcp_config.json`:
```json
{
"mcpServers": {
"tracking-plan-mcp": {
"command": "node",
"args": ["C:/Users/FLS/.gemini/antigravity/scratch/tracking-plan-mcp/dist/index.js"]
}
}
}
```
---
## š¬ Example AI Prompts
- *"Create an ecommerce GA4 tracking plan."*
- *"Create a lead generation tracking plan for an HVAC business."*
- *"Show me all ecommerce tracking plans."*
- *"Show me all lead generation tracking plans."*
- *"Validate this purchase event against the ecommerce tracking plan: `{ name: 'purchase', value: 99.99, currency: 'USD' }`"*
- *"Validate this lead form submission against the lead generation tracking plan: `{ name: 'generate_lead', form_id: 'f1', form_name: 'Contact Form' }`"*
---
## š License
Licensed under the [MIT License](LICENSE).
TDQS
B3.4/5.0
Scored across 4 tools
Disambiguation5/5
Each tool has a distinct purpose: retrieve a single plan, list plans, create a plan, and validate an event. No overlapping functionality, and the boundaries are clear from names and descriptions.
Naming Consistency5/5
All tools follow a consistent snake_case verb_noun pattern (get_, list_, create_, validate_). No deviations or mixed conventions.
Tool Count5/5
Four tools is a lean and well-scoped set for tracking plan operations. Each tool serves a clear role without redundancy.
Completeness3/5
Core operations (create, read/list, validate event) are present, but missing update and delete operations leaves a notable gap in lifecycle management. Agents cannot modify or remove tracking plans.
Maintenance
ActivitySlowing
ResponsivenessNo issues