AdsAgent Skill Pack (docs)
OfficialA docs-only stdio MCP server for the AdsAgent Skill Pack that lists and reads public skill documentation and returns hosted MCP URLs; it does not perform ads operations.
List skills:
list_skillsreturns a catalog of public AdsAgent skills (id, YAML frontmatter description, first Markdown heading) read from localskills/.Read a skill:
get_skillreturns one skill's fullSKILL.mdplus optional skill-local reference.mdfiles for progressive disclosure.Get hosted MCP URLs:
get_hosted_mcp_urlsreturns the real Meta, Google Ads, and TikTok hosted MCP endpoints frommcp.json(OAuth required; this server doesn't proxy or implement ads tools).Check pack identity/version:
get_pack_readmereturns the pack VERSION and a README identity excerpt confirming what the pack is and is not.
It does not connect to Meta, Google Ads, or TikTok, run campaigns, accept tokens, or expose any ads backend functionality.
Provides tools for querying Google Ads customers, MCC, Search, PMax, and performance data via the Google Ads API, enabling insights and operational workflows.
Allows managing Meta advertising through tools for insights, ad copy, campaign creation, and performance analysis across connected Meta products.
Allows reading TikTok performance metrics and safely preparing native creative, campaign, and ad-group append workflows.
AdsAgent Tri-Channel Plugin
MCP here means Model Context Protocol (the Claude/Cursor tool-calling standard). It does not mean Multi-Channel Platform.
Public Claude plugin + skill pack for AdsAgent tri-channel hosted MCP: Meta, Google Ads, and TikTok.
Directory SEO one-liner: AdsAgent is a hosted Meta Ads MCP (Model Context Protocol) plus Google Ads & TikTok MCP — connect Claude/Cursor via adsagent.md/connect.
Install:
Claude plugin:
claude plugin marketplace add adsagents/adsagent-ai-skillsthenclaude plugin install adsagent@adsagentCursor plugin: install AdsAgent from Cursor Marketplace (this repo's
.cursor-plugin/+mcp.json)Dashboard fallback: AdsAgent dashboard -> Settings -> MCP Access -> Copy install prompt (clients without plugin support)
Distribution split (important):
Surface | What it is | This repo? |
Claude plugin (self-hosted marketplace) | Skills + root | Yes |
Cursor plugin (marketplace manifest) | Skills + | Yes |
Anthropic Connectors Directory | Hosted MCP server listing only | No — separate submission on |
Official GitHub repo: github.com/adsagents/adsagent-ai-skills
Website: adsagent.md
Official links hub: adsagent.md/connect
Skill pack landing page: adsagent.md/skills
Support: support@adsagent.md
Also listed on Product Hunt, Cursor Directory, and MCP Market.
Current contract version: 0.7.69. The plugin slug is adsagent (marketplace key adsagent).
New Meta connections default to the v2 product profile; all three hosted endpoints
negotiate modern MCP 2026-07-28 stateless discovery while retaining supported
legacy initialize clients.
Version history lives in CHANGELOG.md.
The local helper scripts/update_reminder.py compares strict semantic versions and stores only bounded version/timestamp state in $XDG_CACHE_HOME/adsagent-ai-skills/update-reminder-v1.json (or ~/.cache/...). Cache failure never blocks MCP work.
What This Is
A public Claude plugin marketplace package: behavior skills plus hosted MCP URLs via
.mcp.json.A behavior guide for Claude Code, Cursor, Codex, and other MCP-aware clients.
A reliability and safety layer that tells agents when to retry, when to wait, and when to stop.
A versioned GitHub distribution for AdsAgent user onboarding and agent behavior guidance.
A data-minimization contract for AI agents that should not scan AdsAgent like a raw database.
Optionally, a Glama-deployable AdsAgent Skill Pack (docs) stdio MCP that lists and reads public
skills/Markdown. See docs/glama-release.md.
Related MCP server: synter-mcp-server
What This Is Not
Not the hosted AdsAgent Meta, Google Ads, or TikTok MCP backend. The optional Docker/Glama image only serves this repository's public docs; ads tools remain on the HTTP URLs in
mcp.jsonand require AdsAgent OAuth.Not the Anthropic Connectors Directory MCP listing (that is registered separately on the hosted servers).
Not a complete MCP tool reference.
Not an SDK.
Not a local transport relay for ads APIs.
Not a disclosure of AdsAgent backend routes, schemas, database tables, or internal diagnostics.
For Claude Code plugin installs, OAuth MCP setup comes from this repo's .mcp.json.
For clients without plugin support, the AdsAgent dashboard install prompt remains
the manual fallback:
AdsAgent dashboard -> Settings -> MCP Access -> Copy install promptUse that copied prompt only when you are not installing the Claude plugin bundle. This repository teaches agent behavior after the MCP connection exists.
Included Skills
Skill | Purpose |
| Route AdsAgent requests to setup, reliability, insights, or copy workflows. |
| Connect through the AdsAgent dashboard install prompt and verify Meta, Google Ads, or TikTok readiness. |
| Inspect and safely configure notification channels and Meta Ads Webhooks. |
| Respect retry, backoff, session refresh, and concurrency limits. |
| Design, create, verify, update, pause, and delete agent-owned scheduled tasks without confusing reminders with execution proof. |
| Ask performance and MMP questions without overloading the server. |
| Copy or compare Meta ads with confirmation and operator-review safety. |
| Ask Google Ads customer, MCC, Search, PMax, and performance questions through Google Ads MCP. |
| Read TikTok performance and safely prepare native creative, campaign, and ad-group append workflows. |
Progressive Disclosure
Agent clients load every Skill description for discovery, but should load only
the selected SKILL.md body. Each entrypoint is intentionally small and links
to local reference files that are read only when the selected workflow needs
those details.
The files under docs/ are human-facing product and operator documentation.
They are not automatic agent context and are not part of Skill reference
traversal. Agent behavior contracts live under skills/ and are reached from
the selected SKILL.md.
Agent Output Contract
Agents using AdsAgent should answer in Markdown by default:
## Answer
One-sentence answer.
## Scope
- Date:
- Entity:
- Grouping:
- Attribution / channel:
## Results
| Metric | Value |
| --- | ---: |
## Notes
- Data freshness:
- Limits or missing fields:
- Next safe action:Do not dump JSON, CSV, hidden diagnostics, raw rows, or every returned field into chat. Clean the response into operator-facing tables and short bullets. If forensic raw inspection is needed, create an operator handoff instead of making raw rows the agent answer.
Semi-Black-Box Policy
This repository intentionally documents outcomes and agent behavior, not the complete internal interface. Agents should:
Read the live AdsAgent MCP guide after connecting.
Use available tools through the authenticated MCP session.
Avoid guessing hidden payload fields.
Avoid probing rejected requests.
Stop on operator-review responses and ask the AdsAgent operator to inspect internal diagnostics.
Use the smallest safe data plan before making calls.
Prefer grouped summaries and cleaned breakdowns over raw rows.
The external agent contract is: ask clear questions, respect limits, confirm before writes, and use dashboard-provided onboarding.
Official Source And Rights
This repository contains only the client-readable behavior pack. AdsAgent server source, credentials, schemas, routing logic, and operational diagnostics are not distributed here.
This skill pack is licensed under the MIT License. See LICENSE and NOTICE.md. Official releases come from this repository; a fork or modified package must not imply endorsement, affiliation, or support by adsagents LLC.
Example Prompts
Use AdsAgent to list my connected Meta products, Google Ads customers, or TikTok advertisers, then ask which scope's today data I want to inspect.For Google Ads, inspect agent_method_profile, pick an enabled non-manager customer, and use one cached insights_query_consistent request when the profile is advertised.For TikTok, inspect agent_method_profile and use one insights_query_consistent scopes request when advertised; otherwise use the native batch overview fallback.Prepare a copy of this winning Meta ad into the target account, but ask me for confirmation before creating anything.Group these distinct Meta Ads by language into the requested Campaign and AdSet layout. Prepare one grouped_plan, show every settings_source_ad_id and geography override, and wait for my approval before confirming once.More examples are in docs/examples.md.
Validation
Run the local release contract and tests:
python scripts/validate_tri_channel_pack.py
python -m pytest -qRelease validation is fail-closed against the three committed snapshots in
contracts/manifests/. Each snapshot is copied byte-for-byte from a committed
service artifact and locked to its channel, source revision, public artifact
path, metadata, and SHA-256 in contracts/manifests/provenance.json. CI does
not make live network requests.
python scripts/validate_public_tool_manifests.pyAn operator can deterministically update all three snapshots after the service manifest changes. The command rejects uncommitted, dirty, missing, or contract-incompatible sources and never fetches from the network:
python scripts/sync_public_tool_manifests.py \
--source meta=/path/to/meta-tools.json \
--source google=/path/to/google-tools.json \
--source tiktok=/path/to/tiktok-tools.jsonAll three sources are mandatory. A missing referenced tool, an unproven
required capability or gate, a stale provenance digest, or an absent channel
fails release validation. --allow-missing exists only for explicit local
diagnostics and is not used by release CI.
Installation
This repo ships as the adsagent Claude plugin (skills + .mcp.json MCP URLs).
The GitHub repository name stays adsagent-ai-skills.
Claude Code (recommended)
claude plugin marketplace add adsagents/adsagent-ai-skills
claude plugin install adsagent@adsagentUpdate an existing user-scope install:
claude plugin update --scope user adsagent@adsagentIf claude plugin list shows duplicate local and user installs, keep user scope:
claude plugin uninstall --scope local adsagent@adsagentStart a fresh Claude Code session after installing or updating.
Cloud / Cowork preinstall (settings snippet)
{
"extraKnownMarketplaces": {
"adsagent": {
"source": {
"source": "github",
"repo": "adsagents/adsagent-ai-skills"
}
}
},
"enabledPlugins": ["adsagent@adsagent"]
}After install, authenticate each MCP server shown in /mcp (Meta, Google, TikTok).
Do not add headers.Authorization to .mcp.json; OAuth must remain the auth path.
Migrating from legacy plugin slugs
Older installs used adsagent-ai-skills@adsagent-ai-skills or
adsagent-meta-ai-skills@adsagent-meta-ai-skills. The marketplace declares a
rename to adsagent@adsagent. After migrating, remove legacy duplicates:
claude plugin uninstall --scope user adsagent-ai-skills@adsagent-ai-skills
claude plugin uninstall --scope user adsagent-meta-ai-skills@adsagent-meta-ai-skillsCodex CLI
codex plugin marketplace add adsagents/adsagent-ai-skills
codex plugin add adsagent@adsagentRefresh:
codex plugin marketplace upgrade adsagentStart a fresh Codex session after installing or upgrading.
Git fallback and other Agent-Skills-compatible clients
The skills in skills/ use the standard Agent Skills layout
(skills/<name>/SKILL.md with YAML frontmatter). Clients that only consume skills
(without the plugin MCP bundle) can clone manually:
git clone https://github.com/adsagents/adsagent-ai-skills.git ~/.codex/skills/adsagent-ai-skillsThose clients still need a separate MCP connection (dashboard install prompt or Connectors Directory). The plugin path is the one-step skills + MCP bundle.
Then open AdsAgent only if you need dashboard OAuth/token setup for non-plugin clients:
Settings -> MCP Access -> Copy install promptPaste the copied prompt into a fresh chat when the plugin bundle is not used. The prompt provides hosted HTTP MCP URLs for:
Meta default: https://adsagent.md/mcp/v2
Meta legacy fallback: https://adsagent.md/mcp
Google Ads: https://google.adsagent.md/mcp
TikTok: https://tiktok.adsagent.md/mcpImportant Runtime Rules
Hosted HTTP MCP only for ads work.
Use
https://adsagent.md/mcp/v2for new Meta connections;/mcpis the legacy fallback.Do not run or relay the hosted AdsAgent ads MCP locally. The optional
skill_pack_mcpimage is a docs-only reader of this repository; it is not an ads backend.Do not use a local relay unless the AdsAgent dashboard explicitly says to.
Cache connection setup where the client supports it.
Keep per-token MCP concurrency bounded.
Respect
Retry-After.Parse
Retry-Afterfrom the HTTP header, top-leveldata, or JSON-RPCerror.data.Honor
mcp_concurrency_limitedwith wait plus jitter.Honor
mcp_fanout_detectedby switching to the platform batch overview tool instead of retrying the blocked single-scope request.When
agent_method_profile.profile_id=adsagent_agent_methods_v1and its consistent read is present in the client-local catalog, use oneinsights_query_consistentrequest withscopeor orderedscopesfor all three platforms.Without that profile, or when its advertised read is missing only from the client-local catalog, use the profile's named native fallback or the documented server-side tools: Meta/TikTok
insights_query_batch_overview, Googlegoogle_ads_insights_overview_batch. Do not report a server registration failure from a local selector miss.Query aggregated data first and never infer cross-platform capability parity from a shared tool name.
Report server-computed totals from the response; do not sum currently visible rows.
Trust totals only when
meta.complete=true; missing scopes are unknown, never zero.Poll queued tasks to
terminal=trueand return the artifact link instead of raw CSV.Poll queued work directly with
tasks_get_status(task_ref=...)when the server advertises direct task refs.QuickCreate confirm tokens are single-use and expire after 15 minutes. Check
expires_at; afterconfirm_token_invalid, prepare again, show the new summary, and obtain fresh explicit approval.Poll Meta creation tasks with
tasks_get_status(task_ref=..., response_mode=compact). Onno_create_permission, direct the user to/dashboard/assets/fb-users; never change customer permissions or replay the failed creation automatically.Avoid raw-row reads in normal user conversations.
Use Markdown tables for numbers.
Confirm before ad creation or modification.
Use
grouped_planfor multiple distinct source Ads; never emulate it through a client-side series of copy mutations.Stop on operator-review errors.
When an error includes
support_ref, preserve and show it verbatim for support. It is not authorization; never invent, modify, enumerate, or replace it with tokens, request bodies, or logs.
Links
Official website: https://adsagent.md
Official repository: https://github.com/adsagents/adsagent-ai-skills
Support: support@adsagent.md
Public onboarding path: https://adsagent.md/docs/mcp-onboarding
Glama / Docker docs MCP
The root Dockerfile builds AdsAgent Skill Pack (docs) — a stdio MCP that
exposes list_skills, get_skill, get_hosted_mcp_urls, and get_pack_readme.
Glama Build → Make Release scores that docs server. It does not replace
https://adsagent.md/mcp/v2, https://google.adsagent.md/mcp, or
https://tiktok.adsagent.md/mcp. Details: docs/glama-release.md.
License
MIT. See LICENSE.
Available Tools
4 toolsget_hosted_mcp_urlsA
Return AdsAgent hosted HTTP MCP URLs from this repo's mcp.json.
Use this when a client needs the real Meta, Google Ads, or TikTok ads MCP endpoints. Those services require AdsAgent OAuth on the hosted URLs.
This docs server does not implement ads tools, does not accept tokens, and does not proxy those endpoints. Copy the https URLs into an MCP client and authenticate against AdsAgent hosted services.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the source (mcp.json), the OAuth requirement for hosted URLs, and the server's limitations (no implementation, no token acceptance, no proxying). This sets accurate expectations for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, with the primary action front-loaded in the first sentence. Each sentence contributes either usage guidance or critical limitations with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema and no annotations, the description is complete: it explains what is returned, when to use it, and what it does not do. An agent can safely and correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema already makes this clear with 100% coverage. The description adds no parameter details, which is fine; a baseline of 4 is appropriate for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Return AdsAgent hosted HTTP MCP URLs from this repo's mcp.json.' This clearly states what the tool does and distinguishes it from sibling tools that operate on skills and readmes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Use this when a client needs the real Meta, Google Ads, or TikTok ads MCP endpoints,' and then clarifies what the docs server does not do (implement ads tools, accept tokens, proxy endpoints). This provides both a when-to-use and a when-not context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pack_readmeA
Return this skill-pack VERSION and a README.md identity excerpt.
Use this to confirm pack version and the public 'what this is / is not' wording, including that a Glama or Docker image of this repo is not the hosted AdsAgent ads backend.
The excerpt stops before the per-skill table. It does not include secrets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It usefully states what is returned (VERSION and README identity excerpt), what is excluded (per-skill table, secrets), and the identity nuance about the repo not being the hosted AdsAgent ads backend. It does not describe output format or error conditions, but for a zero-parameter read tool the disclosed boundaries are strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the main action is stated in the first sentence, usage guidance follows, and boundary conditions are summarized in two short sentences. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema and no annotations, the description fully covers what the agent needs: what the tool returns, its intended use, and its explicit exclusions. The nuance about the Glama/Docker image not being the hosted AdsAgent backend also prevents a plausible misunderstanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so parameter explanation is unnecessary. The description instead focuses on the meaningful output semantics, which is the right trade-off for an argument-less tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Return this skill-pack VERSION and a README.md identity excerpt.' This clearly distinguishes the tool from siblings like get_skill, get_hosted_mcp_urls, and list_skills by describing a unique output. The additional clarification about 'what this is / is not' wording further pins down its exact purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to confirm pack version and the public wording,' giving a clear and direct usage context. It does not, however, name alternative sibling tools or state when not to use them, so it falls short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_skillA
Return one skill's SKILL.md and optional named reference files.
Use this after list_skills when you need the full public instructions for a single skill. Pass references only for Markdown files that live in that skill folder (progressive-disclosure contracts).
Rejects unknown skill ids and any path that leaves the skill directory. This is documentation retrieval, not a live ads API.
| Name | Required | Description | Default |
|---|---|---|---|
| skill_id | Yes | Skill folder name under skills/, for example meta-insights or adsagent-router. | |
| references | No | Optional skill-local .md filenames to include with SKILL.md, such as query-contract.md. Paths must stay inside that skill folder. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses validation behavior ('Rejects unknown skill ids and any path that leaves the skill directory'), the read-only nature ('documentation retrieval, not a live ads API'), and the progressive-disclosure contract for references. It doesn't cover errors for nonexistent reference files, auth, or rate limits, but for a simple retrieval tool these are not critical omissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with zero filler. The core purpose is front-loaded in the first sentence, usage guidance follows in the second, and the final sentence provides validation and identity context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only tool with no output schema and no annotations, the description covers the key context: what is returned, when to use it, the progressive-disclosure reference convention, and validation rules. It does not specify the exact response structure or behavior when an in-folder reference file is missing, but the tool is simple enough that the description is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already thoroughly documents both skill_id and references, including examples and path constraints. The description reinforces these semantics with 'progressive-disclosure contracts' and the rejection of path escape, but it does not add substantial new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Return one skill's SKILL.md and optional named reference files.' It is clearly distinguished from list_skills (which lists skills) by saying to use it after list_skills for the full public instructions of a single skill, and from the live ads API identity statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this after list_skills when you need the full public instructions for a single skill,' giving a clear when. It also instructs when to pass references (only for Markdown files in that skill folder) and that invalid ids/paths are rejected. However, it does not explicitly compare to the sibling tools get_pack_readme or get_hosted_mcp_urls, so it falls short of a full when-not/alternatives roadmap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_skillsA
List public AdsAgent skills shipped in this repository.
Use this first when you need a catalog of documentation skills (router, setup, reliability, notifications, scheduled tasks, Meta, Google Ads, TikTok) before opening a specific SKILL.md.
Returns each skill id, YAML frontmatter description, and first Markdown heading. This tool only reads local files under skills/. It does not connect to Meta, Google Ads, or TikTok and does not run campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well. It discloses that the tool 'only reads local files under skills/, does not connect to Meta, Google Ads, or TikTok and does not run campaigns,' which prevents the agent from expecting external side effects. It also describes the return contents, giving useful behavioral expectations beyond a simple 'list' label.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, front-loading the main action and resource. Each sentence earns its place: what it returns, when to use it, and what it does not do. No redundant or vague language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only listing tool with no output schema, the description is complete. It names the domain of skills, gives the intended first-use pattern, describes return fields, and explicitly scopes its behavior. An agent has everything needed to invoke it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to document. The description still usefully explains the output shape, which is more relevant for this tool. A baseline of 4 is appropriate since parameter documentation is not needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List public AdsAgent skills shipped in this repository.' It clearly distinguishes this catalog-listing tool from siblings like get_skill, which opens a specific SKILL.md, and from get_hosted_mcp_urls/get_pack_readme. The scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this first when you need a catalog of documentation skills... before opening a specific SKILL.md,' providing a clear when-to-use directive. It does not spell out when-not-to-use or name alternatives, but the context is strong enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.7.67- First observed
get_hosted_mcp_urls - First observed
get_pack_readme - First observed
get_skill - First observed
list_skills
TDQS
Scored across 4 tools
Each tool has a clear, distinct responsibility: list_skills catalogs available skills, get_skill retrieves a specific skill's documentation, get_pack_readme returns pack identity/version, and get_hosted_mcp_urls exposes hosted endpoint URLs. There is no meaningful overlap or ambiguity between them.
Tool names follow a predictable verb_noun pattern: get_* for single-item retrieval and list_skills for collection retrieval. The naming is consistent, descriptive, and easy to infer.
Four tools is well-scoped for a documentation/skill-pack server. Each tool earns its place and covers a necessary retrieval function without unnecessary bloat.
The tool surface covers the full documentation workflow: discover available skills, fetch individual skill details, confirm pack identity/version, and retrieve hosted MCP URLs. There are no obvious dead ends for the stated documentation-only purpose.
Maintenance
Related MCP Connectors
Run Google, Meta, Microsoft, TikTok and LinkedIn Ads from Claude or ChatGPT. Writes need approval.
Google, Meta, ChatGPT, TikTok and LinkedIn Ads for AI agents. Every write needs your approval.
1AI agents that manage paid ads on Meta, LinkedIn, and Google Ads from any MCP client.
Run Google Ads and Meta Ads from ChatGPT or Claude: audit wasted spend, create and manage campaigns.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceConnects AI assistants to Facebook's Ads API to enable natural language queries for campaign data, insights, and performance metrics. It allows users to manage ad accounts and retrieve detailed analytics like impressions, clicks, and spend through MCP-compatible interfaces.-
- AlicenseAqualityCmaintenanceMCP server for AI agents to manage ad campaigns across Google, Meta, LinkedIn, Microsoft, Reddit, TikTok, and more21259 npm17MIT
- AlicenseBqualityAmaintenance50 tools for Meta Ads campaign management, creative analysis, audience building, and conversion tracking, accessible to any MCP-compatible AI agent.69236 npm13MIT
- FlicenseNot gradedqualityCmaintenanceAutomates marketing workflows across Google Ads, Meta Ads, and GA4, enabling content generation, scheduling, and analytics via a multi-agent pipeline.-