agent1st-ads-mcp
Allows AI agents to launch and manage ad campaigns on Facebook, including creating campaigns, ad sets, and ads, and monitoring real-time performance stats.
Allows AI agents to launch and manage ad campaigns on Instagram, including creating campaigns, ad sets, and ads, and monitoring real-time performance stats.
Provides tools to launch and manage Meta ad campaigns autonomously across Facebook and Instagram, enabling campaign creation and real-time performance tracking.
Provides tools to launch and manage TikTok ad campaigns, allowing AI agents to create campaigns and monitor performance data through OAuth integration.
Agent 1st Ads MCP
MCP server that lets AI agents launch and manage Meta + TikTok ad campaigns autonomously.
Features
One-call campaign creation: No complex API setup. Just call the MCP tool.
Meta Ads: Create campaigns, ad sets, and ads on Facebook/Instagram.
TikTok Ads: Create campaigns on TikTok.
OAuth integration: Users connect their ad accounts securely.
Real-time stats: Pull campaign performance data.
Related MCP server: Meta Ads MCP Server
Pricing
Starter (1 platform): $29/mo
Pro (Meta + TikTok): $69/mo
Premium (+ AI optimization): $149/mo
Elite (white-label + unlimited): $399/mo
Quick Start
Connect your ad account via OAuth
Call
create_meta_campaignorcreate_tiktok_campaignMonitor performance with
get_meta_campaign_statsorget_tiktok_campaign_stats
Documentation
Full docs at agent1st.io/ads
Support
Email: solutions@agent1st.io
Available Tools
15 toolscheck_setupA
ALWAYS call this first. Verifies license tier and which ad platforms are connected. Shows what is available based on your plan (Starter/Pro/Premium/Elite). Use this before any other tool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool's behavior (verifying license and platform connections, showing plan-based availability) but lacks details on error handling, response format, or any side effects. The description doesn't contradict annotations (none exist), but it's moderately informative without rich behavioral context.
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 concise and front-loaded with the key directive ('ALWAYS call this first'). All sentences are relevant, with no wasted words. It could be slightly more structured (e.g., separating purpose from instructions), but it's efficient overall.
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 (simple verification with no parameters) and lack of annotations/output schema, the description is reasonably complete. It explains what the tool does and when to use it, though it could benefit from mentioning what the output might look like (e.g., a status report). For a zero-param tool, this is adequate.
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 tool has 0 parameters, and schema description coverage is 100%. The description doesn't need to explain parameters, so it appropriately focuses on usage and purpose. Baseline for 0 parameters is 4, as it avoids unnecessary parameter discussion.
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's purpose: verifying license tier and connected ad platforms, and showing available features based on plan. It uses specific verbs ('verifies', 'shows') and identifies the resource (license and platform status). However, it doesn't explicitly distinguish this from sibling tools like 'get_ad_account_info', which might provide related but different information.
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 usage guidance: 'ALWAYS call this first' and 'Use this before any other tool.' It establishes a clear prerequisite context for all other operations, though it doesn't name specific alternatives or exclusions beyond the general directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_meta_campaignA
Create a complete Meta (Facebook/Instagram) ad campaign in one call — campaign + ad set with targeting + creative + ad. Created in PAUSED state. Call enable_meta_campaign to activate. Minimum budget $1/day. Requires Starter plan or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name. Example: "Spring Sale — Traffic — US" | |
| objective | No | Objective: OUTCOME_TRAFFIC, OUTCOME_LEADS, OUTCOME_SALES, OUTCOME_ENGAGEMENT, OUTCOME_AWARENESS. Default: OUTCOME_TRAFFIC | |
| daily_budget_usd | Yes | Daily spend limit in USD. Minimum: 1. | |
| destination_url | Yes | Full URL (including https://) users land on after clicking. | |
| ad_headline | Yes | Bold ad headline. Max 40 characters. | |
| ad_body | Yes | Main ad copy. Max 125 characters. | |
| targeting_countries | No | Country codes. Example: ["US","CA","GB"]. Default: ["US"]. | |
| age_min | No | Minimum target age. Default: 18. | |
| age_max | No | Maximum target age. Default: 65. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and discloses key behavioral traits: the campaign is created in PAUSED state (requiring separate activation), has a minimum budget constraint, and requires a specific subscription plan. It doesn't mention rate limits, error handling, or response format, leaving some gaps.
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?
Front-loaded with core purpose, followed by essential behavioral details in a single, efficient sentence. Every clause adds value with no wasted words, making it easy to scan.
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?
For a complex creation tool with no annotations or output schema, the description covers purpose, usage context, and key constraints well. It could improve by hinting at return values or error cases, but it's largely complete given the structured input schema.
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 100%, so the schema fully documents all 9 parameters. The description adds no parameter-specific information beyond what's in the schema, meeting the baseline for high coverage but not enhancing understanding.
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 verb ('Create') and resource ('complete Meta ad campaign') with specific scope ('campaign + ad set with targeting + creative + ad'), distinguishing it from siblings like 'create_tiktok_campaign' (different platform) and 'enable_meta_campaign' (different action).
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?
Explicitly states when to use ('Create a complete Meta ad campaign in one call') and when not to use ('Created in PAUSED state. Call enable_meta_campaign to activate'), with clear prerequisites ('Requires Starter plan or higher') and constraints ('Minimum budget $1/day').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tiktok_campaignA
Create a complete TikTok ad campaign in one call — campaign + ad group with targeting + ad. Created in DISABLE state. Call enable_tiktok_campaign to activate. TikTok minimum budget is $20/day. Requires Pro plan or higher ($69/mo).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name. | |
| objective | No | Objective: TRAFFIC, LEAD_GENERATION, WEBSITE_CONVERSIONS, ENGAGEMENT, APP_PROMOTION. Default: TRAFFIC. | |
| budget_usd | Yes | Daily budget in USD. TikTok minimum: 20. | |
| destination_url | Yes | Landing page URL (must include https://). | |
| ad_text | Yes | Ad copy text. Keep it punchy — TikTok is a fast-scroll platform. | |
| targeting_countries | No | Country codes. Example: ["US"]. Default: ["US"]. | |
| age_groups | No | Age brackets: AGE_13_17, AGE_18_24, AGE_25_34, AGE_35_44, AGE_45_54, AGE_55_100. Default: [AGE_18_24, AGE_25_34]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: campaigns are created in DISABLE state, requires Pro plan or higher ($69/mo), and mentions TikTok minimum budget constraint. It doesn't cover error handling or response format, but provides substantial operational context.
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 perfectly front-loaded with the core functionality in the first clause, followed by important operational details. Every sentence adds critical information with zero waste - state, activation method, budget constraint, and plan requirement.
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?
For a creation tool with no annotations and no output schema, the description provides excellent context about the creation state, activation requirements, budget constraints, and plan prerequisites. It could mention what happens on success/failure or return format, but covers most critical operational aspects well.
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 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal parameter-specific information beyond reinforcing the TikTok minimum budget constraint. Baseline 3 is appropriate when schema does the heavy lifting.
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 creates a complete TikTok ad campaign with campaign, ad group with targeting, and ad in one call. It specifies the resource (TikTok ad campaign) and distinguishes from siblings like create_meta_campaign by explicitly mentioning TikTok.
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 clear context for when to use this tool (creating TikTok campaigns) and mentions the need to call enable_tiktok_campaign to activate. It doesn't explicitly state when not to use it or compare with alternatives like create_meta_campaign, but the TikTok-specific focus provides good guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_meta_campaignA
Permanently delete a Meta campaign and all its ad sets and ads. Cannot be undone. Use pause_meta_campaign to stop spending temporarily. Requires Starter plan or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Meta campaign ID to permanently delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so effectively: it discloses the irreversible nature ('Cannot be undone'), the destructive scope (deletes campaign, ad sets, and ads), and authorization requirements (Starter plan or higher). It lacks details on rate limits or error handling, but covers key behavioral traits.
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?
Three sentences with zero waste: the first states the action and scope, the second warns about irreversibility and provides an alternative, and the third specifies prerequisites. Each sentence adds critical information, making it front-loaded and efficient.
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?
For a destructive tool with no annotations and no output schema, the description is largely complete: it covers purpose, usage, behavioral risks, and prerequisites. It could mention response format or error cases, but given the simplicity (one parameter, no output schema), it provides sufficient context for safe use.
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 100%, so the schema already documents the single parameter (campaign_id). The description adds no additional parameter details beyond what the schema provides, such as format examples or constraints, meeting the baseline for high schema coverage.
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 specific action ('permanently delete') and resource ('Meta campaign and all its ad sets and ads'), distinguishing it from siblings like pause_meta_campaign. It goes beyond the tool name by specifying the scope of deletion.
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?
It explicitly provides when to use this tool (for permanent deletion) versus an alternative (pause_meta_campaign for temporary stopping), and includes prerequisites (requires Starter plan or higher), offering comprehensive guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_meta_campaignA
Activate a paused Meta campaign so it starts spending. Use campaign_id from create_meta_campaign or list_meta_campaigns. Requires Starter plan or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Meta campaign ID to activate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the action ('Activate'), outcome ('starts spending'), and a requirement ('Requires Starter plan or higher'), which are useful behavioral traits. However, it lacks details on permissions, rate limits, error handling, or what happens if the campaign is already active, leaving gaps for a mutation tool.
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 two sentences with zero waste: the first sentence states the purpose and outcome, and the second provides usage notes and requirements. It is front-loaded with the core action and appropriately sized for a single-parameter tool.
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 (a mutation with no annotations and no output schema), the description is adequate but incomplete. It covers the purpose, usage, and requirements, but lacks details on behavioral aspects like error cases or return values, which are important for an activation tool. It meets minimum viability but has clear gaps.
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 100%, so the schema already documents the 'campaign_id' parameter fully. The description adds marginal value by mentioning sources for the ID ('from create_meta_campaign or list_meta_campaigns'), but does not provide additional syntax or format details beyond what the schema states. Baseline 3 is appropriate when schema does the heavy lifting.
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 specific action ('Activate a paused Meta campaign'), the resource ('Meta campaign'), and the outcome ('so it starts spending'). It distinguishes from siblings like 'pause_meta_campaign' by specifying activation rather than pausing, and from 'create_meta_campaign' by targeting existing campaigns.
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 clear context on when to use it ('Activate a paused Meta campaign') and prerequisites ('Requires Starter plan or higher'), and hints at alternatives by mentioning 'campaign_id from create_meta_campaign or list_meta_campaigns'. However, it does not explicitly state when NOT to use it or compare directly with all siblings like 'enable_tiktok_campaign'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_tiktok_campaignA
Activate a disabled TikTok campaign so it starts running. Requires Pro plan or higher ($69/mo).
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | TikTok campaign ID to enable. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the plan requirement, which is useful behavioral context. However, it doesn't mention other traits like whether this is a mutating operation (implied by 'Activate'), error conditions, or rate limits, leaving gaps for a tool that likely modifies campaign state.
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 two concise sentences with zero waste. The first sentence states the purpose and outcome, and the second adds critical context (plan requirement), making it front-loaded and efficiently structured.
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 moderate complexity (enabling a campaign), no annotations, and no output schema, the description is fairly complete. It covers the purpose, outcome, and a key prerequisite, but lacks details on return values, error handling, or side effects, which would be helpful for full contextual understanding.
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 100%, so the schema already documents the single parameter 'campaign_id'. The description doesn't add any parameter-specific details beyond what the schema provides, such as format examples or validation rules, meeting the baseline for high schema coverage.
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 specific action ('Activate') on a specific resource ('a disabled TikTok campaign') with the outcome ('so it starts running'). It distinguishes from sibling tools like 'pause_tiktok_campaign' by focusing on enabling rather than pausing.
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 context for when to use ('Requires Pro plan or higher ($69/mo)'), which helps the agent understand prerequisites. However, it doesn't mention alternatives like 'create_tiktok_campaign' for new campaigns or specify when NOT to use it (e.g., if already enabled).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ad_account_infoA
Get current balance, total spend, currency, and account status for all connected ad accounts (Meta and/or TikTok). Call before creating campaigns to confirm account is active and has sufficient funds. Requires valid license.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and discloses key behavioral traits: it's a read operation (implied by 'Get'), requires license authentication, and serves a verification purpose. It doesn't mention rate limits or error handling, but covers essential context.
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?
Two sentences with zero waste: first states purpose and scope, second provides usage context and prerequisite. Front-loaded with core functionality, appropriately sized for a simple tool.
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?
For a zero-parameter tool with no output schema, the description provides complete operational context: what it returns, when to use it, and authentication requirements. It doesn't specify output format details, but given the tool's simplicity, this is adequate.
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 tool has 0 parameters with 100% schema coverage, so no parameter documentation is needed. The description appropriately focuses on what the tool returns rather than inputs, establishing a baseline of 4 for zero-parameter tools.
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 specific action ('Get') and resources ('current balance, total spend, currency, and account status for all connected ad accounts'), specifying platforms ('Meta and/or TikTok'). It distinguishes from siblings by focusing on account-level information rather than campaign operations.
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?
Explicitly states when to use ('Call before creating campaigns to confirm account is active and has sufficient funds') and provides a prerequisite ('Requires valid license'), giving clear operational context without alternatives needed since it's the only account info tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meta_campaign_statsA
Get performance metrics for a Meta campaign: impressions, clicks, spend (USD), CTR, CPM, and conversions. Use to evaluate performance before budget decisions. Requires Starter plan or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Meta campaign ID. | |
| date_preset | No | Time range: today, yesterday, last_7d, last_14d, last_30d, this_month. Default: last_7d. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the requirement of a 'Starter plan or higher,' which is useful behavioral context for permissions or access needs. However, it does not cover other traits like rate limits, error handling, or response format, leaving gaps in behavioral understanding.
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 front-loaded with the core purpose in the first sentence, followed by usage context and prerequisites. Every sentence adds value without redundancy, making it efficient and well-structured for quick comprehension.
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 no annotations and no output schema, the description provides basic purpose and usage but lacks details on return values, error cases, or performance implications. It is adequate for a simple read operation but incomplete for full contextual understanding, especially without behavioral or output information.
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 100%, so the schema already documents both parameters (campaign_id and date_preset) with their types and descriptions. The description does not add any parameter-specific information beyond what the schema provides, such as format details or examples, meeting the baseline for high coverage.
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 specific action ('Get performance metrics') and resource ('for a Meta campaign'), listing exact metrics like impressions, clicks, spend, CTR, CPM, and conversions. It distinguishes from siblings by focusing on Meta campaign statistics rather than TikTok campaigns or other operations like creation, deletion, or listing.
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 clear context for when to use this tool ('Use to evaluate performance before budget decisions'), but it does not explicitly state when not to use it or name specific alternatives. It implies usage for Meta campaigns only, which helps differentiate from TikTok-related siblings, but lacks explicit exclusions or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tiktok_campaign_statsA
Get performance metrics for a TikTok campaign: impressions, clicks, spend, CTR, CPC, conversions. Requires Pro plan or higher ($69/mo).
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | TikTok campaign ID. | |
| start_date | No | Start date YYYY-MM-DD. Default: 7 days ago. | |
| end_date | No | End date YYYY-MM-DD. Default: today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and adds valuable behavioral context beyond the schema. It discloses the Pro plan requirement (authentication/access level constraint) and lists the specific metrics returned, which helps understand what data will be available.
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?
Two concise sentences with zero waste. First sentence states purpose and metrics, second sentence provides crucial usage requirement. Every word earns its place.
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?
For a read operation with 100% schema coverage but no annotations or output schema, the description does well by listing metrics and access requirements. However, it doesn't mention data freshness, rate limits, or error conditions that would be helpful for a stats retrieval tool.
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 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, maintaining the baseline score of 3.
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 action ('Get performance metrics') and the resource ('TikTok campaign'), listing specific metrics (impressions, clicks, spend, CTR, CPC, conversions). It distinguishes from siblings like 'get_meta_campaign_stats' by specifying TikTok platform.
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 usage context by stating 'Requires Pro plan or higher ($69/mo)', which helps determine when this tool can be used. However, it doesn't explicitly mention when to use alternatives like 'get_meta_campaign_stats' or other TikTok campaign tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_meta_campaignsA
List all campaigns in the Meta (Facebook/Instagram) ad account with campaign ID, name, status (ACTIVE/PAUSED/ARCHIVED), objective, and daily budget. Use campaign IDs to get stats, adjust budgets, or pause/enable. Requires Starter plan or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max campaigns to return. Default: 20. | |
| status | No | Filter by status: ACTIVE, PAUSED, or ARCHIVED. Omit to return all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the plan requirement ('Starter plan or higher'), which is useful behavioral context. However, it lacks details on rate limits, pagination behavior (despite a 'limit' parameter), error conditions, or what happens if no campaigns exist—leaving gaps for a read operation.
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 appropriately sized with two sentences: one stating the purpose and returned fields, and another providing usage context and prerequisites. It's front-loaded with core functionality, though the second sentence could be slightly more streamlined.
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?
For a read-only list tool with no annotations and no output schema, the description covers the basics (purpose, usage, plan requirement) but lacks details on output format (e.g., structure of returned campaigns), pagination beyond the 'limit' parameter, or error handling. Given the complexity and sibling tools, it's adequate but has clear gaps.
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 100%, so the schema already documents both parameters ('limit' and 'status') fully. The description doesn't add any parameter-specific semantics beyond what's in the schema, such as explaining how filtering interacts with the listing or default behaviors beyond 'limit'.
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 verb ('List') and resource ('all campaigns in the Meta ad account') with specific attributes returned (ID, name, status, objective, daily budget). It distinguishes from siblings like 'get_meta_campaign_stats' by focusing on listing rather than detailed statistics, though it doesn't explicitly name alternatives.
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?
It provides clear context for when to use this tool ('Use campaign IDs to get stats, adjust budgets, or pause/enable') and mentions prerequisites ('Requires Starter plan or higher'). However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings like 'list_tiktok_campaigns' for TikTok campaigns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tiktok_campaignsA
List all campaigns in the TikTok ad account with campaign ID, name, status, objective, and budget. Requires Pro plan or higher ($69/mo).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max campaigns to return. Default: 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a behavioral trait (requires Pro plan or higher) and implies read-only behavior, but lacks details on rate limits, pagination, or error handling. It adequately covers basic usage but misses deeper operational context.
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 two sentences with zero waste, front-loaded with the core purpose and followed by essential prerequisite information. Every sentence earns its place.
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 low complexity (one optional parameter) and no annotations or output schema, the description is reasonably complete. It covers purpose, attributes returned, and a key requirement, though it could benefit from mentioning return format or limitations.
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 100%, so the schema already documents the 'limit' parameter. The description does not add any parameter-specific information beyond what the schema provides, but it doesn't need to compensate for gaps.
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 verb ('List') and resource ('all campaigns in the TikTok ad account') with specific attributes returned (campaign ID, name, status, objective, and budget). It distinguishes from sibling tools like 'list_meta_campaigns' by specifying TikTok campaigns.
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 clear context for when to use this tool (to list TikTok campaigns with specific attributes) and mentions a prerequisite (Pro plan or higher). However, it does not explicitly state when not to use it or name alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_meta_campaignA
Pause a live Meta campaign to stop all spending immediately. Campaign and settings are preserved — use enable_meta_campaign to resume. Requires Starter plan or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Meta campaign ID to pause. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behavioral traits: the immediate spending stop, preservation of campaign and settings, and the plan requirement. However, it doesn't mention error conditions, rate limits, or authentication needs, leaving some gaps.
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?
Three concise sentences with zero waste: first states purpose and immediate effect, second clarifies preservation and alternative tool, third specifies plan requirement. Every sentence adds essential information.
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?
For a single-parameter mutation tool with no annotations and no output schema, the description provides good coverage: purpose, immediate effect, state preservation, alternative tool, and plan requirement. It doesn't describe return values or error cases, but given the simplicity, it's mostly 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 description coverage is 100%, so the schema already documents the single parameter. The description doesn't add any parameter-specific information beyond what's in the schema, meeting the baseline for high schema coverage.
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 specific action ('pause'), target resource ('live Meta campaign'), and immediate effect ('stop all spending immediately'). It distinguishes from sibling tools like enable_meta_campaign and pause_tiktok_campaign by specifying the platform and action.
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?
Explicitly states when to use this tool ('pause a live Meta campaign') and when to use an alternative ('use enable_meta_campaign to resume'). Also specifies prerequisites ('Requires Starter plan or higher'), providing clear guidance on usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_tiktok_campaignA
Pause a running TikTok campaign to stop all spending. Settings preserved — use enable_tiktok_campaign to resume. Requires Pro plan or higher ($69/mo).
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | TikTok campaign ID to pause. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the action is a mutation (pause), it preserves settings, it stops spending, and it has a plan requirement. However, it doesn't mention potential side effects like timing delays or error conditions.
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 front-loaded with the core purpose, followed by additional context in a structured way. Every sentence adds value: the first states the action and outcome, the second provides behavioral context and alternative, and the third specifies requirements.
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?
For a mutation tool with no annotations and no output schema, the description does well by covering purpose, usage, and key behaviors. However, it lacks details on return values or error handling, which would be helpful given the complexity of pausing a campaign.
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 100%, so the schema already documents the single parameter 'campaign_id'. The description doesn't add any parameter-specific details beyond what the schema provides, such as format examples or constraints, meeting the baseline for high coverage.
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 specific action ('pause') on a specific resource ('running TikTok campaign') with the explicit outcome ('stop all spending'). It distinguishes from the sibling tool 'enable_tiktok_campaign' by mentioning it as the alternative for resuming.
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?
It provides explicit guidance on when to use this tool (to pause a running campaign and stop spending) and when to use an alternative (use enable_tiktok_campaign to resume). It also specifies prerequisites (requires Pro plan or higher).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_meta_campaign_budgetA
Change the daily budget of a Meta campaign. Takes effect immediately. Increase to scale a winning campaign, decrease to throttle spend. Minimum $1/day. Requires Starter plan or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Meta campaign ID. | |
| daily_budget_usd | Yes | New daily budget in USD. Minimum: 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: immediate effect ('Takes effect immediately'), minimum constraint ('Minimum $1/day'), and permission requirements ('Requires Starter plan or higher'). It doesn't cover rate limits or error conditions, but provides solid operational context.
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?
Four concise sentences with zero waste—each adds distinct value: action, timing, usage scenarios, constraints, and requirements. The description is front-loaded with the core purpose and efficiently structured.
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?
For a mutation tool with no annotations and no output schema, the description provides good coverage of what the tool does, when to use it, and key constraints. It could be more complete by mentioning what happens to existing budget settings or potential side effects, but it's substantially adequate given the context.
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 100%, so the schema already fully documents both parameters. The description adds minimal value beyond the schema—it reinforces the minimum budget constraint but doesn't provide additional semantic context about parameter usage or implications.
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 specific action ('Change the daily budget'), resource ('Meta campaign'), and scope ('daily budget'), distinguishing it from siblings like create_meta_campaign or pause_meta_campaign. It goes beyond just restating the name by specifying what aspect of the campaign is being updated.
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 clear context on when to use it ('Increase to scale a winning campaign, decrease to throttle spend') and mentions a prerequisite ('Requires Starter plan or higher'). However, it doesn't explicitly state when NOT to use it or name alternatives like update_tiktok_campaign_budget for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_tiktok_campaign_budgetA
Change the daily budget of a TikTok campaign. TikTok minimum is $20/day. Requires Pro plan or higher ($69/mo).
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | TikTok campaign ID. | |
| budget_usd | Yes | New daily budget in USD. Minimum: 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively adds context beyond the input schema by specifying the minimum budget constraint ('TikTok minimum is $20/day') and the subscription requirement ('Requires Pro plan or higher ($69/mo)'), which are crucial for correct usage. It doesn't cover all potential behavioral aspects (e.g., rate limits, error responses), but provides substantial value.
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 extremely concise and front-loaded, consisting of just two sentences that each earn their place: the first states the core purpose, and the second adds critical constraints. There is zero wasted verbiage, making it highly efficient for an AI agent to parse.
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 moderate complexity (a mutation operation with no annotations and no output schema), the description does a good job of covering key aspects: purpose, constraints, and prerequisites. However, it lacks details on the mutation's effects (e.g., whether changes are immediate, reversible, or have side effects) and expected return values, which would be needed for full 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?
The input schema has 100% description coverage, so the schema already documents both parameters adequately. The description adds minimal parameter semantics by reinforcing the minimum budget constraint for 'budget_usd', but doesn't provide additional meaning beyond what the schema specifies. This meets the baseline expectation when schema coverage is high.
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 specific action ('Change the daily budget') and target resource ('a TikTok campaign'), distinguishing it from sibling tools like 'update_meta_campaign_budget' by specifying the TikTok platform. It goes beyond just restating the name/title by adding meaningful context about the budget change.
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 clear context for when to use this tool (to change TikTok campaign budgets) and explicitly mentions prerequisites ('Requires Pro plan or higher ($69/mo)'). However, it doesn't explicitly state when not to use it or name alternatives (e.g., when to use 'update_meta_campaign_budget' instead), which prevents a perfect score.
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.
15 tool updates
v1.0.1- First observed
check_setup - First observed
create_meta_campaign - First observed
create_tiktok_campaign - First observed
delete_meta_campaign - First observed
enable_meta_campaign - First observed
enable_tiktok_campaign - First observed
get_ad_account_info - First observed
get_meta_campaign_stats - First observed
get_tiktok_campaign_stats - First observed
list_meta_campaigns - First observed
list_tiktok_campaigns - First observed
pause_meta_campaign - First observed
pause_tiktok_campaign - First observed
update_meta_campaign_budget - First observed
update_tiktok_campaign_budget
TDQS
Scored across 15 tools
Each tool has a clearly distinct purpose with no overlap. Tools are separated by platform (Meta vs. TikTok) and action type (create, delete, enable, list, pause, update, get stats, check setup, get account info), making it easy for an agent to select the correct one. For example, create_meta_campaign and create_tiktok_campaign are distinct by platform, and pause vs. enable are clearly different actions.
Tool names follow a highly consistent verb_noun pattern with platform prefixes where needed. All names use snake_case consistently, and verbs like create, delete, enable, get, list, pause, and update are applied uniformly across platforms (e.g., create_meta_campaign, create_tiktok_campaign). The only exception is check_setup, which still fits the verb_noun style.
With 15 tools, the count is well-scoped for managing ad campaigns across two platforms (Meta and TikTok). Each tool serves a specific, necessary function such as creation, listing, pausing, enabling, updating budgets, getting stats, and checking setup, without redundancy. This aligns with the server's purpose of comprehensive ad campaign management.
The tool set provides complete CRUD/lifecycle coverage for Meta and TikTok ad campaigns, including check_setup for initialization, create, list, get stats, pause/enable for state management, update budget for modifications, and delete for removal. There are no obvious gaps; agents can perform all essential operations from setup to monitoring and adjustment without dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI agents that manage paid ads on Meta, LinkedIn, and Google Ads from any MCP client.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Google Ads, Meta Ads & GA4 MCP server - 250+ tools for campaigns, creatives, audiences & reports.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for AI agents to manage ad campaigns across Google, Meta, LinkedIn, Microsoft, Reddit, TikTok, and more2125917MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for programmatic management of Meta (Facebook/Instagram) advertising campaigns through AI assistants. It enables campaign creation, ad set management, creative upload, analytics, audience management, and conversion tracking.1334MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for managing ad campaigns across Google Ads, Meta, and more. Enables deploying campaigns, checking performance, and managing budgets from terminal or AI assistants.MIT
- AlicenseNot gradedqualityBmaintenanceA Model Context Protocol server that lets AI assistants run your Meta Ads end to end — launch campaigns, upload creatives, update budgets, and dig into performance through natural conversation. Works across Facebook, Instagram, and other Meta surfaces.Business Source 1.1