Jampp MCP Server
by springwq
This MCP server provides access to the Jampp Reporting API through the Model Context Protocol. It allows LLMs to fetch campaign performance data.
Last updated: N/A
Jampp MCP Server
This MCP server provides access to the Jampp Reporting API through the Model Context Protocol, allowing LLMs to fetch campaign performance data.
Features
- 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
Prerequisites
- Python 3.10 or higher
- Jampp API credentials (Client ID and Client Secret)
Installation
-
Clone this repository:
git clone https://github.com/yourusername/mcp-jampp.git cd mcp-jampp -
Install dependencies:
uv add "mcp[cli]" httpx python-dotenvOr with pip:
pip install "mcp[cli]" httpx python-dotenv -
Set up your environment variables: Create a
.envfile in the project root with your Jampp API credentials:JAMPP_CLIENT_ID=your_client_id JAMPP_CLIENT_SECRET=your_client_secret
Usage
Running the Server Directly
python jampp_mcp_server.py
Using with MCP Inspector
For development and testing:
mcp dev jampp_mcp_server.py
Integration with Claude Desktop
-
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
Available Tools
1. get_campaign_spend
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
2. get_campaign_daily_spend
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)
3. get_campaign_performance
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)
4. create_async_report
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"])
5. get_async_report_status
Checks the status of an asynchronous report.
Parameters:
report_id: ID of the async report to check
6. get_async_report_results
Gets the results of a completed asynchronous report.
Parameters:
report_id: ID of the async report to retrieve
7. get_available_metrics_and_dimensions
Gets a list of all available metrics and dimensions for reporting.
Example Queries for Claude
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?"
License
MIT