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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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