The Model Context Protocol (MCP) is a standard that connects AI systems with Appizer's data and functionality. MCP allows external AI models to access your organization's data in a secure and controlled manner.
Overview
MCP provides a standardized way for AI systems to:
- Access app data, events, and user information
- Query audience segments
- Retrieve analytics and insights
- Perform operations based on contextual understanding
Base URL
https://api.appizer.com/mcp
Authentication
MCP uses a dedicated API key for authentication. This key is separate from your regular Appizer API keys and can be managed in your organization settings.
X-MCP-API-Key: YOUR_MCP_API_KEY
Security Warning: MCP API keys have broad access to your organization's data. Keep them secure and rotate them regularly.
Session Handshake (Streamable HTTP)
MCP uses a session-based Streamable HTTP flow:
- Call
initialize - Read the returned
transport.sessionId - Send
MCP-Session-Id(orX-MCP-Session-Id) on subsequent calls such astools/list
Editor Config
Different MCP clients expect different config keys:
Windsurf
Windsurf expects serverUrl.
{
"mcpServers": {
"appizer": {
"serverUrl": "https://app.appizer.com/mcp",
"headers": { "X-MCP-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
SSE-based editors
Some editors expect url instead of serverUrl:
{
"mcpServers": {
"appizer": {
"url": "https://app.appizer.com/mcp",
"headers": { "X-MCP-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
Cursor IDE
Cursor uses url and stores config in ~/.cursor/mcp_config.json:
{
"mcpServers": {
"appizer": {
"url": "https://app.appizer.com/mcp",
"headers": { "X-MCP-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
Setup:
- Open Cursor Settings (Cmd/Ctrl + ,)
- Search for "MCP" or navigate to Features → Model Context Protocol
- Click "Edit Config" to open the config file
- Add the Appizer configuration above
- Restart Cursor
Claude Desktop
Claude Desktop uses url and stores config in ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"appizer": {
"url": "https://app.appizer.com/mcp",
"headers": { "X-MCP-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
Claude Code
Claude Code requires explicit transport specification for HTTP servers. You can configure it via CLI or JSON.
CLI Configuration (Recommended):
claude mcp add --transport http appizer https://app.appizer.com/mcp \
--header "X-MCP-API-Key: YOUR_MCP_API_KEY"
Important: The --transport http flag is required. Without it, Claude Code will not recognize the server correctly.
JSON Configuration:
Add to ~/.claude.json (user scope) or .mcp.json (project scope):
{
"mcpServers": {
"appizer": {
"transport": "http",
"url": "https://app.appizer.com/mcp",
"headers": { "X-MCP-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
Verify Connection:
claude mcp list
claude mcp get appizer
Google Antigravity
Google Antigravity uses serverUrl and is configured via Extensions → Model Context Protocol:
{
"mcpServers": {
"appizer": {
"serverUrl": "https://app.appizer.com/mcp",
"headers": { "X-MCP-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
Setup:
- Open Antigravity settings
- Navigate to Extensions → Model Context Protocol
- Add the Appizer configuration above
- Restart Antigravity
Available Endpoints
Server Information
GET /mcp
Returns information about the MCP server implementation.
Response:
{
"name": "Appizer MCP Server",
"version": "1.0",
"status": "active",
"timestamp": "2025-07-19T22:37:38-05:00"
}
Validate Authentication
GET /mcp/auth
Validates the MCP API key and returns organization information.
Response:
{
"authenticated": true,
"organization": {
"id": "org_123",
"name": "Acme Corp",
"description": "Enterprise solutions",
"timezone": "America/New_York"
},
"permissions": ["read", "write"],
"protocol_version": "1.0"
}
List Available Resources
GET /mcp/resources
Returns a list of resources available through the MCP server.
Response:
{
"resources": {
"apps": [
{
"id": "app_123",
"name": "Mobile App",
"description": "iOS and Android app",
"type": "app",
"uri": "/mcp/resources/apps/app_123"
}
],
"audiences": [
{
"id": "aud_456",
"name": "Active Users",
"description": "Users active in the last 30 days",
"type": "audience",
"app_id": "app_123",
"uri": "/mcp/resources/audiences/aud_456"
}
]
}
}
Get App Details
GET /mcp/resources/apps/:appId
Returns detailed information about a specific app.
Response:
{
"id": "app_123",
"name": "Mobile App",
"description": "iOS and Android app",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-07-01T14:22:10Z",
"stats": {
"users": 15420,
"events": 982345,
"last_activity": "2025-07-19T21:15:33Z"
},
"top_events": [
{
"name": "app_open",
"count": 45678
},
{
"name": "purchase",
"count": 2341
}
]
}
Query Events
GET /mcp/events
Allows querying events with various filters.
Parameters:
app_id- Filter by app IDevent_name- Filter by event nameuser_id- Filter by user IDlimit- Maximum number of results (default: 100, max: 1000)offset- Pagination offset (default: 0)
Response:
{
"events": [
{
"id": "evt_789",
"app_id": "app_123",
"user_id": "user_456",
"event_name": "purchase",
"properties": {
"amount": 49.99,
"item": "Premium Plan"
},
"created_at": "2025-07-19T20:15:33Z"
}
],
"pagination": {
"total": 982345,
"limit": 100,
"offset": 0,
"has_more": true
}
}
Common Use Cases
Agentic Coding Assistant
Implement an AI coding assistant that can access your app's event data to suggest code improvements or debug issues.
Customer Support AI
Build a support chatbot that can access user data and event history to provide personalized assistance.
AI-Powered Analytics
Generate insights and visualizations from your app data using AI.
Security Best Practices
- Rotate your MCP API keys regularly
- Monitor MCP usage for unusual patterns
- Limit MCP access to trusted AI systems
- Review the data accessible through MCP
- Disable MCP when not in use
Important: MCP provides AI systems with access to your organization's data. Always review what data is being shared and with which systems.
Next Steps
- MCP Authentication - Detailed authentication guide
- MCP Resources - Complete resource reference
- MCP Use Cases - Implementation examples