Ad Copy AI MCP
The Ad Copy AI MCP server provides AI-powered tools for generating, managing, and optimizing ad copy and campaigns across multiple platforms. Key capabilities include:
Generate Ad Copy — Create platform-specific ad copy by specifying platform (e.g., Facebook), tone, key benefit, and industry
Generate Headlines — Produce multiple headline options tailored to a product and platform (e.g., Google)
Generate Variants — Create multiple ad copy variations for A/B testing
Create Campaign — Set up an ad campaign with a name, product, target platforms, budget, and start date
Get Campaign — Retrieve details of an existing campaign by ID
Add Creative — Attach a creative asset to an existing campaign
Get Performance — Fetch performance metrics for a specific creative within a campaign
Optimize Copy — Get optimization suggestions for existing ad copy based on a target metric (e.g., CTR)
Get Best Performing — Retrieve the top-performing creatives within a campaign, ranked by performance
All tools include rate limits (10 requests/day on the free tier) and ensure compliance with the EU AI Act.
Ad Copy Ai MCP
AI-powered ad copy generation for multi-platform campaigns
AI-powered ad copy generation for multi-platform campaigns.
🚀 Quick Start
# Install via pip
pip install ad_copy_ai_mcp
# Or install via Smithery
npx -y @smithery/cli@latest install ad-copy-ai-mcp --client claudeRelated MCP server: Clipboard AI MCP
✨ Features
MCP protocol compliant
Easy installation
Well-documented API
Production-ready
Active maintenance
📖 Documentation
🛡️ Compliance
This MCP server is built with EU AI Act compliance built-in:
✅ Article 9 — Risk Management System
✅ Article 13 — Transparency & Instructions for Use
✅ Article 15 — Bias Detection & Testing
✅ Article 26 — FRIA Support (where applicable)
✅ Article 50 — AI Content Watermarking (where applicable)
Need help getting compliant? Book a free 15-min diagnostic →
🏢 Enterprise
Need custom development, SLA guarantees, or white-label deployment?
Pro: $99/mo — Full MCP suite + EU AI Act tracking
Enterprise: $499/mo — Custom dev + SLA + Dedicated support
View Pricing → | Contact Sales →
🤝 Part of the MEOK Ecosystem
This server is part of the MEOK AI Labs ecosystem — 300+ MCP servers for sovereign AI governance.
Domain | Purpose |
EU AI Act compliance marketplace | |
AI safety & monitoring | |
Sovereign AI platform | |
Legacy modernization |
📜 License
MIT © CSOAI-ORG
💸 Try MEOK in 30 seconds — instant buy ladder
Tier | Price | What you get | Stripe |
Smoke test | £1 | Signed sample MCP-Hardening report + Article 50 PDF | |
Quick Kit | £9 | EU AI Act Article 50 implementation guide (C2PA + EU-Icon) | |
Founder Call | £29 | 30-min 1-on-1 with the founder |
Refundable. UK Stripe — VAT-clean. Builds on the 81-MCP MEOK fleet. Verify any signed report at https://meok.ai/verify.
Configuration
Add to your claude_desktop_config.json (Claude Desktop) or your MCP client config:
{
"mcpServers": {
"ad-copy-ai-mcp": {
"command": "uvx",
"args": ["ad-copy-ai-mcp"]
}
}
}Or: pip install ad-copy-ai-mcp then run the ad-copy-ai-mcp command (stdio transport).
Examples
Once configured, ask your assistant, for example:
"Use
generate_ad_copyto …""Use
generate_variantsto …""Use
create_campaignto …"
Available Tools
9 toolsadd_creativeD
Add a creative to campaign
Behavior: This tool generates structured output without modifying external systems. Output is deterministic for identical inputs. No side effects. Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage.
When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards.
When NOT to use: Not suitable for real-time production decision-making without human review of results.
Args: campaign_id (str): The campaign id to analyze or process. creative (dict): The creative to analyze or process. api_key (str): The api key to analyze or process.
Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | ||
| creative | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description includes a detailed 'Behavioral Transparency' section covering side effects, authentication, and rate limits. However, the core claim of being read-only directly contradicts the tool name 'add_creative', which implies mutation. Extensive detail is provided but undermined by this inconsistency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose with repetitive sections (e.g., behavioral details stated twice). It is not front-loaded effectively; key contradictions emerge later. Several sentences could be merged or removed without loss of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, nested objects, output schema) and the contradictions in the description, the agent cannot determine basic usage. The description fails to reconcile the 'add' and 'read-only' behaviors, making it incomplete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. The 'Args' section adds vague descriptions like 'The campaign id to analyze or process' that don't clarify parameter roles. No additional meaning beyond the schema is provided, and the descriptions are inconsistent with the tool's purported function.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Add a creative to campaign' but later claims the tool is read-only and generates structured output without modifying external systems. The 'When to use' section suggests analysis/classification, contradicting the tool name. This is misleading and fails to state a clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'When to use' and 'When NOT to use' sections are present but contradictory to the tool's apparent function. The guidance for analysis/classification does not align with the 'add creative' naming, providing no actionable context for when to use this tool over siblings like generate_ad_copy or create_campaign.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_campaignD
Create an ad campaign
Behavior: This tool generates structured output without modifying external systems. Output is deterministic for identical inputs. No side effects. Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage.
When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards.
When NOT to use: Not suitable for real-time production decision-making without human review of results.
Args: campaign_name (str): The campaign name to analyze or process. product (str): The product to analyze or process. platforms (list): The platforms to analyze or process. budget (float): The budget to analyze or process. start_date (str): The start date to analyze or process. api_key (str): The api key to analyze or process.
Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_name | Yes | ||
| product | No | ||
| platforms | No | ||
| budget | No | ||
| start_date | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides extensive behavioral details (no side effects, idempotency, rate limits, error handling, data privacy). However, it claims read-only behavior while the name implies a mutation, so transparency is partially compromised.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly long (multiple paragraphs) with repetitive sections (Behavior and Behavioral Transparency overlap). The 'Args' section is verbose and unhelpful. It could be condensed to eliminate redundancy and contradiction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers rate limits, errors, and privacy, the fundamental purpose mismatch leaves the tool contextually incomplete. The output schema is not described, and the contradiction between name and behavior is not resolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. The 'Args' list merely repeats parameter names with uninformative phrases like 'to analyze or process'. No constraints, formats, or examples are added, providing no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening line say 'create_campaign' and 'Create an ad campaign', but the 'Behavior' section states the tool generates structured output without modifying external systems, implying it is an analysis tool, not a creation tool. This contradiction makes the purpose misleading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'When to use' section suggests using the tool for structured analysis or classification, which conflicts with the creation name. No alternatives among siblings (e.g., add_creative) are mentioned. The guidance is misleading and does not help the agent decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_ad_copyA
Generate ad copy for a platform
Behavior: This tool generates structured output without modifying external systems. Output is deterministic for identical inputs. No side effects. Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage.
When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards.
When NOT to use: Not suitable for real-time production decision-making without human review of results.
Args: product (str): The product to analyze or process. platform (str): The platform to analyze or process. tone (str): The tone to analyze or process. benefit (str): The benefit to analyze or process. industry (str): The industry to analyze or process. api_key (str): The api key to analyze or process.
Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
| Name | Required | Description | Default |
|---|---|---|---|
| product | No | our product | |
| platform | No | ||
| tone | No | professional | |
| benefit | No | ||
| industry | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and excels. It includes a dedicated 'Behavioral Transparency' section detailing side effects (read-only), authentication, rate limits, error handling, idempotency, and data privacy. No contradictions with missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections but is somewhat verbose. The 'Behavior' and 'Behavioral Transparency' sections partially overlap, and the 'Args' list could be more concise. It is front-loaded with purpose, but contains redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, 0% schema coverage, and an output schema, the description covers behavioral aspects well but fails to explain the output or tailor the generic 'analysis/classification' framing to ad copy generation. The output schema exists, so return details are not required, but a brief output description would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. However, each parameter description (e.g., 'The product to analyze or process') is generic and adds no meaningful context beyond the parameter name. For a tool generating ad copy, expected values or constraints are not mentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Generate ad copy for a platform' and expands on behavior, but the 'When to use' section generalizes to 'structured analysis or classification', which slightly conflicts with the tool name. It does not distinguish from siblings like generate_headlines or generate_variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'When to use' and 'When NOT to use' sections, but does not compare to sibling tools or give specific scenarios for this tool versus alternatives. Guidance is present but generic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_headlinesC
Generate multiple headlines
Behavior: This tool generates structured output without modifying external systems. Output is deterministic for identical inputs. No side effects. Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage.
When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards.
When NOT to use: Not suitable for real-time production decision-making without human review of results.
Args: product (str): The product to analyze or process. platform (str): The platform to analyze or process. count (int): The count to analyze or process. api_key (str): The api key to analyze or process.
Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
| Name | Required | Description | Default |
|---|---|---|---|
| product | No | our product | |
| platform | No | ||
| count | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
A detailed 'Behavioral Transparency' section covers side effects, authentication, rate limits, error handling, idempotency, and data privacy. This fully compensates for missing annotations and gives the agent comprehensive understanding of tool behavior. No contradictions with the tool's nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bold section headers, but it contains redundancy (e.g., 'Behavior' and 'Behavioral Transparency' overlap) and is longer than necessary. The generic 'Args' section adds little value. A more concise, tool-specific version would be better.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema existing, the description fails to link inputs to headline generation, leaving a completeness gap. The extensive behavioral coverage is positive, but the core function and parameter roles are insufficiently specified. An agent would struggle to understand how to use the parameters correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must add meaning. The 'Args' section merely repeats parameter names and adds generic phrases like 'The product to analyze or process', which is unhelpful. No context is given for how 'product', 'platform', 'count', or 'api_key' relate to headline generation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Generate multiple headlines' but then shifts to generic language about 'structured analysis or classification'. This mismatch between the tool name and the description's focus on analysis undermines clarity. The verb and resource are stated only in the first line, and subsequent sections are inconsistent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' and 'When NOT to use' sections are present, providing some guidance on context and caution. However, the guidelines are generic and do not differentiate this tool from siblings like generate_ad_copy or generate_variants. The advice to use for 'structured analysis' does not align well with headline generation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_variantsA
Generate multiple ad variants for A/B testing
Behavior: This tool generates structured output without modifying external systems. Output is deterministic for identical inputs. No side effects. Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage.
When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards.
When NOT to use: Not suitable for real-time production decision-making without human review of results.
Args: product (str): The product to analyze or process. platform (str): The platform to analyze or process. count (int): The count to analyze or process. api_key (str): The api key to analyze or process.
Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
| Name | Required | Description | Default |
|---|---|---|---|
| product | No | our product | |
| platform | No | ||
| count | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully compensates by detailing side effects (read-only, no side effects), authentication, rate limits, error handling, idempotency, and data privacy in a dedicated 'Behavioral Transparency' section. This is comprehensive and exceeds typical expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections but contains redundancy (e.g., 'Behavior' and 'Behavioral Transparency' overlap). The 'Args' list adds no value beyond the schema, making it less concise than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers usage, behavior, and limitations adequately, the parameter descriptions are vague, and the output format is not explained despite having an output schema. This leaves gaps for a tool generating ad variants, especially relative to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the 'Args' section merely repeats parameter names with generic phrases like 'to analyze or process', adding no meaningful context. The description fails to explain what each parameter actually represents or how to use it effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Generate multiple ad variants for A/B testing', which clearly specifies the verb (generate), resource (ad variants), and purpose (A/B testing). This distinguishes it from sibling tools like 'add_creative' or 'generate_ad_copy'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes dedicated 'When to use' and 'When NOT to use' sections, providing clear context for appropriate usage. However, it does not explicitly discuss alternatives among sibling tools, which would improve differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_best_performingA
Get best performing creatives
Behavior: This tool generates structured output without modifying external systems. Output is deterministic for identical inputs. No side effects. Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage.
When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards.
When NOT to use: Not suitable for real-time production decision-making without human review of results.
Args: campaign_id (str): The campaign id to analyze or process. limit (int): The limit to analyze or process. api_key (str): The api key to analyze or process.
Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | ||
| limit | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Thoroughly details side effects, authentication, rate limits, error handling, idempotency, and data privacy, far exceeding what annotations would provide. No annotations exist, so description fully compensates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections, but lengthy and contains redundancy (e.g., Behavior and Behavioral Transparency overlap). Could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers most aspects but lacks specificity on what 'best performing' means (metrics, criteria) and does not use the output schema to offset explanation. Adequate but incomplete for a tool with 3 parameters and rate limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description's 'Args' section only repeats parameter names and types with generic phrases like 'The campaign id to analyze or process.' No meaningful semantics added beyond schema defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves best-performing creatives, but does not explicitly differentiate from sibling tools like 'get_performance' or 'get_campaign'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides general when/why to use and not use, but lacks direct comparison to alternative tools. It gives context but not specific tool selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaignA
Get campaign details
Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage.
When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards.
When NOT to use: Not suitable for real-time production decision-making without human review of results.
Args: campaign_id (str): The campaign id to analyze or process. api_key (str): The api key to analyze or process.
Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully covers read-only, idempotent, stateless behavior, authentication, rate limits, error handling, and data privacy. Excellent detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections, but contains redundancy (e.g., 'Behavior' and 'Behavioral Transparency' overlap). Could be more concise without sacrificing important details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers behavior, auth, rate limits, and error handling. It could briefly mention what kind of details are returned (e.g., campaign settings, metrics), but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. The 'Args' section provides only generic descriptions ('The campaign id to analyze or process.') that add minimal meaning beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets campaign details and is read-only. However, it does not differentiate from sibling tools like get_performance or get_best_performing, relying on a generic 'structured analysis' purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'When to use' and 'When NOT to use' sections, giving clear context for appropriate invocation. However, it lacks references to alternative sibling tools, which would improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_performanceA
Get creative performance metrics
Behavior: This tool generates structured output without modifying external systems. Output is deterministic for identical inputs. No side effects. Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage.
When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards.
When NOT to use: Not suitable for real-time production decision-making without human review of results.
Args: campaign_id (str): The campaign id to analyze or process. creative_id (str): The creative id to analyze or process. api_key (str): The api key to analyze or process.
Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | No | ||
| creative_id | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers behavioral aspects: side effects (read-only), authentication, rate limits, error handling, idempotency, and data privacy. This is comprehensive and leaves no ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections but is somewhat verbose. The 'Behavior' and 'Behavioral Transparency' sections overlap, causing repetition. A more streamlined version would be equally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers behavioral context and usage. However, it lacks specifics about the metrics returned (e.g., dimensions like clicks, impressions) and the 'When to use' guidance is generic. Slightly incomplete for full agent comprehension.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema lacks descriptions (0% coverage), and the description's 'Args' section only repeats parameter names with generic phrases like 'The campaign id to analyze or process.' It fails to explain the purpose or expected format of each parameter, especially 'api_key' which is described as something to 'analyze' rather than authenticate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get creative performance metrics' with a specific verb and resource. It distinguishes from siblings like 'get_best_performing' by focusing on general performance data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit when-to-use and when-not-to-use sections, providing context for appropriate usage. However, it does not compare directly to sibling tools like 'get_best_performing' or 'get_campaign', which would further clarify when to choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_copyA
Optimize existing copy based on performance
Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage.
When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards.
When NOT to use: Not suitable for real-time production decision-making without human review of results.
Args: creative_id (str): The creative id to analyze or process. target_metric (str): The target metric to analyze or process. api_key (str): The api key to analyze or process.
Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
| Name | Required | Description | Default |
|---|---|---|---|
| creative_id | Yes | ||
| target_metric | No | ctr | |
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes full responsibility for behavioral disclosure. It thoroughly covers side effects (read-only, stateless), authentication (none for basic, pro/enterprise requires API key), rate limits (10/day free, unlimited pro), error handling (structured errors), idempotency, and data privacy. This is exceptional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections, and the first sentence is front-loaded with the purpose. However, there is redundancy between the 'Behavior' section and the 'Behavioral Transparency' section, repeating read-only and idempotency details. It could be trimmed by about one-third without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers usage and behavior for a tool with an output schema (so return values are handled externally). However, the parameter descriptions are weak, leaving the agent without enough context to correctly set 'target_metric' or understand the role of 'api_key'. This gap reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must clarify parameter meanings. However, the 'Args' section only repeats parameter names and adds generic phrases like 'to analyze or process' for all three parameters. No examples, valid values, or context are given for 'creative_id' or 'target_metric'. The default for 'target_metric' ('ctr') is not explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool optimizes existing copy based on performance, and further clarifies it performs structured analysis or classification. The name 'optimize_copy' combined with the first sentence provides a clear verb+resource. However, the phrase 'against established frameworks or standards' is somewhat generic and could be more specific to copy optimization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit 'When to use' and 'When NOT to use' sections, providing clear guidance. It warns against real-time production decision-making without human review. However, it does not directly compare to sibling tools like 'generate_ad_copy' or 'get_best_performing', so the agent would need to infer differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v1.0.0- First observed
add_creative - First observed
create_campaign - First observed
generate_ad_copy - First observed
generate_headlines - First observed
generate_variants - First observed
get_best_performing - First observed
get_campaign - First observed
get_performance - First observed
optimize_copy
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose: campaign creation, creative addition, copy generation (ad copy, headlines, variants), performance retrieval (campaign, creative, best performing), and optimization. No two tools appear to do the same thing.
All tool names follow a consistent verb_noun pattern in snake_case with clear verbs (create, add, generate, get, optimize) and nouns (campaign, creative, ad_copy, headlines, variants, performance). No mixing of conventions.
9 tools cover the core workflows of ad copy AI: campaign setup, content generation, performance analysis, and optimization. The count is well-scoped, not too few or too many for the domain.
Missing update/delete operations for campaigns and creatives, and no listing tools for campaigns or creatives. Generation and analysis are covered well, but the lifecycle management is incomplete, which could cause dead ends when needing to modify or remove existing items.
Maintenance
Related MCP Connectors
MCP-native ad server. Monetize AI chatbots and agents with conversational ads.
OpenAI Ads MCP for ChatGPT Ads campaigns, creatives, audiences, insights, and conversions.
Google Ads, Meta Ads & GA4 MCP server - 250+ tools for campaigns, creatives, audiences & reports.
AI agents that manage paid ads on Meta, LinkedIn, and Google Ads from any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEcommerce AI - MCP server providing AI-powered tools and automation by MEOK AI Labs10MIT
- AlicenseNot gradedqualityBmaintenanceClipboard AI - MCP server providing AI-powered tools and automation by MEOK AI Labs8MIT
- AlicenseNot gradedqualityBmaintenanceSocial Media AI - MCP server providing AI-powered tools and automation by MEOK AI Labs5MIT
- AlicenseNot gradedqualityAmaintenanceContent Calendar AI - MCP server providing AI-powered tools and automation by MEOK AI Labs21MIT
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/CSOAI-ORG/ad-copy-ai-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server