MCP server for Conceptual Keywords & Creative Performance API
Project description
MCP Conceptual
An MCP (Model Context Protocol) server for the Conceptual Keywords & Creative Performance API. This server provides access to keyword and creative performance data from Google Ads and Meta advertising platforms.
Features
- Keywords Performance: Get keyword metrics, CAC analysis, and performance data
- Search Terms: Retrieve search terms that triggered your ads
- Creative Performance: Access Meta and Google Ads creative performance data
- Creative Management: Get and update creative status (pause/activate)
- Rate Limiting: Built-in awareness of API rate limits
- Error Handling: Comprehensive error handling with helpful messages
Installation
Using uvx (Recommended)
uvx mcp-conceptual
From Source
git clone <repository-url>
cd mcp-conceptual
pip install -e .
Configuration
Environment Variables
Create a .env file in your project root:
# Required
CONCEPTUAL_API_KEY=your_api_key_here
# Optional (defaults to production)
CONCEPTUAL_BASE_URL=https://api.conceptual.com/api
Getting an API Key
- Log into your Conceptual account
- Go to Account Settings
- Generate an API key for your customer account
- Set the
CONCEPTUAL_API_KEYenvironment variable
Usage
With Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"conceptual": {
"command": "uvx",
"args": ["mcp-conceptual"],
"env": {
"CONCEPTUAL_API_KEY": "your_api_key_here"
}
}
}
}
Standalone
# Run the server
mcp-conceptual
# Or with uvx
uvx mcp-conceptual
Available Tools
Keywords Tools
get_keyword_performance
Get keyword performance data including cost, clicks, conversions, and CAC analysis.
Parameters:
start_date(required): Start date (YYYY-MM-DD)end_date(required): End date (YYYY-MM-DD)view_type: keywords, search_terms, manual, or campaign_content (default: keywords)advanced_mode: Include advanced metrics (default: false)limit: Max records to return (1-1000, default: 100)offset: Records to skip for pagination (default: 0)sort_by: Field to sort by (cost, clicks, impressions, conversions, cac, ctr, cpc, conversion_rate)sort_direction: asc or desc (default: desc)
Rate limit: 60 requests per minute
get_search_terms_performance
Get search terms that triggered your ads with performance metrics.
Parameters:
start_date(required): Start date (YYYY-MM-DD)end_date(required): End date (YYYY-MM-DD)advanced_mode: Include advanced metrics (default: false)limit: Max records to return (1-1000, default: 100)offset: Records to skip for pagination (default: 0)sort_by: Field to sort bysort_direction: asc or desc (default: desc)
Rate limit: 60 requests per minute
Note: May be slower due to large volume of search terms data
get_manual_keywords_info
Get information about manual keywords functionality.
Parameters:
start_date(required): Start date (YYYY-MM-DD)end_date(required): End date (YYYY-MM-DD)
get_campaign_content_info
Get information about campaign content functionality.
Parameters:
start_date(required): Start date (YYYY-MM-DD)end_date(required): End date (YYYY-MM-DD)
Creative Tools
get_meta_creative_performance
Get Meta (Facebook/Instagram) creative performance data.
Parameters:
start_date(required): Start date (YYYY-MM-DD)end_date(required): End date (YYYY-MM-DD)platform: meta, google, or all (default: all)status: active, paused, or all (default: all)limit: Max records to return (1-500, default: 100)offset: Records to skip for pagination (default: 0)include_images: Include creative image URLs (default: true)sort_by: Field to sort by (spend, impressions, clicks, conversions, cpm, cpc, ctr, conversion_rate)sort_direction: asc or desc (default: desc)
Rate limit: 30 requests per minute
get_google_creative_performance
Get Google Ads creative performance data.
Parameters:
start_date(required): Start date (YYYY-MM-DD)end_date(required): End date (YYYY-MM-DD)limit: Max records to return (1-500, default: 100)offset: Records to skip for pagination (default: 0)sort_by: Field to sort bysort_direction: asc or desc (default: desc)
Rate limit: 30 requests per minute
get_creative_status
Get the current status of a specific creative/ad.
Parameters:
creative_id(required): Creative/Ad ID
update_creative_status
Update the status of a creative/ad (pause or activate).
Parameters:
creative_id(required): Creative/Ad IDstatus(required): New status (ACTIVE, PAUSED, active, or paused)
Rate limit: 10 requests per minute
Note: Requires Meta OAuth permissions for the customer account
Rate Limits
- Keywords endpoints: 60 requests per minute
- Creative endpoints: 30 requests per minute
- Creative status updates: 10 requests per minute
Data Caching
Data is cached for 120 minutes to ensure optimal performance. Cache expiration times are included in response metadata.
Error Handling
The server handles various error conditions:
- 401 Unauthorized: Invalid or missing API key
- 400 Bad Request: Missing platform configuration or invalid parameters
- 422 Validation Error: Invalid date formats or parameter values
- 429 Rate Limit: Rate limit exceeded (includes retry suggestions)
- 500 Server Error: Internal API errors
- 504 Timeout: Query timeout (for search terms with large datasets)
Development
Setup
git clone <repository-url>
cd mcp-conceptual
pip install -e ".[dev]"
Code Formatting
black src/
isort src/
Type Checking
mypy src/
Testing
pytest
License
MIT License - see LICENSE file for details.
Support
For API support, contact: support@conceptual.com
For issues with this MCP server, please file an issue in the repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_conceptual-0.1.5.tar.gz.
File metadata
- Download URL: mcp_conceptual-0.1.5.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9df7b38b4cba4be0d21f19d2ed5a60c4fc3b4c4c3afcae946fa26d14b74bc22
|
|
| MD5 |
260815266bc310bdd6ca43f06d4a91bb
|
|
| BLAKE2b-256 |
f8c36f3a7dbba6951a95b1118724e87d310b92dc0146037d0001268a281022c1
|
File details
Details for the file mcp_conceptual-0.1.5-py3-none-any.whl.
File metadata
- Download URL: mcp_conceptual-0.1.5-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ada8505764856509b99ba43d2e40942f281e42c1a71615c685bc45e073d194b5
|
|
| MD5 |
69fea667d5ab8904d564fc89b8543168
|
|
| BLAKE2b-256 |
82765b86b8c490abe3d39c3a5f6ed02d52591d0b44538730d20c8a3f71ab51db
|