Skip to main content
Glama
pauloFroes

mcp-meta-marketing

by pauloFroes

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Each tool targets a distinct resource and action, with clear separation between account, campaign, adset, ad, and creative operations. The four insights tools are differentiated by hierarchy level, and CRUD tools are resource-specific. No meaningful overlap.

    Naming Consistency5/5

    All tools follow a consistent verb_noun snake_case pattern: get_, list_, create_, update_, delete_. The pattern is predictable and uniform across resources.

    Tool Count4/5

    18 tools is on the higher side but justified by the complexity of the Meta marketing domain. Each tool covers a necessary operation for the hierarchy of account, campaign, adset, ad, and creative.

    Completeness4/5

    Core lifecycle (create/update/delete/list/insights) is well-covered for campaigns, adsets, and ads. Gaps include creative management (only create, no update/list/delete) and no single-resource getters, but these are minor workarounds.

  • Average 4.1/5 across 18 of 18 tools scored. Lowest: 3.5/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds value by enumerating the metrics returned (impressions, clicks, spend, etc.), but it does not disclose pagination behavior, rate limits, or the output structure. This is acceptable given the read-only annotation, but the addition is not extensive.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that directly states the tool's function and primary return values. It is front-loaded with the key action and resource, with no wasted words.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    With no output schema, the description partially covers return values by listing examples of metrics, but it does not describe the output format or how results are organized. It also does not mention time_range handling or that insights are at the ad level relative to other scopes. Given 8 parameters and a sibling set with similar tools, more contextual detail would improve completeness, but the schema covers parameter specifics.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has 100% coverage for all 8 parameters, so baseline is 3. The description's mention of metrics like impressions and clicks overlaps with the default value of the 'fields' parameter but does not add new meaning. The phrase 'by ID' aligns with the required ad_id parameter but adds no extra semantics.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool gets performance insights for a specific ad by ID, which distinguishes it from account-, campaign-, and adset-level insight tools. It also lists key metrics returned, reinforcing the tool's purpose. However, it does not explicitly name sibling tools for differentiation.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies use for ad-level performance analysis by saying 'for a specific ad by ID', but it does not explicitly state when to use this tool versus get_account_insights or get_campaign_insights. No exclusions or alternative recommendations are provided, so usage guidance is implied but not explicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows it is a non-destructive mutation. The description adds no further behavioral context—such as whether status changes are immediately effective, whether swapping creative impacts delivery, or any permission requirements. Beyond the basic mutation nature, there is no added transparency.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence that states the main action and the key editable fields. It is concise with no filler or redundant information, earning full credit for efficiency.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple update tool with four parameters and no output schema, the description is mostly complete. It lists the changeable fields and the action, and the schema covers required ad_id and enum values. However, it lacks any mention of response behavior (e.g., returns updated object or just success) or whether updates are partial (only provided fields changed). Given the low complexity, this is a minor gap.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100%, so the schema fully documents all four parameters. The description mentions changing name, status, or creative, which aligns with the schema properties but adds no extra meaning beyond what is already present. It does not clarify edge cases like whether status enum includes DELETED or if creative_id must reference an existing creative. Baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's function: 'Update an existing ad' with specific editable fields ('name, status, or swap creative'). It distinguishes itself from sibling tools like update_campaign and update_adset by specifying the resource ('existing ad') and action.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies when to use the tool (when you need to modify an ad), but it does not explicitly differentiate from alternatives or mention exclusions. For example, it does not say 'use delete_ad to remove an ad' or clarify that this only affects the ad, not its creatives or targeting. The context is clear but lacks explicit guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already indicate a mutating, non-destructive operation. The description adds the prerequisite of a page_id but does not disclose additional behavioral details such as required scopes, rate limits, or effects on related objects. This is a modest value-add beyond the annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two sentences, front-loads the purpose, and contains no filler. Every clause contributes meaning.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a tool with only two parameters, full schema coverage, and existing annotations, the description covers the core functionality and key requirement. It is slightly vague about where page_id lives and doesn't mention return values, but this is acceptable given the tool's simplicity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema already documents both parameters, and the description enhances object_story_spec by specifying supported content types (image, video, carousel) and mentioning a required page_id. This goes beyond the schema's example, though the page_id placement inside the JSON is not explicitly clarified.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's function with a specific verb ('Create') and resource ('an ad creative'), and elaborates on the object_story_spec JSON field. However, it does not explicitly differentiate from sibling tools like create_ad, so it doesn't fully earn a 5.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for creating ad creatives and notes the need for a page_id, but it does not provide explicit guidance on when to choose this tool over alternatives (e.g., create_ad) or mention any exclusions. The context is clear but not comparative.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already indicate readOnlyHint=false, so the mutation nature is clear. The description adds minimal behavioral context beyond that, mentioning required fields but no side effects, return values, or validation behavior. No contradiction with annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is brief and front-loaded with the main action. However, the requirements sentence is inaccurate, which detracts from its efficiency. Two sentences are appropriate for this tool.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (11 params, 3 enums, no output schema), the description is adequate but incomplete. It does not mention prerequisites like campaign existence, budget constraints, or return behavior. The schema carries most of the semantic load, so the description adds only basic context.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema covers all parameters with descriptions, so baseline is 3. The description attempts to summarize key parameters but is misleading: it says 'budget' is required while the actual parameters are daily_budget/lifetime_budget (both optional in schema), and billing_event is optional. This adds confusion rather than value.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool creates a new ad set within a campaign, using specific verb and resource. This distinguishes it from sibling tools like create_campaign or create_ad, as it explicitly names 'ad set' and 'within a campaign'.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides context that this is for creating ad sets within an existing campaign, and lists key required fields. However, it does not explicitly mention alternatives or when-not-to-use, such as pointing to update_adset for modifications.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds minimal behavioral context beyond noting it returns metrics and requires an ad set ID. It does not discuss pagination, rate limits, or time-range defaults, though these are partly covered by the schema. No contradiction with annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two short sentences, front-loaded with the main action. Every sentence earns its place: the first defines what it does, the second gives concrete examples of returned metrics. No redundancy or fluff.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a read-only insights tool with a detailed schema and annotations, the description is adequate but not exhaustive. It explains the core purpose and example outputs, while the schema handles parameter details. It lacks guidance on output format or unusual behaviors, but no output schema exists and the tool is relatively straightforward.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    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 8 parameters. The description's mention of metrics like impressions, clicks, spend, cpc, cpm, ctr, reach merely echoes the fields parameter's common values, adding no new semantics beyond what the schema already provides.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool 'Get performance insights for a specific ad set by ID', using a specific verb and resource. It distinguishes from sibling tools (get_account_insights, get_campaign_insights, get_ad_insights) by explicitly targeting ad sets and listing sample metrics like impressions, clicks, and spend.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies the tool is for ad set-level insights but does not explicitly say when to use this over alternatives like get_campaign_insights or get_ad_insights. No exclusionary guidance is given; usage context is only implicit from the tool name and resource mention.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description adds minimal behavioral context beyond the annotations. Annotations already indicate readOnlyHint=false (write operation) and destructiveHint=false. The description adds the requirement that a creative must pre-exist, which is useful, but it does not disclose potential side effects, validation behavior, or outcome on success. With annotations covering the basic safety profile, a score of 3 is appropriate.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, concise sentence that conveys the core purpose and the most important prerequisite. There is no wasted text, and the key information is front-loaded.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple create tool with a fully described schema and useful annotations, the description is adequately complete. It covers the essential prerequisites and scope. It does not describe return values, but no output schema exists, and the tool's behavior is straightforward. Minor gap: it doesn't mention the status parameter or any default behavior, but the schema covers that.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the baseline is 3. The description repeats the prerequisite for creative_id that is already stated in the schema ('create with create_adcreative first'). It adds no new parameter semantics beyond what the schema provides, so it does not exceed the baseline.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: 'Create a new ad within an ad set.' The verb 'create' and resource 'ad' are specific, and the context 'within an ad set' distinguishes it from siblings like create_campaign and create_adset. It also mentions key dependencies (adset_id and creative_id), leaving no ambiguity.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides explicit sequencing guidance: 'create the creative first with create_adcreative.' This clearly indicates when to use this tool relative to a sibling. It does not explicitly state when not to use it, but the prerequisite and purpose are sufficient for an AI agent to choose this tool appropriately.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read. The description adds the set of returned metrics (impressions, clicks, spend, etc.) and mentions optional breakdowns, but doesn't disclose behaviors like pagination, rate limits, or data volume constraints. This matches the calibration where annotations carry the safety burden and the description adds modest value.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is three sentences, front-loaded with the core purpose, and each sentence adds relevant information without fluff. It is appropriately sized for the tool's complexity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For an 8-parameter tool with no output schema, the description covers the main purpose, optional level breakdowns, date range usage, and lists common returned metrics. It doesn't explicitly mention default limit or time_increment, but those are in the schema. Overall, it provides sufficient context for an agent to understand what the tool does and what it returns.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the baseline is 3. The description mentions 'level' and 'since/until' which are already in the schema, and lists common metrics that also appear in the schema's fields description. It adds no substantial meaning beyond the schema, hence the baseline score.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description starts with a specific verb+resource ('Get performance insights for the ad account') and immediately clarifies it is for the ad account level, distinguishing it from sibling tools like get_campaign_insights. It also mentions optional level breakdowns, making its purpose and scope unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides clear context on usage: it is for the ad account, with optional level breakdowns and date ranges. However, it does not explicitly mention when to use this tool versus the sibling insight tools (e.g., get_campaign_insights) or state any exclusions, so it falls short of explicit 'when-not' guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already indicate read-only and non-destructive behavior. The description adds value by enumerating the returned fields (name, status, currency, etc.), giving agents concrete expectations about the output beyond the annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, well-structured sentence that immediately communicates the resource and key information returned. No wasted words or redundant details.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple read-only tool with no output schema, the description sufficiently conveys what the tool returns. It could be slightly more complete by noting that the fields are customizable via the fields parameter, but the schema covers that. Overall, it's comprehensive enough.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The only parameter, 'fields', is fully described in the schema with a default list. The tool description does not add extra syntax or semantics, so the baseline of 3 applies due to high schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool gets ad account details, listing specific attributes (name, status, currency, timezone, etc.). This distinguishes it from sibling tools that focus on insights or campaign/ad-level data.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies the tool is for retrieving ad account details, but it does not explicitly mention when to use this tool versus alternatives like get_account_insights. Usage is inferred from the resource and field list, not stated as guidelines.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds a list of returned metrics (impressions, clicks, spend, etc.) but does not disclose other behavioral details like pagination, date range handling, or potential rate limits. This adds some value but not extensive transparency.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that front-loads the primary action and follows with a concise list of example metrics. No redundant or verbose wording is present.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool has 8 parameters fully documented in the schema, annotations covering safety, and no output schema. The description gives a high-level sense of return metrics but does not elaborate on response structure or pagination. Given the schema and annotations, this is adequately complete for a read-only insights tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    All 8 parameters have schema descriptions covering 100%, so the schema provides full parameter semantics. The description itself does not add meaning beyond the schema, so the baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Get performance insights for a specific campaign by ID', using a specific verb and resource. It distinguishes itself from sibling tools like get_account_insights, get_adset_insights, and get_ad_insights by specifying the campaign level.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies this tool is for a specific campaign by ID, providing clear context that it is not for account-level or list operations. However, it does not explicitly mention alternatives or exclusions, such as 'use get_account_insights for account-level data'.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is known. The description adds valuable context: partial updates and the requirement that the ad set already exist. No contradiction with annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is one concise sentence, clearly front-loaded with the purpose and the key usage instruction. No unnecessary words.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a tool with 8 well-documented parameters and good annotations, the description is complete enough for a straightforward update operation. The lack of return-value details is a minor gap since no output schema is provided.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    All parameters have schema descriptions (100% coverage), so the description does not need to repeat them. It only reinforces that fields are optional for updates, which is already implicit in the schema's required list.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Update') and the resource ('existing ad set'), distinguishing it from create, delete, and other resource updates. It also underscores the partial-update behavior, adding clarity.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies when to use it (updating existing ad sets) and the partial-update approach, but it does not explicitly contrast with alternatives like create_adset or delete_adset. No exclusions or prerequisites are mentioned.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=false and destructiveHint=false, indicating a non-destructive write operation. The description adds some context (required fields, budget levels) but does not disclose additional behavioral traits such as whether the campaign ID is returned, potential approval workflows, or side effects on related entities. With annotations covering the safety profile, a 3 is appropriate.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is three concise sentences, front-loaded with the purpose, followed by essential parameter guidance. Every sentence earns its place with no redundancy or fluff.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The description covers the core requirements, special category handling, and budget placement, which is solid for a 7-parameter tool with full schema coverage. However, there is no mention of what the tool returns (e.g., campaign ID) or any post-creation behavior, and since there is no output schema, a brief note would improve completeness. Still, it is adequately complete for the given complexity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the baseline is 3. The description adds extra meaning beyond the schema by clarifying how to use special_ad_categories ('Set special_ad_categories to [] if none apply') and explaining CBO vs ad set budget allocation, which helps understand the budget parameters in context.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action with a specific verb and resource: 'Create a new campaign.' This distinguishes it from sibling tools like create_adset and create_ad. It also mentions key requirements (name, objective, status) and nuances like CBO vs ad set budget, which solidifies the tool's purpose.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    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 the tool (creating a campaign) and includes practical guidance like setting special_ad_categories to [] when none apply and budget placement options. However, it does not explicitly contrast with alternative sibling tools (e.g., create_adset) or state when not to use this tool, so it falls short of a 5.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already indicate destructiveHint: true and readOnlyHint: false, so the description doesn't need to repeat those. It adds the key nuance that deletion is 'irreversible,' which goes beyond the annotation by clarifying permanence. This is helpful and adds value without contradicting any annotation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description consists of three short sentences, each carrying essential information: the action, irreversibility, and an alternative. It is front-loaded with the primary verb and resource and contains no filler or redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple one-parameter delete tool with no output schema, the description adequately covers purpose, irreversibility, and alternatives. It doesn't mention any potential cascade effects or required permissions, but given the simplicity and the annotations, it is nearly complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has 100% description coverage for the single parameter campaign_id, with the field clearly described as 'Campaign ID to delete.' The description adds no further parameter detail, and since schema coverage is complete, the baseline of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with 'Delete a campaign,' which clearly specifies the verb and resource, matching the tool name exactly. It also distinguishes from sibling delete tools like delete_adset and delete_ad, and from update_campaign, which is explicitly mentioned as an alternative.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description suggests 'Consider using update_campaign with status=ARCHIVED instead,' providing an explicit alternative for reversible deletion. However, it doesn't explicitly state the exact conditions under which delete_campaign should be chosen (e.g., 'use when permanent deletion is required'), leaving some implied context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint, so safety is clear. The description adds valuable behavioral detail: it states the return fields, filtering capability, and auto-pagination up to 10 pages. This goes beyond the annotations without contradicting them.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, front-loaded with the action and resource. Every phrase adds value: listing, returned fields, filtering, pagination. No fluff or redundant repetition of schema data.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    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 strong annotations and simple parameters, this description is sufficient. It covers return content, filtering options, and pagination behavior. The absence of an output schema is mitigated by the explicit field list. Sibling context confirms this is the standard listing tool for campaigns.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema already describes all three parameters with 100% coverage, so the baseline is 3. The description does not add much beyond echoing effective_status filtering, but it does mention auto-pagination, which indirectly clarifies the limit parameter's behavior. No significant compensation needed.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with 'List campaigns in the ad account,' which uses a specific verb and resource, clearly distinguishing it from sibling tools like list_adsets or get_campaign_insights. It also enumerates the primary returned fields (name, status, objective, budgets, bid strategy), reinforcing the tool's scope.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides clear context for use: listing campaigns in the ad account. It includes a practical hint to filter by effective_status. It doesn't explicitly mention alternatives, but the resource-focused wording makes the tool's role obvious compared to sibling insight or mutation tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations indicate readOnly=false and destructive=false. The description adds valuable behavior: partial patch semantics and an immutable field (objective). This goes beyond the schema and annotations without contradicting them. It does not cover auth or rate limits, but with annotations carrying safety signals, this is sufficient.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, no filler. The description is front-loaded with the core action and immediately provides the essential usage rule. Every sentence earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple update tool with a well-defined schema, the description covers the crucial constraints: partial update and immutability of objective. There is no output schema, but the description could mention return format; however, it is not necessary for typical update tools. Sibling context and annotations cover most remaining needs.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema provides descriptions for 100% of parameters, so baseline is 3. The description adds extra meaning by clarifying that only fields needing change should be sent, and that objective cannot be changed (not even listed as a parameter). This helps the agent understand the intended usage of optional fields.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description starts with 'Update an existing campaign,' which clearly identifies the verb and resource. It distinguishes from sibling tools like create_campaign and delete_campaign, and adds scope with 'Send only the fields you want to change.' This is unambiguous and specific.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description gives practical usage guidance: 'Send only the fields you want to change' and 'Cannot change objective after creation.' It implies the tool is for partial updates to existing campaigns. It doesn't explicitly mention alternatives, but the context makes it clear when to use this tool versus create/delete.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already indicate destructiveHint=true, but the description adds the important context that the action is irreversible, which is valuable behavioral information beyond the structured annotation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two concise sentences that immediately state the action and then provide a safety tip. No unnecessary words or redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple single-parameter tool with clear annotations and a complete schema, the description covers all necessary context: the action, irreversibility, and an alternative approach. Nothing essential is missing.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema fully documents the only parameter (ad_id) with 100% coverage. The description does not add additional semantic meaning, so baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb 'Delete' and resource 'ad', clearly stating what the tool does. It also distinguishes itself from the sibling 'update_ad' tool, which is a different operation.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides explicit when-not-to-use guidance by suggesting 'update_ad with status=ARCHIVED' as an alternative, giving clear context for choosing between tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare destructiveHint=true, but the description adds that deletion is 'irreversible' and suggests a safer alternative. This adds context beyond the structured annotation by emphasizing the permanence and providing a mitigative approach.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, front-loaded with the primary action, and every word earns its place. No fluff or repetition.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple single-parameter delete operation, the description covers purpose, irreversible consequences, and an alternative. No output schema exists, and none is needed given the clarity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% and the parameter 'adset_id' is described as 'Ad set ID to delete', which is clear. The description itself does not add extra parameter-level meaning, so a baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Delete an ad set' with a specific verb and resource, distinguishing it from sibling tools like delete_campaign and delete_ad. It also immediately identifies the irreversible nature.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly provides a when-not-to-use alternative: 'Consider using update_adset with status=ARCHIVED instead.' This gives clear guidance on preferring a less destructive option when appropriate.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds value by disclosing auto-pagination up to 10 pages and summarizing the return fields, which are not fully obvious from schema alone.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is four concise sentences, front-loaded with the core purpose, then filters, return info, and pagination. No wasted words.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a read-only list tool, the description covers purpose, filtering, return fields, and pagination. Annotations handle safety, and the schema documents all parameters, so the description is complete without an output schema.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100%, so baseline is 3. The description adds meaning by noting pagination behavior and return fields, complementing the schema's parameter descriptions. It also clarifies that adset_id switches the query path, though the schema already mentions this.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool lists ads in the ad account, using a specific verb and resource. It distinguishes from sibling tools like list_campaigns and list_adsets by focusing on ads and mentioning filtering by ad set ID or effective status.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description indicates optional filtering by ad set ID or effective status, giving clear context on how to narrow results. It does not explicitly compare with alternatives, but the usage context is clear enough for a list operation.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Description discloses that it auto-paginates up to 10 pages and returns specific fields (name, status, targeting, budget, schedule), which goes beyond the annotations' read-only and non-destructive hints. No contradiction with annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Four short sentences, front-loaded with the action, no filler. Every sentence adds value, including pagination and return fields.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite no output schema, the description covers purpose, optional filters, return fields, and pagination behavior. Combined with strong annotations, this is a complete description for a list tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema covers 100% of parameters with descriptions; the description only reiterates the filter options without adding new semantics. Baseline 3 applies as schema does the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Clearly states it lists ad sets in the ad account, with a specific verb and resource. Distinguishes from sibling tools like list_campaigns and list_ads by naming the resource type. The optional filters add further specificity.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides clear context: use when you need to list ad sets, optionally filtering by campaign ID or effective status. However, it does not explicitly mention when not to use it or name alternatives, so it stops short of a 5.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

mcp-meta-marketing MCP server

Copy to your README.md:

Score Badge

mcp-meta-marketing MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pauloFroes/mcp-meta-marketing'

If you have feedback or need assistance with the MCP directory API, please join our Discord server