muze-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MUZE_API_KEY | Yes | Your mz_live_ API key | |
| MUZE_BASE_URL | No | Override API URL (default: https://backend.muzecmo.com/api/v1) | https://backend.muzecmo.com/api/v1 |
| MUZE_DEFAULT_ACCOUNT_ID | No | Skip get_my_accounts if you always use one Meta account | |
| MUZE_DEFAULT_CUSTOMER_ID | No | Skip get_my_accounts if you always use one Google account |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_my_accountsA | Get the user's connected Meta ad account IDs and Google Ads customer IDs. Call this first before any other tool — never ask the user for account IDs. If MUZE_DEFAULT_ACCOUNT_ID is set, this is skipped and defaults are returned. If multiple accounts exist, list them so the user can choose. |
| get_meta_performanceA | Get Meta Ads performance metrics (spend, impressions, clicks, CTR, CPC, ROAS, conversions). account_id comes from get_my_accounts. Dates in YYYY-MM-DD format; default = last 30 days. |
| get_google_performanceA | Get Google Ads performance metrics (spend, impressions, clicks, CTR, CPC, conversions, ROAS). customer_id comes from get_my_accounts. Dates in YYYY-MM-DD format; default = last 30 days. |
| list_campaignsA | List all campaigns for a Meta ad account with their IDs, names, status, and budget. account_id comes from get_my_accounts. Use campaign IDs from this response in analyze_campaign_ads. |
| analyze_campaign_adsB | Run AI analysis on all ads in a campaign. Returns performance scores and recommendations. campaign_id comes from list_campaigns. Dates in YYYY-MM-DD format. |
| analyze_single_adC | Run AI analysis on a single ad. Returns detailed analysis, performance score, and recommendations. Dates in YYYY-MM-DD format. |
| get_account_analysisA | Fetch the most recent stored AI analysis for all ads in an account. Fast — reads from the database without re-running analysis. Use this before analyze_account_ads. |
| analyze_account_adsA | Re-run a full AI analysis of ALL ads in the account. WARNING: This is expensive and takes 30-60 seconds. Individual ads must have been analyzed in the same date range first. Use get_account_analysis to fetch existing results instead. Only call with confirmed=True after the user explicitly requests a fresh re-analysis. |
| generate_ad_from_urlB | Generate an ad creative concept from a product URL. Only ask the user for product_url — all other params have smart defaults. Brand guidelines are resolved server-side. |
| list_productsA | List products in the user's account with internal IDs, names, URLs, and selling propositions. Call this before generate_ad_concepts to resolve product_id — never ask the user for IDs directly. |
| generate_ad_conceptsA | Generate multiple ad creative concepts for an existing product in the system. product_id must come from list_products — match the product name the user mentions, then pass the corresponding internal ID. Never ask the user to provide a product ID. |
| list_competitorsA | List all tracked competitor brands with their internal IDs. account_id comes from get_my_accounts. Use competitor IDs from this response for get_competitor_ads and scrape_competitor_ads. |
| get_competitor_adsA | Get scraped ads for a specific competitor including creative previews and copy. competitor_id must come from list_competitors — match by brand name, then use the internal ID. |
| scrape_competitor_adsA | Start an async scrape job to fetch fresh competitor ads. Returns a run_id (integer). Then call get_scrape_status with that run_id and poll every few seconds until status is 'completed', then call get_competitor_ads. |
| get_scrape_statusA | Poll the status of a competitor scrape job started by scrape_competitor_ads. Status values: 'pending', 'running', 'completed', 'failed'. Poll every few seconds until status is 'completed', then call get_competitor_ads. |
| pause_adA | Pause a live Meta ad. The ad will stop spending immediately. IMPORTANT: Only call with confirm=True after the user has explicitly confirmed they want to pause this specific ad. If confirm is False, return the confirmation message. |
| resume_adA | Resume a paused Meta ad. The ad will start spending again. IMPORTANT: Only call with confirm=True after the user has explicitly confirmed they want to resume this specific ad. If confirm is False, return the confirmation message. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Agent-Prod/muze-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server