Skip to main content
Glama
Ownership verified

Server Details

Hosted MCP server for Google Ads and LinkedIn Ads analysis.

Status
Unhealthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 56 of 56 tools scored. Lowest: 3.5/5.

Server CoherenceA
Disambiguation4/5

Tools are clearly separated by platform prefix (linkedin_, google_ads_) and have distinct purposes (analyze, compare, render, get, etc.). Descriptions explicitly direct users to preferred rendering tools, reducing ambiguity. However, the high number of similar tools (e.g., multiple compare functions) may still cause minor confusion.

Naming Consistency5/5

Naming follows a consistent snake_case verb_noun pattern across all tools (e.g., linkedin_analyze_campaign, google_ads_render_weekly_group_report). No mixing of conventions, and verbs like get, render, analyze, compare are used uniformly.

Tool Count3/5

With 56 tools covering two major ad platforms plus setup and reporting, the count is high but reflects the complexity of the domain. However, many tools are redundant (e.g., multiple equivalent 'get' vs 'render' pairs), and the set could be streamlined without sacrificing capability.

Completeness4/5

The tool surface covers the full analysis and reporting lifecycle for both LinkedIn and Google Ads, including data retrieval, analysis, rendering, and account health. Missing are campaign creation/update tools, but these are outside the stated purpose. Minor gaps like lacking bulk operations or cross-platform comparison are acceptable.

Available Tools

52 tools
classify_campaign_reporting_groupAInspect

Assigns one synced campaign to a saved reporting group after client confirmation, optionally recording effective dates and resolving the related setup question.

ParametersJSON Schema
NameRequiredDescriptionDefault
purposeNoOptional campaign purpose note captured during classification.
platformYes
groupNameYesReporting group name to assign.
followUpIdNoOptional setup-question ID to resolve after classification.
effectiveToNoOptional YYYY-MM-DD date when this assignment stops applying.
funnelStageNoOptional funnel stage note captured during classification.
analystNotesNoOptional analyst notes to store on the campaign context.
effectiveFromNoOptional YYYY-MM-DD date when this assignment becomes active.
advertiserNameNoOptional advertiser name fallback.
includedInReportsNoSet false to exclude the campaign from grouped reports while still tracking it.
externalCampaignIdYesPlatform-native campaign ID stored in saved account data.
advertiserContextIdNoOptional saved advertiser ID when campaign ID alone is ambiguous.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior3/5

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

Annotations already indicate a non-read-only, non-destructive mutation. The description adds that it requires client confirmation and optionally resolves setup questions, but doesn't detail side effects like overwriting behavior or limits. This adds some value but leaves gaps.

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 conveys core purpose, prerequisites, and optional functionality without unnecessary 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?

Given the complexity (12 parameters, output schema exists), the description covers the main action, optional features, and prerequisite. It is sufficient for an agent to understand when and how to use the tool.

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 92%, so most parameters are described in the schema. The description ties parameters together (e.g., effective dates, setup question), adding workflow meaning beyond individual descriptions.

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 specific verbs ('assigns') and resources ('synced campaign', 'reporting group'), clearly indicating the tool's action. It also mentions optional recording of effective dates and resolving setup questions, distinguishing it from siblings like 'resolve_context_follow_up' and 'save_reporting_groups'.

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 states 'after client confirmation', indicating a prerequisite for use. While it doesn't explicitly list when not to use or provide alternatives, the context of sibling tools implies this is for a specific workflow step, offering clear context.

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

get_auth_setup_statusA
Read-only
Inspect

Data tool for the current user's MCP/Auth0, LinkedIn Ads, and Google Ads connection status plus the exact setup URLs to continue the flow in a browser. For the user-facing setup UI, prefer render_auth_setup_status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
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 description adds no new behavioral context. It does not contradict annotations, but no additional disclosure is provided beyond stating the output includes setup URLs.

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 concise sentences: first states what the tool returns, second gives usage guidance. No unnecessary words, 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.

Completeness5/5

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

Given zero parameters, an existing output schema (hidden), and no complex behavior, the description provides all necessary context: it returns status and URLs, and directs UI needs elsewhere. Fully adequate for 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 input schema has zero parameters, and schema coverage is 100%, so the description does not need to add parameter information. Baseline score of 4 is appropriate as no parameters exist to document.

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 returns connection status and setup URLs for the current user's MCP/Auth0, LinkedIn Ads, and Google Ads. It explicitly distinguishes from sibling tool 'render_auth_setup_status' by directing the agent to prefer that for UI, ensuring unambiguous purpose.

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?

The description provides explicit guidance: 'For the user-facing setup UI, prefer render_auth_setup_status.' This tells the agent when to use this data tool versus the UI-oriented sibling, avoiding misselection.

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

get_context_setup_statusA
Read-only
Inspect

Data tool for the current user's saved client context, including client setup status, advertiser profiles, synced account/campaign counts, and any open setup questions. For the user-facing setup UI, prefer render_context_onboarding.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds value by enumerating the data fields returned, reinforcing that it is a safe read operation without side effects.

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 with no wasted words. First sentence describes purpose, second provides usage guidance. Very efficient.

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?

Given zero parameters and an output schema, the description covers all necessary context: it specifies the data scope (current user's saved client context) and directs to the UI tool when appropriate.

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?

With zero parameters and 100% schema coverage, baseline is 4. The description does not need to add parameter info; it appropriately lists the data returned.

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 identifies it as a data tool for the user's saved client context, listing specific data elements. It distinguishes itself from render_context_onboarding by explicitly stating when to use the sibling for UI.

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 tells the agent to prefer render_context_onboarding for the user-facing setup UI, providing clear guidance on when to use this tool versus the sibling.

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

get_mcp_helpA
Read-only
Inspect

Explains how to use the Paid Ads MCP Server, including auth setup, LinkedIn Ads workflows, Google Ads workflows, MCP UI behavior, and recommended starting tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNoOptional help topic to focus on.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already indicate readOnlyHint=true, so the tool is safe to use. The description adds context about the scope of help provided (auth, workflows, etc.), which goes beyond 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.

Conciseness4/5

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

The description is one sentence covering the key points. It is adequately concise and front-loaded with the core purpose.

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?

Given the tool's simplicity, one optional parameter, and existence of an output schema, the description provides sufficient context for an agent to understand when and how to use it.

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 covers 100% of the single optional parameter with an enum. The description adds meaning by listing the topics (auth, LinkedIn, Google Ads, etc.) which correspond to enum values, helping the agent understand what each topic covers.

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 that the tool explains how to use the Paid Ads MCP Server, covering specific areas like auth, LinkedIn, Google Ads, UI, and starting tools. This distinguishes it from sibling tools which are action-oriented.

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 getting help or guidance, but does not explicitly state when to use this tool versus alternatives like using specific tools directly. No when-not or exclusion criteria are provided.

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

get_unmapped_campaignsA
Read-only
Inspect

Lists synced campaigns that do not currently have an active reporting-group assignment for the requested platform or advertiser. Use this after syncs to find campaigns that need client confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
asOfDateNoOptional YYYY-MM-DD date for effective-date aware filtering.
platformNoOptional platform filter.
advertiserNameNoOptional advertiser name fallback.
advertiserContextIdNoOptional saved advertiser ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool lists specific campaigns (unmapped) and suggests its purpose, which aligns with annotations and provides useful context beyond 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?

The description is two sentences with no fluff. The first sentence states the purpose, the second provides usage guidance. Every word earns its place.

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?

Given the tool is read-only with annotations covering safety, an output schema (not shown but present), and the description clarifies when to use it, the description is complete for an agent to understand the tool's role.

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 input schema already describes all parameters. The description does not add any additional meaning about parameters, meeting the baseline of 3 for 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 lists synced campaigns without an active reporting-group assignment, using specific verbs and a defined resource. It distinguishes from siblings like classify_campaign_reporting_group.

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?

It explicitly says 'Use this after syncs to find campaigns that need client confirmation,' providing clear when-to-use context. It does not explicitly mention alternatives, but the sibling names imply them.

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

linkedin_analyze_campaignA
Read-only
Inspect

Data workflow for LinkedIn campaign analysis. Resolves a campaign by name, compares campaign performance across trailing windows, and returns a compact analysis artifact with top creative rows. Video campaigns include video-view, completion-rate, and cost-per-view guidance alongside core spend and click metrics. For the user-facing visual dashboard, prefer linkedin_render_campaign_analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesCampaign name query to resolve, such as US prospects.
endDateYesInclusive analysis end date in YYYY-MM-DD format.
windowsNoTrailing window sizes in days, such as [7, 30, 90]. Defaults to [7, 30, 90].
accountIdNoOptional LinkedIn ad account ID to narrow the search. If omitted, the recent session account is used when available.
detailRowCountNoMaximum number of creative rows to include in the compact analysis. Defaults to 5, max 20.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so no addition needed for safety. The description adds transparency about output specifics, such as video metrics included, but does not discuss potential side effects like rate limits or data staleness. It is consistent with annotations, no contradictions.

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 comprised of two focused sentences. The first covers the core workflow, the second adds video-specific details and usage guidance. Every sentence provides essential information without redundancy or fluff. Front-loaded with primary action.

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 presence of an output schema covers return value documentation. The description outlines the artifact's content (top creative rows, video metrics) sufficiently. It could mention edge cases (e.g., unresolved campaign, no data), but given the complexity and sibling differentiation, it is adequately complete.

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 parameters are already described. The description adds value by contextualizing parameters within the workflow (e.g., 'compares performance across trailing windows' explains the windows parameter, 'returns top creative rows' explains detailRowCount). This integration provides meaning beyond the schema definitions.

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: it resolves a LinkedIn campaign by name, compares performance across trailing windows, and returns a compact analysis with top creative rows. It also explicitly distinguishes itself from the sibling tool linkedin_render_campaign_analysis by noting the latter is for the user-facing dashboard. The verb and resource are 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 provides explicit guidance on when to prefer an alternative (linkedin_render_campaign_analysis for the visual dashboard). However, it does not mention when NOT to use this tool, such as prerequisites (e.g., requiring an ad account) or scenarios where the compact analysis is insufficient.

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

linkedin_audit_campaign_targetingA
Read-only
Inspect

Audits one LinkedIn campaign's targeting setup, summarizing included and excluded facets, audience expansion, objective alignment, and practical marketer recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdNoOptional LinkedIn ad account ID. If omitted, recent session memory is used when available.
campaignIdNoOptional LinkedIn campaign ID. If omitted, the most recent LinkedIn campaign from session memory is used when available.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by detailing the comprehensive output (included/excluded facets, audience expansion, alignment, recommendations). No contradictions. It does not disclose additional behavioral traits like rate limits, but the annotations cover the most critical aspects.

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 purpose and lists key components. Every element earns its place; no wasted words. It is appropriately sized for the tool's simplicity.

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?

Given the tool's complexity and the presence of an output schema, the description sufficiently covers what the tool does. It could benefit from mentioning that it uses session memory for defaults, but this is already in the schema. Overall, it is complete enough for an agent to understand.

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% for the two optional parameters (accountId, campaignId). The description does not add any extra meaning beyond what the schema already provides, so 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 the verb 'audits' and the resource 'a LinkedIn campaign's targeting setup', specifying the output includes included/excluded facets, audience expansion, objective alignment, and recommendations. It distinguishes this tool from siblings like 'linkedin_get_targeting_insights' and 'linkedin_analyze_campaign' by focusing on auditing targeting setup specifically.

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 auditing campaign targeting but does not provide explicit guidance on when to use this tool versus alternatives like 'linkedin_get_targeting_insights' or 'linkedin_analyze_campaign'. No exclusions or prerequisites are mentioned. The optional parameters and session memory hint is present in schema, not in description.

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

linkedin_compare_creative_performanceA
Read-only
Inspect

Schema revision: creative-comparison-account-tabs-v1. Preferred structured LinkedIn creative-metrics tool for one or more campaigns. Compares LinkedIn creative-level performance across trailing windows ending on a specific date. Video campaigns surface video views, view rate, completion rate, and cost per view alongside spend and click metrics. Use this for creative follow-up instead of falling back to linkedin_get_creatives inventory plus generic CREATIVE analytics. Pass accountId for broad multi-campaign creative analysis. Pass campaignIds, or campaignId without accountId, only when the user explicitly wants a campaign-specific scope. If all scope inputs are omitted, the most recent LinkedIn campaign from session memory is used when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateYesInclusive comparison end date in YYYY-MM-DD format.
windowsNoTrailing window sizes in days, such as [7, 30]. Defaults to [7, 30].
pageSizeNoMCP delivery page size for creative comparison rows. Defaults to 50, max 200.
accountIdNoOptional numeric LinkedIn Ad Account ID. Pass this for a bounded multi-campaign creative comparison; accountId takes precedence over a lone campaignId.
pageTokenNoOpaque cursor returned by a previous linkedin_compare_creative_performance call to continue reading rows.
campaignIdNoOptional numeric LinkedIn campaign ID to analyze. If omitted, the most recent LinkedIn campaign from session memory is used when available. When accountId is also supplied, accountId takes precedence over a lone campaignId; use campaignIds for explicit campaign scope.
campaignIdsNoOptional numeric LinkedIn campaign IDs to analyze together as one campaign set. Use this for cross-campaign creative comparison within the same account.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Adds context beyond annotations: it compares trailing windows, surfaces video-specific metrics, and describes default windows/page sizes. No contradictions. Annotations already cover readOnly and openWorld, so description supplements well.

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?

Relatively concise at 7 sentences, front-loaded with purpose. The 'Schema revision' opening sentence is awkward and adds little value, but overall structure is good and each 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?

Given the tool's complexity (7 params, output schema exists), the description covers scope, fallback behavior, metric highlights, and alternatives. Lacks detail on output format, but output schema compensates. Good completeness.

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% with descriptions, but description adds strategic value by explaining the when/why of accountId vs campaignId vs campaignIds, and defaults for omitted parameters. Provides meaning beyond raw schema.

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 compares LinkedIn creative-level performance across trailing windows, and distinguishes from sibling tool linkedin_get_creatives by positioning itself as the preferred creative follow-up tool. Specific verb and resource.

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 tells when to use this tool vs alternatives ('instead of falling back to linkedin_get_creatives...'), explains parameter scoping rules for accountId vs campaignId(s), and describes default behavior when inputs are omitted. Very clear guidance.

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

linkedin_compare_performance_windowsA
Read-only
Inspect

Raw data tool for comparing LinkedIn performance across two explicit date windows. Returns validated absolute and percentage deltas for core metrics. Do not call this directly for user-facing prompts like 'generate a report' or 'show a report'; prefer linkedin_render_weekly_group_report for broad account/ad-account reports. Defaults to account scope; pass campaignId to narrow to one campaign. If accountId is omitted, the most recent LinkedIn account from session memory is used when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdNoOptional LinkedIn ad account ID to compare. If omitted, the most recent LinkedIn account from session memory is used when available.
campaignIdNoOptional LinkedIn campaign ID to narrow the comparison to a single campaign.
currentEndDateYesEnd date for the current window in YYYY-MM-DD format.
currentStartDateYesStart date for the current window in YYYY-MM-DD format.
comparisonEndDateYesEnd date for the comparison window in YYYY-MM-DD format.
comparisonStartDateYesStart date for the comparison window in YYYY-MM-DD format.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already indicate readOnly=true and destructive=false. Description adds that it returns validated deltas, defaults to account scope, and uses session memory for accountId. No contradictions, but could mention data freshness or rate limits.

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?

Three sentences, each adding distinct value: purpose+output, usage guidance, and default behavior. No filler, well front-loaded.

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?

Covers purpose, usage boundaries, default behavior, and parameter behavior. With output schema existing, description is sufficient for correct selection and invocation.

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 baseline 3. Description adds context for accountId (session memory fallback) but other parameters are straightforward from schema. Minimal value added beyond schema.

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's a 'raw data tool for comparing LinkedIn performance across two explicit date windows' and specifies it returns 'validated absolute and percentage deltas'. Distinguishes from report rendering tool, making purpose unambiguous.

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 tells when not to use ('Do not call this directly for user-facing prompts') and suggests alternative ('prefer linkedin_render_weekly_group_report'). Also explains default scope and how to narrow by campaignId.

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

linkedin_find_campaignsA
Read-only
Inspect

Data tool that finds LinkedIn campaigns by name across one account or all accessible accounts, ranks likely matches, and returns compact campaign identity data for disambiguation. For the user-facing picker UI, prefer render_shared_picker.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of matches to return. Defaults to 10, max 50.
queryYesCampaign name query, such as 'US prospects'.
pageSizeNoMCP delivery page size for returned matches. Defaults to 50, max 200.
statusesNoOptional list of campaign statuses to keep, such as ACTIVE, PAUSED, or DRAFT.
accountIdNoOptional ad account ID to restrict the search to a single account.
pageTokenNoOpaque cursor returned by a previous linkedin_find_campaigns call to continue reading matches.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and destructiveHint. The description adds context about ranking matches and returning compact data, which goes beyond annotations without contradiction.

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 core purpose, no extraneous information. Every sentence contributes value.

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?

With an output schema, the description doesn't need to detail returns. It covers purpose, usage alternative, and behavioral context. Annotations and sibling tools complete the picture.

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 mentioning 'by name' and 'across one account or all', relating to query and accountId parameters, and implies ranking and disambiguation purpose beyond the schema.

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 finds LinkedIn campaigns by name, ranks matches, and returns compact identity data for disambiguation. It also differentiates from the UI picker (render_shared_picker).

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 explicitly notes when to prefer render_shared_picker for the user-facing UI, providing clear context. It lacks explicit 'when not to use' details but the alternative is sufficient for differentiation.

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

linkedin_get_account_healthA
Read-only
Inspect

Marketer-friendly LinkedIn account health check covering API version posture, OAuth scopes, selected account access, campaign-group availability, targeting discovery access, and readiness recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountIdNoOptional LinkedIn ad account ID. If omitted, the most recent LinkedIn account from session memory is used when available.
includeJwtClaimsNoWhen true and the bearer token is a JWT, include a safe JWT claims summary.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, and the description adds value by specifying what aspects are checked (posture, scopes, access, etc.), reinforcing the non-destructive, read-only nature.

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 a single, reasonably concise sentence that lists key areas. It could be slightly more structured (e.g., bullet points) but is not overly verbose.

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?

Given the presence of an output schema and the description covering the tool's purpose and scope comprehensively, the description is complete for a health check 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 coverage is 100% with both parameters well-documented. The description does not add additional parameter information, so 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 it's a 'LinkedIn account health check' and enumerates specific areas (API version, OAuth, account access, etc.), distinguishing it from other LinkedIn tools like linkedin_get_ad_accounts or linkedin_get_campaigns.

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?

While 'Marketer-friendly' hints at target users and the health check implies a preliminary step, there is no explicit guidance on when to use this tool over alternatives or when not to use it. Siblings exist but no direct comparison.

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

linkedin_get_ad_accountsA
Read-only
Inspect

Fetches all LinkedIn Ad Accounts the authenticated user has access to. Returns their URN ID, name, currency, and status. Use this to find the target Account ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of accounts to return. Defaults to 20.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior5/5

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

Description matches annotations: readOnlyHint=true (reading accounts), destructiveHint=false. Adds value by stating it requires authentication and returns specific fields. No contradictions.

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 front-loaded with the action and purpose. Every word is meaningful with no 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?

With one optional parameter, good annotations, and an output schema, the description is fully adequate. It tells what the tool returns and why to use it.

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% for the single parameter 'count', and the schema already describes its default. Description adds no additional semantic detail beyond what schema provides. 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?

Description clearly states verb 'Fetches' and resource 'LinkedIn Ad Accounts'. It specifies what is returned (URN ID, name, currency, status) and the purpose (find target Account ID). Distinct from siblings which are mostly analysis or reporting tools.

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?

Explicitly says 'Use this to find the target Account ID', indicating the primary use case. Though it does not mention when not to use it, the context is clear and the sibling list contains no similar listing tools for LinkedIn.

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

linkedin_get_ad_analyticsA
Read-only
Inspect

Raw LinkedIn ad analytics data tool for focused follow-up metric pulls at account, campaign, or creative level. Do not use this as the primary response for broad user-facing prompts like 'generate a report', 'show my LinkedIn report', or 'dashboard'; prefer linkedin_render_weekly_group_report for account/ad-account reports, linkedin_render_campaign_analysis for campaign analysis, or linkedin_render_creative_comparison for creative-performance reports. When accountId or campaignId is omitted, recent LinkedIn session selections are used when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional LinkedIn analytics fields to request, such as reach, approximateUniqueImpressions, costInLocalCurrency, dateRange, likes, shares, landingPageClicks, externalWebsiteConversions, or pivotValues. Up to 20. The reach alias maps to LinkedIn's approximateUniqueImpressions metric.
endDateNoEnd Date (YYYY-MM-DD) for historical analytics. If empty, defaults to today.
pageSizeNoMCP delivery page size for analytics rows. Defaults to 50, max 200.
accountIdNoAd Account ID. Required for ACCOUNT analytics, and optional for CAMPAIGN analytics if you want grouped campaign rows for an account.
pageTokenNoOpaque cursor returned by a previous linkedin_get_ad_analytics call to continue reading analytics rows.
startDateNoStart Date (YYYY-MM-DD) for historical analytics. If empty, defaults to 30 days ago.
campaignIdNoCampaign ID. Required for CREATIVE analytics, and supported for CAMPAIGN analytics to fetch one campaign directly.
creativeIdNoOptional Creative ID to scope creative analytics to one creative.
entityLevelNoThe reporting pivot to query.CAMPAIGN
timeGranularityNoALL, DAILY, MONTHLY, or YEARLYDAILY
campaignNameLimitNoFor CAMPAIGN entityLevel only: max number of unique campaign IDs to name-resolve. Defaults to 30, max 100.
resolveCampaignNamesNoFor CAMPAIGN entityLevel only: when true, attempts to resolve campaign names from campaign IDs. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, establishing the tool as safe and read-only. The description adds context about the tool's nature ('raw data for focused follow-up'), default date behavior (startDate defaults to 30 days ago, endDate to today), and session context fallback. This goes beyond annotations without contradicting them, though it omits details like pagination or rate limits. A 4 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 two sentences, front-loaded with purpose, followed by a caution and fallback rule. Every sentence is necessary and no wording is wasted. It is concise and structured effectively.

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?

Given the tool's complexity (12 parameters, 3 entity levels, output schema present), the description adequately covers the main use case (raw data pulls), exclusions (broad reports), fallback (session selections), and default date behavior. It does not need to explain return values since an output schema exists. The description is complete enough for an agent to use correctly.

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% (12 parameters all have descriptions). The description adds no new parameter-level info beyond the schema, but it provides helpful context such as 'The reach alias maps to LinkedIn's approximateUniqueImpressions metric' and explains the interplay between entityLevel, accountId, and campaignId. While useful, this is moderate added value over the schema, so a 3 (baseline) is correct.

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 it is 'Raw LinkedIn ad analytics data tool for focused follow-up metric pulls at account, campaign, or creative level,' providing a specific verb, resource, and granularity. It distinguishes from siblings by explicitly naming linkedin_render_weekly_group_report, linkedin_render_campaign_analysis, and linkedin_render_creative_comparison as alternatives.

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?

The description explicitly says 'Do not use this as the primary response for broad user-facing prompts like "generate a report"...' and lists three alternative tools. It also clarifies fallback behavior: 'When accountId or campaignId is omitted, recent LinkedIn session selections are used when available.' This provides clear when-to-use and when-not-to-use guidance.

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

linkedin_get_ad_demographicsA
Read-only
Inspect

Fetches LinkedIn professional demographic reporting, grouped by a demographic pivot such as industry, seniority, job title, region, or company size. Results always include pivotValues, and default to impressions plus clicks unless custom fields are supplied. For MEMBER_COMPANY pivots, organization URNs/IDs are returned as stable keys and may not resolve to public names. When accountId or campaignId is omitted, recent LinkedIn session selections are used when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional LinkedIn analytics fields. pivotValues is always included automatically. If omitted, the tool returns pivotValues, impressions, and clicks. Up to 20 total fields.
endDateNoEnd Date (YYYY-MM-DD) for historical analytics. If empty, defaults to today.
pageSizeNoMCP delivery page size for demographic rows. Defaults to 50, max 200.
accountIdNoOptional Ad Account ID to scope the demographic report.
pageTokenNoOpaque cursor returned by a previous linkedin_get_ad_demographics call to continue reading demographic rows.
startDateNoStart Date (YYYY-MM-DD) for historical analytics. If empty, defaults to 30 days ago.
campaignIdNoOptional Campaign ID to scope the demographic report.
creativeIdNoOptional Creative ID to scope the demographic report.
timeGranularityNoALL, DAILY, MONTHLY, or YEARLYDAILY
companyNameLimitNoLegacy alias for companyNamePageSize. Max 200. Default 100.
demographicPivotNoThe demographic dimension to group by.MEMBER_INDUSTRY
companyNameCursorNoFor MEMBER_COMPANY only: opaque cursor for organization-name resolution paging, returned by a previous call. Use this to fetch additional resolution pages.
companyNamePageSizeNoFor MEMBER_COMPANY only: organization IDs to resolve per call in paged mode. Max 200. Setting this enables paged resolution mode.
resolveCompanyNamesNoFor MEMBER_COMPANY only: when true, attempts to resolve organization names via LinkedIn Organizations API. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

The description adds value beyond annotations by disclosing that pivotValues are always included, default fields are impressions and clicks, and that for MEMBER_COMPANY pivots, organization URNs may not resolve to public names. It also mentions session-based fallback for account/campaign IDs.

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 necessary detail without redundancy. It efficiently covers the main behavior, defaults, and special cases.

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?

Given the complexity of 14 parameters and the presence of an output schema, the description effectively covers the tool's purpose, default fields, special MEMBER_COMPANY behavior, and session fallback. It is complete enough for an agent to understand when and how to use the tool.

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?

With 100% schema coverage, baseline is 3. The description adds meaning by explaining the default behavior when fields are omitted and the special handling for MEMBER_COMPANY parameters, providing context that the schema alone does not.

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 specifies it fetches LinkedIn demographic reporting grouped by a demographic pivot, listing specific examples like industry, seniority, etc. It distinguishes from sibling tools by focusing on demographic breakdowns and mentioning default fields like impressions and clicks.

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 provides context such as default fields and special behavior for MEMBER_COMPANY pivots, but does not explicitly state when to use this tool versus alternatives like linkedin_get_ad_analytics or other demographic-related tools.

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

linkedin_get_campaign_groupsA
Read-only
Inspect

Builds a LinkedIn campaign-group report with current-window performance, linked campaigns, and pacing analysis against daily or total budgets when the API exposes that data.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoInclusive report end date in YYYY-MM-DD format. Defaults to today.
pageSizeNoMCP delivery page size for campaign groups. Defaults to 50, max 200.
accountIdNoOptional LinkedIn ad account ID. If omitted, the most recent LinkedIn account from session memory is used when available.
pageTokenNoOpaque cursor returned by a previous linkedin_get_campaign_groups call.
startDateNoInclusive report start date in YYYY-MM-DD format. Defaults to 30 days before endDate.
includeCampaignsNoWhen true, include compact campaign rows under each LinkedIn campaign group.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior3/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, so the description does not need to repeat safety. It adds a behavioral caveat about API data availability. However, it does not disclose pagination behavior or data freshness.

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 a single, clear sentence with 25 words. It front-loads the purpose and adds a caveat. Could be considered efficiently concise.

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?

With an output schema present and full parameter descriptions, the tool is well-documented. The description adds context about API-dependent behavior. However, it lacks mention of authentication requirements or prerequisite account setup.

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?

Input schema has 100% coverage with individual parameter descriptions. The description does not add significant meaning beyond the schema, so baseline of 3 is appropriate.

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 it builds a campaign-group report with performance, linked campaigns, and pacing analysis. It specifies a specific resource (campaign group) and action (builds report). However, it does not explicitly differentiate from similar tools like linkedin_get_weekly_group_report.

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 performance analysis of campaign groups, but it does not provide explicit guidance on when to use this tool versus alternatives. The phrase 'when the API exposes that data' hints at limitations but lacks exclusions.

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

linkedin_get_campaignsA
Read-only
Inspect

Fetches LinkedIn campaigns within a specific Ad Account. Supports MCP-friendly cursor pagination to preserve context window. If accountId is omitted, the most recent LinkedIn account from session memory is used when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoLegacy page size. Max 50. Default 25. Prefer pageSize/cursor instead.
startNoLegacy offset pagination. Start at 0 and increment by count. Prefer cursor instead.
cursorNoOpaque cursor returned by a previous linkedin_get_campaigns call. Preferred over start/count.
pageSizeNoCampaigns per page when cursor is absent. Max 50. Default 25.
accountIdNoOptional numeric ID of the Ad Account (without the urn prefix). If omitted, the most recent LinkedIn account from session memory is used when available.
includeRawNoWhen true, include raw LinkedIn campaign objects for the returned page. Defaults to false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Beyond annotations (readOnlyHint, destructiveHint), the description adds that it uses MFP-friendly cursor pagination to preserve context window and defaults to session memory for accountId. This enriches 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.

Conciseness5/5

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

Two sentences, no wasted words. The purpose is front-loaded, and pagination and accountId behavior follow succinctly.

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?

Given the tool's complexity (6 optional params, output schema exists, annotations cover safety), the description is adequate. It covers purpose, pagination, and account fallback. Minor gaps like error handling or permissions are acceptable with annotations and output schema present.

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?

With 100% schema coverage, baseline is 3. The description adds value by explaining the accountId fallback and the benefit of cursor pagination, which is not in the schema descriptions.

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 it fetches LinkedIn campaigns within a specific Ad Account. The purpose is specific and actionable, but it does not explicitly differentiate from sibling tools like linkedin_find_campaigns.

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 provides guidance on how to use the cursor pagination and the accountId fallback, but lacks explicit when-to-use versus alternatives. Usage context is implied rather than stated.

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

linkedin_get_connector_diagnosticsA
Read-only
Inspect

Returns connector diagnostic details for auth posture and optional live LinkedIn probes. Use this when debugging missing tools, OAuth scope issues, or unresolved company names.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeJwtClaimsNoWhen true and the bearer token is a JWT, includes a safe JWT claim summary (iss/sub/aud/scope/scp/exp/iat).
runLinkedInProbeNoWhen true, performs lightweight LinkedIn API probe calls using the current token.
sampleOrganizationIdNoOptional organization ID to test /organizations/{id} access.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior5/5

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

Annotations already declare readOnlyHint and destructiveHint, and the description adds valuable behavioral context: it returns diagnostic details and performs optional live LinkedIn probes. No contradiction; fully transparent.

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 purpose, followed by usage context. Every word serves a purpose; no redundancy or wasted text.

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?

With three optional parameters, no required params, an output schema, and annotations, the description is nearly complete. It could briefly note the need for a valid LinkedIn auth token, but this is implied and not critical.

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?

Input schema provides 100% description coverage for all three parameters, so the description adds no additional meaning beyond what is already in the schema. Baseline score of 3 applies.

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 returns diagnostic details for auth posture and optional live LinkedIn probes, and lists specific debugging scenarios (missing tools, OAuth scope issues, unresolved company names), distinguishing it from sibling diagnostic tools.

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?

Explicitly tells when to use the tool ('Use this when debugging...'), providing clear context and three specific use cases. Does not exclude alternatives but sufficiently guides selection.

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

linkedin_get_creativesA
Read-only
Inspect

Searches creatives within a specific LinkedIn Ad Account. This is an inventory/discovery tool for creative IDs, names, statuses, and campaign associations. Do not use it as the primary creative performance tool when a user asks for impressions, clicks, spend, or creative winners/losers; prefer linkedin_compare_creative_performance or linkedin_render_creative_comparison for that. If accountId is omitted, the most recent LinkedIn account from session memory is used when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoCursor page size. LinkedIn caps this at 100. Defaults to 25.
accountIdNoOptional numeric ID of the Ad Account that owns the creatives. If omitted, the most recent LinkedIn account from session memory is used when available.
pageTokenNoCursor token returned by a previous linkedin_get_creatives call.
sortOrderNoSort order for creative ID results.ASCENDING
campaignIdsNoOptional list of Campaign IDs to filter creatives by campaign. If omitted, the most recent LinkedIn campaign from session memory is used when available.
creativeIdsNoOptional list of Creative IDs to fetch directly.
isTestAccountNoOptional filter for test-account creatives.
intendedStatusesNoOptional list of creative statuses such as ACTIVE, DRAFT, PAUSED, ARCHIVED, or CANCELED.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context about its inventory/discovery nature and default account/campaign memory behavior, which is useful 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?

Three concise sentences with no wasted words. The first states purpose, the second clarifies boundaries and alternatives, and the third provides fallback guidance. Well structured and front-loaded.

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?

Given the high schema coverage and presence of an output schema, the description covers purpose, usage boundaries, and default behaviors adequately for an 8-parameter tool with no required parameters.

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% with each parameter well-documented. The description reinforces the default behavior for accountId and campaignIds but does not add significant 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 it searches creatives within a LinkedIn Ad Account and specifies it is an inventory/discovery tool for creative IDs, names, statuses, and campaign associations. This distinguishes it from performance-related sibling tools like linkedin_compare_creative_performance.

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 instructs not to use this tool for performance queries and directs to linkedin_compare_creative_performance or linkedin_render_creative_comparison instead. Also explains fallback behavior when accountId is omitted.

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

linkedin_get_targeting_insightsA
Read-only
Inspect

Targeting explorer for LinkedIn Ads. Returns a facet catalog and can run live adTargetingEntities discovery for one facet or a supplied set of entity URNs.

ParametersJSON Schema
NameRequiredDescriptionDefault
facetNoOptional targeting facet short name or URN, such as seniorities, job_functions, industries, companies, or urn:li:adTargetingFacet:buyerGroups.
queryNoOptional typeahead query to narrow live targeting entities within the selected facet.
pageSizeNoMCP delivery page size for returned targeting entities. Defaults to 25, max 100.
pageTokenNoOpaque cursor returned by a previous linkedin_get_targeting_insights call.
entityUrnsNoOptional list of targeting entity URNs to resolve directly.
localeCountryNoOptional two-letter country code for targeting discovery.
localeLanguageNoOptional two-letter language code for targeting discovery. Defaults to en.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint. Description adds context about returning a facet catalog and performing live discovery, which clarifies the tool's dual mode behavior.

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 purpose, no wasted words. Efficient and clear.

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?

With good annotations, full schema coverage, and an output schema present, the description is adequate. It could benefit from a note on when to use facet vs entityUrns, but not critical.

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% with good descriptions. The description adds overall context but does not enhance understanding of individual parameters beyond the schema.

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?

Description clearly states it's a targeting explorer that returns a facet catalog and can run live adTargetingEntities discovery for one facet or entity URNs. This is specific and distinguishes it from sibling tools.

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?

No explicit when-to-use or when-not-to-use guidance. The description implies a use case but does not contrast with alternative tools like linkedin_audit_campaign_targeting.

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

linkedin_get_weekly_campaign_creativesA
Read-only
Inspect

Fetches creative rows for one campaign inside a LinkedIn weekly report using the exact current and comparison windows, so the MCP app can nest creatives under each campaign without overloading the main report payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoMCP delivery page size for creative rows. Defaults to 10, max 25.
accountIdNoOptional LinkedIn ad account ID for the campaign. Used for the newer account-scoped creatives endpoint.
pageTokenNoOpaque cursor returned by a previous linkedin_get_weekly_campaign_creatives call.
campaignIdYesLinkedIn campaign ID whose creatives should be returned.
campaignNameNoOptional campaign name for display continuity.
campaignFormatNoOptional campaign format for format-aware creative rendering.
currentEndDateYesCurrent reporting window end date in YYYY-MM-DD format.
currentStartDateYesCurrent reporting window start date in YYYY-MM-DD format.
comparisonEndDateYesComparison reporting window end date in YYYY-MM-DD format.
comparisonStartDateYesComparison reporting window start date in YYYY-MM-DD format.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is clear. The description adds value by explaining the use of exact date windows and the purpose of avoiding overload, providing behavioral context beyond 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 sentence that efficiently conveys the action, context, and purpose. It is front-loaded with the verb and contains no superfluous 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?

Given the complexity of 10 parameters and the availability of an output schema, the description adequately explains the tool's role within the app (nesting creatives under campaigns). It could be more explicit about pagination behavior, but overall provides good context.

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 10 parameters have descriptions in the input schema (100% coverage), so the tool description does not add additional meaning. The description itself is generic regarding parameters, 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 that the tool fetches creative rows for one campaign within a LinkedIn weekly report using specific date windows. It differentiates from sibling tools like linkedin_get_creatives by specifying the context of a weekly report with comparison windows.

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 (fetching creatives for nesting under campaigns in a weekly report) but does not explicitly state when not to use it or mention alternatives like linkedin_get_creatives for simpler queries.

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

linkedin_get_weekly_group_report_group_campaignsA
Read-only
Inspect

Fetches the full paginated campaign rows for one reporting group within a LinkedIn weekly grouped report, while keeping the main report summary compact.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoMCP delivery page size for campaign rows. Defaults to 25, max 50.
accountIdYesLinkedIn ad account ID.
groupNameYesReporting group name whose campaign rows should be returned.
pageTokenNoOpaque cursor returned by a previous linkedin_get_weekly_group_report_group_campaigns call.
advertiserNameNoOptional advertiser name fallback.
currentEndDateYesCurrent reporting window end date in YYYY-MM-DD format.
currentStartDateYesCurrent reporting window start date in YYYY-MM-DD format.
comparisonEndDateNoOptional comparison window end date in YYYY-MM-DD format.
advertiserContextIdNoOptional saved advertiser ID.
comparisonStartDateNoOptional comparison window start date in YYYY-MM-DD format.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations already declare readOnlyHint=true; the description adds pagination behavior ('full paginated campaign rows'), which goes beyond the annotations and clarifies the tool's read-only and iterative nature.

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?

Single sentence that captures purpose, pagination, and effect. No unnecessary words; front-loaded with verb and resource.

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?

Given the existence of an output schema and full parameter descriptions, the description sufficiently explains the tool's role as a detail fetcher. It could benefit from mentioning relationship to the main report more explicitly.

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% (all parameters described in schema). The description adds no additional meaning beyond 'paginated', which is already implied by pageSize/pageToken parameters.

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?

Description indicates specific verb 'Fetches' and resource 'campaign rows for one reporting group', clearly distinguishing from sibling tools like 'linkedin_get_weekly_group_report' which returns the main report summary.

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 phrase 'while keeping the main report summary compact' implies when to use this tool (to avoid overloading the main report). However, no explicit when-not-to-use or alternative comparisons are provided.

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

linkedin_render_campaign_analysisA
Read-only
Inspect

Preferred user-facing LinkedIn campaign analysis tool. Renders the LinkedIn campaign analysis dashboard and can either take analysisPayload from linkedin_analyze_campaign or fetch the analysis directly when called with query/endDate arguments.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoCampaign name query to resolve when analysisPayload is not supplied.
endDateNoInclusive analysis end date in YYYY-MM-DD format when analysisPayload is not supplied.
windowsNoTrailing window sizes in days, such as [7, 30, 90], when analysisPayload is not supplied.
accountIdNoOptional LinkedIn ad account ID to narrow the search when analysisPayload is not supplied.
detailRowCountNoMaximum number of creative rows to include when analysisPayload is not supplied.
analysisPayloadNoThe structuredContent object returned by linkedin_analyze_campaign.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior3/5

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

Annotations already convey readOnlyHint=true and destructiveHint=false. The description adds that it 'renders the dashboard,' implying a read operation, and the two modes. Beyond that, no additional behavioral traits (e.g., rate limits, side effects) are disclosed. Given annotation coverage, 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 two sentences, front-loaded with purpose, and every sentence serves a clear role. 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?

With a full input schema, annotations, and an output schema (though not shown here), the description adequately covers the two modes. It could elaborate on what 'render' entails (e.g., UI output), but the openWorldHint suggests external effects. Overall, sufficient for an agent's decision-making.

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 descriptions cover all parameters (100% coverage), but the description adds critical context: parameters query, endDate, etc. are used only when analysisPayload is not supplied. This clarifies mutual exclusivity and the tool's dual-mode behavior, adding value beyond the schema.

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 it renders the LinkedIn campaign analysis dashboard, distinguishing it from sibling tools like linkedin_analyze_campaign (which produces the payload) and other render tools. The phrase 'preferred user-facing tool' adds clarity.

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 explains two usage modes: taking analysisPayload from linkedin_analyze_campaign or fetching directly with query/endDate arguments. This provides clear context, though it does not explicitly list scenarios when to use this tool over others, which is acceptable given sibling tools are for different platforms.

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

linkedin_render_creative_comparisonA
Read-only
Inspect

Schema revision: creative-comparison-account-tabs-v1. Preferred user-facing LinkedIn creative performance tool. Use this when a user asks for LinkedIn creative performance, creative winners/losers, or a visual creative report. Renders the LinkedIn creative comparison dashboard and can either take comparisonPayload from linkedin_compare_creative_performance or fetch the comparison directly. Pass accountId for broad multi-campaign creative analysis. Pass campaignIds, or campaignId without accountId, only when the user explicitly asks for a campaign-specific scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoInclusive comparison end date in YYYY-MM-DD format when comparisonPayload is not supplied.
windowsNoTrailing window sizes in days, such as [7, 30], when comparisonPayload is not supplied.
pageSizeNoMCP delivery page size for creative comparison rows when comparisonPayload is not supplied. Defaults to 50, max 200.
accountIdNoOptional numeric LinkedIn Ad Account ID. Pass this for a bounded multi-campaign creative report; accountId takes precedence over a lone campaignId on the visual renderer.
pageTokenNoOpaque cursor returned by a previous linkedin_compare_creative_performance call to continue reading rows.
campaignIdNoOptional campaign ID to compare when comparisonPayload is not supplied. For this visual renderer, accountId takes precedence over a lone campaignId so broad account-level prompts are not narrowed by stale session memory; use campaignIds for explicit campaign scope.
campaignIdsNoOptional numeric LinkedIn campaign IDs to compare as one campaign set when comparisonPayload is not supplied.
comparisonPayloadNoThe structuredContent object returned by linkedin_compare_creative_performance.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior5/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds behavioral context: it can either accept a pre-fetched payload or fetch data directly, explains precedence of accountId over campaignId, and details pagination with pageSize and pageToken. No contradictions 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 concise (3 sentences) but dense with actionable information. It is front-loaded with purpose and usage, and every sentence adds value. No 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?

Given 8 parameters, 100% schema coverage, output schema presence, and annotations, the description covers all necessary aspects: purpose, modes of operation, parameter selection criteria, and relationship with linkedin_compare_creative_performance. It is fully complete for agent decision-making.

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% with clear descriptions for each parameter. The description adds interpretative guidance, such as accountId taking precedence over campaignId, and pageSize max 200, which is not in schema. It provides strategic context for parameter selection beyond the schema definitions.

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 explicitly states it renders the LinkedIn creative comparison dashboard and is the preferred user-facing tool for creative performance, winners/losers, or visual reports. It clearly distinguishes from siblings like linkedin_compare_creative_performance by specifying it is the visual renderer.

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?

The description provides explicit when-to-use guidance: 'Use this when a user asks for LinkedIn creative performance...' and gives conditional parameter guidance: pass accountId for broad analysis, campaignIds or campaignId only for explicit campaign scope. It also mentions it can take comparisonPayload from linkedin_compare_creative_performance.

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

linkedin_render_weekly_group_reportA
Read-only
Inspect

Preferred user-facing LinkedIn Ads report tool. Use this first for broad report requests such as 'generate a report for my Thorogood LinkedIn ads for the past 7 and 30 days', 'show my LinkedIn report', 'weekly report', 'dashboard', or 'visual report'. It renders the grouped report MCP app and can either take reportPayload from linkedin_get_weekly_group_report or fetch fresh grouped data directly. For multi-window requests like 7 and 30 days, treat each requested window as its own report view and compare it only with the immediately preceding same-length period unless the user explicitly asks for a non-like-for-like comparison.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional natural-language advertiser or account query when reportPayload is not supplied.
pageSizeNoMCP delivery page size for reporting groups when reportPayload is not supplied. Defaults to 5, max 10.
accountIdNoLinkedIn ad account ID when reportPayload is not supplied.
pageTokenNoOpaque cursor returned by a previous linkedin_get_weekly_group_report call to continue reading groups.
reportPayloadNoThe structuredContent object returned by linkedin_get_weekly_group_report, or a wrapper object containing that payload such as a prior render result or channel payload.
advertiserNameNoOptional advertiser name fallback when reportPayload is not supplied.
currentEndDateNoCurrent reporting window end date in YYYY-MM-DD format when reportPayload is not supplied.
currentStartDateNoCurrent reporting window start date in YYYY-MM-DD format when reportPayload is not supplied.
comparisonEndDateNoOptional comparison window end date in YYYY-MM-DD format.
advertiserContextIdNoOptional saved advertiser ID when reportPayload is not supplied.
comparisonStartDateNoOptional comparison window start date in YYYY-MM-DD format.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations indicate readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context: it can either accept a pre-fetched reportPayload or fetch fresh data, and it specifies the like-for-like comparison rule for multi-window requests. The description enhances transparency without contradicting annotations.

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

Conciseness3/5

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

The description is a medium-length paragraph that front-loads the main purpose. However, it includes verbose example queries and slightly repetitious context about parameter usage. It could be more concise while preserving key guidance.

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 complexity (11 parameters, nested objects, output schema present), the description explains the overall workflow and comparison logic but does not cover error handling or parameter conflicts. It is fairly complete but leaves some gaps for a tool with this many parameters.

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 provides high-level context for parameter groups (e.g., 'when reportPayload is not supplied') but does not add significant detail beyond what the schema already provides for individual parameters.

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 it is the 'preferred user-facing LinkedIn Ads report tool' and provides specific example queries like 'generate a report...for the past 7 and 30 days'. It distinguishes from sibling tools by noting it is preferred for broad report requests and explains how it relates to linkedin_get_weekly_group_report.

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 explicitly advises 'Use this first for broad report requests' and provides example use cases. It mentions when to use it vs. alternatives (e.g., can take reportPayload from linkedin_get_weekly_group_report) and gives specific comparison logic for multi-window requests. However, it does not explicitly state when not to use it.

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

render_auth_setup_statusA
Read-only
Inspect

Preferred user-facing auth setup tool. Renders the auth setup MCP UI and can either take statusPayload from get_auth_setup_status or fetch fresh status directly when called without it.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusPayloadNoThe structuredContent object returned by get_auth_setup_status.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations (readOnlyHint, openWorldHint) are consistent; description adds context about fetching fresh status if called without payload, which aligns with read-only nature.

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 extraneous information, and the purpose 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 tool with one optional parameter and output schema, the description adequately covers both modes and key behavioral traits.

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% for the single optional param; description clarifies that statusPayload comes from get_auth_setup_status and that omitting it triggers a fresh fetch, adding value beyond schema.

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?

Description clearly states it renders the auth setup UI and can take a payload or fetch fresh status, distinguishing it from sibling get_auth_setup_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?

Explicitly says it's the preferred user-facing tool and explains the two invocation modes (with or without payload), but does not explicitly state when not to use it.

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

render_context_onboardingAInspect

Preferred user-facing client setup tool. Renders the saved client context MCP UI and can either take contextPayload from get_context_setup_status or fetch fresh status directly when called without it.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextPayloadNoThe structuredContent object returned by get_context_setup_status.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, leaving ambiguity. The description says 'renders' and 'fetch fresh status', suggesting it may cause state changes (e.g., fetching updates context). However, it does not disclose whether it modifies any state or has side effects beyond rendering. More explicit behavioral details would improve 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?

Two sentences, front-loaded with the primary purpose, followed by a clear explanation of the two invocation modes. No redundant words. Perfectly concise for the information conveyed.

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?

Given the simple interface (1 optional param, output schema present), the description covers the core behavior. It references the related tool get_context_setup_status. However, it could mention complementing save_context_onboarding or specify that it's for rendering only. Still, it is sufficiently complete for an agent to use correctly.

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 covers the single parameter contextPayload with a description pointing to get_context_setup_status. The description adds value by explaining the parameter is optional and that omitting it triggers a fresh status fetch. This enriches the agent's understanding beyond the schema.

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 it is a 'Preferred user-facing client setup tool' that 'Renders the saved client context MCP UI'. It distinguishes from siblings by detailing two modes of operation: with contextPayload or fetching fresh status. The verb 'renders' and the resource 'client context MCP UI' are specific and actionable.

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 explains when to use the tool with contextPayload (from get_context_setup_status) and when to call it without (to fetch fresh status). It implies it is the preferred tool for client setup, but does not explicitly state when not to use it or describe alternatives like save_context_onboarding. Strong guidance but lacks explicit exclusions.

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

render_shared_pickerA
Read-only
Inspect

User-facing account or campaign disambiguation picker. It renders the shared MCP picker from pickerPayload returned by linkedin_find_campaigns, google_ads_find_accounts, or google_ads_find_campaigns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pickerPayloadYesThe structuredContent object returned by a supported picker data tool.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior3/5

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

The annotations already declare readOnlyHint=true, so the read-only behavior is covered. The description adds that it renders a UI picker, but does not elaborate on side effects, auth requirements, or rate limits. It adds some context but not significant beyond 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?

Two succinct sentences, front-loaded with key information. No unnecessary words or repetition. Perfectly concise for the 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?

Given the single parameter with full schema description, existing annotations, and an output schema, the description is largely complete. It omits what the picker looks like, but that is likely covered by output schema. Could mention user interaction, but overall adequate.

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% with a clear description of pickerPayload. The tool description adds that the payload comes from specific data tools, which is helpful but not essential. Baseline is 3 due to high schema coverage, and the slight additional context does not warrant a higher score.

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 identifies the tool as a disambiguation picker and specifies it renders from pickerPayload returned by three named sibling tools. This distinguishes it from other render_* tools in the sibling list. However, the phrase 'shared MCP picker' is somewhat vague.

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 explicitly states the tool should be used after calling linkedin_find_campaigns, google_ads_find_accounts, or google_ads_find_campaigns to render their returned pickerPayload. This provides clear usage context, though it does not mention when not to use it or compare to alternatives.

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

resolve_context_follow_upAInspect

Marks one client setup question as answered or reviewed so future syncs do not keep surfacing the same unresolved context issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
followUpIdYesThe setup-question ID returned by get_context_setup_status or sync_context_workspace.
resolutionYesStructured notes or final answer for the setup question.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations correctly indicate a write operation (readOnlyHint=false) and non-destructive nature (destructiveHint=false). The description adds that the tool marks questions as answered or reviewed, which aligns with annotations. It also explains the consequence for future syncs, adding useful context.

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 front-loads the action and purpose. Every word contributes meaning, with no redundancy or unnecessary information.

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 mutation tool with an existing output schema, the description sufficiently explains the tool's effect and purpose. It covers the input, action, and outcome, leaving no critical gaps.

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 description essentially repeats the parameter descriptions from the schema without adding new meaning. Baseline score of 3 is appropriate since no additional semantic detail is provided.

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 verb 'marks' and the resource 'client setup question', and specifies the effect 'so future syncs do not keep surfacing the same unresolved context issue'. It distinguishes from siblings like get_context_setup_status and sync_context_workspace by focusing on resolving a single question.

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 the tool should be used after reviewing or answering a setup question to prevent repeated surfacing. However, it does not explicitly state when not to use it or mention alternatives, leaving some ambiguity.

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

save_context_onboardingAInspect

Saves the client setup questionnaire for the current user so future ad analysis can use saved advertiser business goals, markets, brands, account roles, and reporting preferences.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandsNoOptional brands, products, or business units covered by this workspace.
advertisersNoOptional advertiser-specific context profiles and account mappings. Use this when one user manages multiple advertisers or brands.
constraintsNoOptional constraints such as compliance rules, excluded markets, or budget guardrails.
targetMetricsNoOptional metric targets such as CPL, CAC, ROAS, or pipeline value.
primaryMarketsNoOptional core markets or regions.
accountMappingsNoOptional per-account role mappings applied to synced ad accounts.
primaryObjectiveYesPrimary business objective, for example lead generation, ecommerce revenue, or pipeline creation.
reportingPreferencesNoOptional reporting preferences such as default windows, currencies, or KPI emphasis.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior3/5

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

Annotations already indicate readOnlyHint=false (mutation) and destructiveHint=false (safe). The description adds that data is saved for 'future ad analysis' but does not disclose if existing data is overwritten, merged, or requires a certain state. With annotations covering safety, 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 a single, concise sentence that front-loads the action ('saves') and the what ('client setup questionnaire'). No redundant information; every word contributes to clarity.

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?

Given the tool's complexity (8 parameters, nested objects) and the presence of an output schema, the description adequately covers the core purpose. It specifies the user scope ('current user') and the purpose ('future ad analysis'). However, it does not mention error scenarios or the overwrite/merge behavior, though these are not critical for a save operation.

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 baseline is 3. The description summarizes the high-level categories (e.g., 'business goals, markets, brands') but does not add detailed semantics beyond what the parameter descriptions already provide in the schema.

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 saves a client setup questionnaire and lists the specific data types (goals, markets, brands, roles, preferences). It distinguishes itself from sibling read/crud tools like get_context_setup_status by specifying 'saves' and describing the data scope.

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 during client onboarding to persist data for future analysis, but it lacks explicit guidance on when to use this tool versus alternatives (e.g., resolve_context_follow_up, render_context_onboarding). No when-not or prerequisite information is provided.

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

save_reporting_groupsAInspect

Saves durable client-specific reporting groups for LinkedIn Ads or Google Ads. Use this to define business groupings like Partner, US, Prospect, or Nurture that reports should aggregate against.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupsYesReporting groups to add or update for this advertiser and platform.
platformYesAd platform the reporting groups apply to.
advertiserNameNoOptional advertiser name fallback when advertiserContextId is not supplied.
advertiserContextIdNoOptional saved advertiser ID. Use this when one user manages multiple advertisers.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior3/5

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

Annotations already indicate non-read-only and non-destructive. Description adds 'durable' implying persistence but does not disclose exact behavior like merge vs replace. Adequate given annotation coverage.

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 action, efficient with no redundancy. Every sentence adds value.

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?

Given output schema exists and full parameter documentation, description is nearly complete. Lacks explicit mention of update behavior (overwrite vs append), but 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 description coverage is 100%, so baseline is 3. Description adds examples (Partner, US) but no additional semantic detail beyond schema. Acceptable.

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?

Description clearly states the tool saves durable reporting groups for LinkedIn Ads or Google Ads, with a specific verb and resource. It distinguishes from sibling 'classify_campaign_reporting_group' by focusing on bulk definition rather than classification.

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 with examples like 'Partner, US, Prospect' for aggregation. However, it does not explicitly tell when not to use or mention alternatives, such as using 'classify_campaign_reporting_group' for single campaign classification.

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

submit_mcp_feedbackAInspect

Sends structured product feedback about the MCP server, auth flow, tool behavior, or MCP UI. Feedback is always logged and can optionally be forwarded to a configured webhook.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoOptional client host, such as claude, chatgpt, vscode, or other.
emailNoOptional contact email for follow-up.
ratingNoOptional 1-5 rating for the experience.
detailsNoOptional additional structured context for debugging.
messageYesClear description of the issue, idea, or feedback.
pageUrlNoOptional browser page or host context URL related to the feedback.
categoryYesFeedback category.
providerNoOptional provider area affected by the feedback.
toolNameNoOptional MCP tool name involved in the feedback.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Annotations indicate openWorldHint=true (potential external side effects). The description adds that feedback is always logged and can be forwarded to a webhook, providing behavioral insight beyond annotations. It does not contradict 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 is a single sentence with a compound predicate that conveys the main action and key details. It is front-loaded, concise, and contains 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?

Given the tool's simplicity and the presence of an output schema (not shown but indicated), the description covers the essential behavior: logging and optional webhook forwarding. It does not address error handling or response format, but the output schema likely handles return values, making the description sufficiently 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?

Schema description coverage is 100%, so the schema already documents all parameters. The description does not add extra meaning or context beyond the schema, meeting the baseline for high coverage but not exceeding it.

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: sending structured product feedback about the MCP server, auth flow, tool behavior, or MCP UI. It specifies that feedback is logged and optionally forwarded to a webhook, which distinguishes it from siblings that are focused on Google Ads and LinkedIn operations.

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 when to use the tool (for MCP-related feedback) but does not explicitly state when not to use it or suggest alternative tools. Given the sibling context, it is clear this is the only feedback tool, so usage guidance is adequate but not fully explicit.

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

sync_context_workspaceAInspect

Syncs accessible LinkedIn Ads and Google Ads accounts and campaigns into saved account data, creating setup questions when new campaigns appear or known campaigns materially change.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformsNoOptional subset of platforms to sync. Defaults to both connected providers.
linkedInAccountIdsNoOptional LinkedIn account IDs to limit sync to specific LinkedIn ad accounts.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
Behavior4/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), the description adds that it creates setup questions when new campaigns appear or known campaigns materially change, which is a valuable behavioral trait not captured in structured fields.

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: the first states the primary action, the second adds a key behavioral detail. No wasted words, front-loaded with the core purpose.

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 what is synced, from which platforms, and the side effect of creating setup questions. Given the complexity and presence of an output schema, this is largely complete, though it could mention prerequisites like auth status.

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% with both parameters described. The description does not add extra meaning beyond the schema; it aligns with the parameter names and descriptions but provides no additional context like format or restrictions.

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 syncs accessible LinkedIn Ads and Google Ads accounts and campaigns into saved account data, distinguishing it from the many read-only analysis tools in the sibling list.

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?

No explicit when-to-use or when-not-to-use guidance is provided. However, the description implies it is for setting up or refreshing context data, and the sibling tools are mostly read-only, so the usage is implied but not explicitly stated.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources