This MCP server provides access to the Jampp Reporting API through the Model Context Protocol, allowing LLMs to fetch campaign performance data.
- OAuth 2.0 authentication with automatic token refresh
- GraphQL-based API integration
- Campaign spend reporting
- Daily spend tracking
- Comprehensive performance metrics
- Asynchronous report generation and retrieval
- Available metrics and dimensions listing
- Python 3.10 or higher
- Jampp API credentials (Client ID and Client Secret)
-
Clone this repository:
git clone https://github.com/yourusername/mcp-jampp.git cd mcp-jampp
-
Install dependencies:
uv add "mcp[cli]" httpx python-dotenv
Or with pip:
pip install "mcp[cli]" httpx python-dotenv
-
Set up your environment variables: Create a
.env
file in the project root with your Jampp API credentials:JAMPP_CLIENT_ID=your_client_id JAMPP_CLIENT_SECRET=your_client_secret
python jampp_mcp_server.py
For development and testing:
mcp dev jampp_mcp_server.py
-
Install Claude Desktop from claude.ai/download
-
Configure Claude Desktop to use this server:
- Open or create
~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or%APPDATA%\Claude\claude_desktop_config.json
(Windows) - Add the following configuration:
{ "mcpServers": { "jampp": { "command": "python", "args": ["path/to/jampp_mcp_server.py"], "env": { "JAMPP_CLIENT_ID": "your_client_id", "JAMPP_CLIENT_SECRET": "your_client_secret" } } } }
- Open or create
-
Restart Claude Desktop
Fetches campaign spend data for a specific date range.
Parameters:
from_date
: Start date in YYYY-MM-DD formatto_date
: End date in YYYY-MM-DD formatcampaign_id
(optional): ID of the specific campaign to query
Fetches daily spend data for a specific campaign.
Parameters:
from_date
: Start date in YYYY-MM-DD formatto_date
: End date in YYYY-MM-DD formatcampaign_id
: ID of the campaign to querytimezone
(optional): Timezone for the report (default: UTC)
Fetches comprehensive performance metrics for campaigns.
Parameters:
from_date
: Start date in YYYY-MM-DD formatto_date
: End date in YYYY-MM-DD formatcampaign_id
(optional): ID of a specific campaign to querytimezone
(optional): Timezone for the report (default: UTC)
Creates an asynchronous report for larger data sets.
Parameters:
from_date
: Start date in YYYY-MM-DD formatto_date
: End date in YYYY-MM-DD formatdimensions
: List of dimensions to include (e.g. ["campaignId", "campaign"])metrics
: List of metrics to include (e.g. ["impressions", "clicks", "spend"])
Checks the status of an asynchronous report.
Parameters:
report_id
: ID of the async report to check
Gets the results of a completed asynchronous report.
Parameters:
report_id
: ID of the async report to retrieve
Gets a list of all available metrics and dimensions for reporting.
Here are some example queries you can ask Claude when using this MCP server:
- "Show me the campaign spend for the last 30 days"
- "What was the daily spend for campaign ID 12345 last week?"
- "Get me the performance metrics for all campaigns in January 2023"
- "Create an async report with campaign and country dimensions and impressions, clicks, and spend metrics for Q1"
- "What metrics and dimensions are available for Jampp reporting?"
MIT