AdsAgent Skill Pack (docs)
OfficialAdsAgent Tri-Channel Plugin
Öffentliches Claude-Plugin + Skill-Paket für den gehosteten AdsAgent-Tri-Channel MCP: Meta, Google Ads und TikTok.
Aufteilung der Verteilung (wichtig):
Oberfläche | Was es ist | Dieses Repo? |
Claude-Plugin (selbst gehosteter Marktplatz) | Skills + root | Ja |
Anthropic Connectors Directory | Nur Auflistung des gehosteten MCP-Servers | Nein – separate Einreichung über |
Offizielles GitHub-Repo: github.com/adsagents/adsagent-ai-skills
Website: adsagent.md Offizieller Links-Hub: adsagent.md/connect Skill-Pack-Landingpage: adsagent.md/skills Support: support@adsagent.md
Aktuelle Vertragsversion: 0.7.64. Der Plugin-Slug ist adsagent (Marktplatzschlüssel adsagent).
Neue Meta-Verbindungen verwenden standardmäßig das v2-Produktprofil; alle drei gehosteten Endpunkte
handeln moderne MCP-2026-07-28-zustandslose Erkennung aus, während sie unterstützte
Legacy-Initialize-Clients beibehalten.
Die Versionshistorie befindet sich in CHANGELOG.md.
Das lokale Hilfsskript scripts/update_reminder.py vergleicht strikte semantische Versionen und speichert nur begrenzten Versions-/Zeitstempelzustand in $XDG_CACHE_HOME/adsagent-ai-skills/update-reminder-v1.json (oder ~/.cache/...). Ein Cache-Fehler blockiert niemals die MCP-Arbeit.
Was dies ist
Ein öffentliches Claude-Plugin-Marktplatzpaket: Verhaltens-Skills plus gehostete MCP-URLs über
.mcp.json.Ein Verhaltensleitfaden für Claude Code, Cursor, Codex und andere MCP-fähige Clients.
Eine Zuverlässigkeits- und Sicherheitsschicht, die Agenten sagt, wann sie wiederholen, wann sie warten und wann sie anhalten sollen.
Eine versionierte GitHub-Verteilung für das Onboarding von AdsAgent-Benutzern und die Verhaltenssteuerung von Agenten.
Ein Datenminimierungsvertrag für KI-Agenten, die AdsAgent nicht wie eine Rohdatenbank scannen sollten.
Related MCP server: synter-mcp-server
Was dies nicht ist
Nicht die Anthropic Connectors Directory MCP-Liste (diese wird separat auf den gehosteten Servern registriert).
Keine vollständige MCP-Tool-Referenz.
Kein SDK.
Kein lokaler Transport-Relay.
Keine Offenlegung von AdsAgent-Backend-Routen, Schemata, Datenbanktabellen oder internen Diagnosen.
Für Claude-Code-Plugin-Installationen stammt die OAuth-MCP-Einrichtung aus der .mcp.json dieses Repos.
Für Clients ohne Plugin-Unterstützung bleibt der AdsAgent-Dashboard-Installationsaufforderung
manueller Fallback:
AdsAgent dashboard -> Settings -> MCP Access -> Copy install promptVerwenden Sie diesen kopierten Prompt nur, wenn Sie das Claude-Plugin-Bundle nicht installieren. Dieses Repository lehrt das Agentenverhalten, nachdem die MCP-Verbindung besteht.
Enthaltene Skills
Skill | Zweck |
| AdsAgent-Anfragen an Setup-, Zuverlässigkeits-, Erkenntnis- oder Kopier-Workflows weiterleiten. |
| Verbindung über die AdsAgent-Dashboard-Installationsaufforderung herstellen und Meta-, Google Ads- oder TikTok-Bereitschaft überprüfen. |
| Benachrichtigungskanäle und Meta Ads Webhooks inspizieren und sicher konfigurieren. |
| Wiederholungen, Backoff, Sitzungsaktualisierung und Parallelitätslimits respektieren. |
| Agenteneigene geplante Aufgaben entwerfen, erstellen, überprüfen, aktualisieren, pausieren und löschen, ohne Erinnerungen mit Ausführungsnachweisen zu verwechseln. |
| Leistungs- und MMP-Fragen stellen, ohne den Server zu überlasten. |
| Meta-Anzeigen mit Bestätigungs- und Operator-Review-Sicherheit kopieren oder vergleichen. |
| Google Ads-Kunden-, MCC-, Search-, PMax- und Leistungsfragen über Google Ads MCP stellen. |
| TikTok-Leistung lesen und sicher native Kreativ-, Kampagnen- und Anzeigengruppen-Anhänge-Workflows vorbereiten. |
Progressive Offenlegung
Agent-Clients laden jede Skill-Beschreibung zur Erkennung, sollten aber nur den ausgewählten
SKILL.md-Body laden. Jeder Einstiegspunkt ist absichtlich klein und verlinkt
auf lokale Referenzdateien, die nur gelesen werden, wenn der ausgewählte Workflow diese
Details benötigt.
Die Dateien unter docs/ sind menschenlesbare Produkt- und Bedienerdokumentation.
Sie sind kein automatischer Agentenkontext und kein Teil der Skill-Referenzdurchlauf.
Agentenverhaltensverträge befinden sich unter skills/ und werden vom ausgewählten
SKILL.md aus erreicht.
Agentenausgabe-Vertrag
Agenten, die AdsAgent verwenden, sollten standardmäßig in Markdown antworten:
## Answer
One-sentence answer.
## Scope
- Date:
- Entity:
- Grouping:
- Attribution / channel:
## Results
| Metric | Value |
| --- | ---: |
## Notes
- Data freshness:
- Limits or missing fields:
- Next safe action:Geben Sie keine JSON, CSV, versteckte Diagnosen, Rohzeilen oder jedes zurückgegebene Feld in den Chat aus. Bereinigen Sie die Antwort zu bedienerorientierten Tabellen und kurzen Aufzählungspunkten. Wenn eine forensische Rohinspektion erforderlich ist, erstellen Sie eine Bedienerübergabe, anstatt Rohzeilen zur Agentenantwort zu machen.
Semi-Black-Box-Richtlinie
Dieses Repository dokumentiert absichtlich Ergebnisse und Agentenverhalten, nicht die vollständige interne Schnittstelle. Agenten sollten:
Den Live-AdsAgent-MCP-Leitfaden nach dem Verbinden lesen.
Verfügbare Tools über die authentifizierte MCP-Sitzung verwenden.
Vermeiden, versteckte Payload-Felder zu erraten.
Vermeiden, abgelehnte Anfragen zu untersuchen.
Bei Bediener-Review-Antworten anhalten und den AdsAgent-Bediener bitten, interne Diagnosen zu überprüfen.
Den kleinsten sicheren Datenplan vor dem Aufrufen verwenden.
Gruppierte Zusammenfassungen und bereinigte Aufschlüsselungen gegenüber Rohzeilen bevorzugen.
Der externe Agentenvertrag lautet: klare Fragen stellen, Limits respektieren, vor Schreibvorgängen bestätigen und die dashboardgestützte Einführung verwenden.
Offizielle Quelle und Rechte
Dieses Repository enthält nur das clientlesbare Verhaltenspaket. AdsAgent-Serverquellcode, Anmeldeinformationen, Schemata, Routing-Logik und Betriebsdiagnosen werden hier nicht verteilt.
Das Paket ist proprietär und alle Rechte sind vorbehalten von adsagents LLC. Öffentliches GitHub-Hosting ermöglicht es Personen, das Repository unter den GitHub-Nutzungsbedingungen anzusehen und zu forken, aber ein Fork oder eine lokale Kopie gewährt keine zusätzliche Lizenz für geistiges Eigentum, außer den eingeschränkten Anthropic-Claude-Plugin-Verzeichnis-Spiegelungsrechten in LICENSE.md. Es wird keine andere Erlaubnis erteilt, das Paket weiterzuverbreiten, zu spiegeln, zu verkaufen, unterzulizenzieren, modifizierte Versionen zu veröffentlichen, abgeleitete Werke zu erstellen, ein Konkurrenzprodukt aus dem Paket zu trainieren oder einen Fork als offiziell darzustellen. Siehe LICENSE.md und NOTICE.md.
Beispiel-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.Weitere Beispiele finden Sie in docs/examples.md.
Validierung
Führen Sie den lokalen Release-Vertrag und die Tests aus:
python scripts/validate_tri_channel_pack.py
python -m pytest -qDie Release-Validierung ist fail-closed gegenüber den drei festgeschriebenen Snapshots in
contracts/manifests/. Jeder Snapshot wird Byte-für-Byte von einem festgeschriebenen
Dienst-Artefakt kopiert und an seinen Kanal, Quellrevision, öffentlichen Artefaktpfad,
Metadaten und SHA-256 in contracts/manifests/provenance.json gebunden. CI führt
keine Live-Netzwerkanfragen durch.
python scripts/validate_public_tool_manifests.pyEin Bediener kann alle drei Snapshots deterministisch aktualisieren, nachdem sich das Dienst-Manifest geändert hat. Der Befehl lehnt nicht festgeschriebene, schmutzige, fehlende oder vertragsinkompatible Quellen ab und ruft niemals aus dem Netzwerk ab:
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.jsonAlle drei Quellen sind obligatorisch. Ein fehlendes referenziertes Tool, eine nicht nachgewiesene
erforderliche Fähigkeit oder ein Gate, ein veralteter Provenienz-Digest oder ein fehlender
Kanal führt zum Scheitern der Release-Validierung. --allow-missing existiert nur für explizite
lokale Diagnosen und wird nicht von Release-CI verwendet.
Installation
Dieses Repository wird als adsagent-Claude-Plugin (Skills + .mcp.json-MCP-URLs) ausgeliefert.
Der GitHub-Repository-Name bleibt adsagent-ai-skills.
Claude Code (empfohlen)
claude plugin marketplace add adsagents/adsagent-ai-skills
claude plugin install adsagent@adsagentAktualisieren einer vorhandenen benutzerweiten Installation:
claude plugin update --scope user adsagent@adsagentWenn claude plugin list doppelte lokale und benutzerweite Installationen anzeigt, behalten Sie den benutzerweiten Bereich:
claude plugin uninstall --scope local adsagent@adsagentStarten Sie eine neue Claude Code-Sitzung nach der Installation oder Aktualisierung.
Cloud / Cowork Vorinstallation (Einstellungs-Snippet)
{
"extraKnownMarketplaces": {
"adsagent": {
"source": {
"source": "github",
"repo": "adsagents/adsagent-ai-skills"
}
}
},
"enabledPlugins": ["adsagent@adsagent"]
}Nach der Installation authentifizieren Sie jeden MCP-Server, der in /mcp angezeigt wird (Meta, Google, TikTok).
Fügen Sie headers.Authorization nicht zu .mcp.json hinzu; OAuth muss der Authentifizierungspfad bleiben.
Migration von Legacy-Plugin-Slugs
Ältere Installationen verwendeten adsagent-ai-skills@adsagent-ai-skills oder
adsagent-meta-ai-skills@adsagent-meta-ai-skills. Der Marktplatz deklariert eine
Umbenennung zu adsagent@adsagent. Nach der Migration entfernen Sie Legacy-Duplikate:
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@adsagentAktualisieren:
codex plugin marketplace upgrade adsagentStarten Sie eine neue Codex-Sitzung nach der Installation oder Aktualisierung.
Git-Fallback und andere Agent-Skills-kompatible Clients
Die Skills in skills/ verwenden das Standard-Agent-Skills-Layout
(skills/<name>/SKILL.md mit YAML-Frontmatter). Clients, die nur Skills konsumieren
(ohne das Plugin-MCP-Bundle), können manuell klonen:
git clone https://github.com/adsagents/adsagent-ai-skills.git ~/.codex/skills/adsagent-ai-skillsDiese Clients benötigen immer noch eine separate MCP-Verbindung (Dashboard-Installationsaufforderung oder Connectors Directory). Der Plugin-Pfad ist das One-Step-Skills- + MCP-Bundle.
Öffnen Sie dann AdsAgent nur, wenn Sie Dashboard-OAuth/Token-Setup für Nicht-Plugin-Clients benötigen:
Settings -> MCP Access -> Copy install promptFügen Sie den kopierten Prompt in einen neuen Chat ein, wenn das Plugin-Bundle nicht verwendet wird. Der Prompt stellt gehostete HTTP-MCP-URLs bereit für:
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/mcpWichtige Laufzeitregeln
Nur gehostetes HTTP MCP.
Verwenden Sie
https://adsagent.md/mcp/v2für neue Meta-Verbindungen;/mcpist der Legacy-Fallback.Führen Sie AdsAgent MCP-Code nicht lokal aus.
Verwenden Sie kein lokales Relay, es sei denn, das AdsAgent-Dashboard gibt dies explizit an.
Richten Sie die Verbindung zwischenzuspeichern, wo der Client dies unterstützt.
Halten Sie die MCP-Gleichzeitigkeit pro Token begrenzt.
Beachten Sie
Retry-After.Parsen Sie
Retry-Afteraus dem HTTP-Header, demdatader obersten Ebene odererror.datavon JSON-RPC.Beachten Sie
mcp_concurrency_limitedmit Wartezeit plus Jitter.Beachten Sie
mcp_fanout_detected, indem Sie zum plattformübergreifenden Batch-Übersichts-Tool wechseln, anstatt die blockierte Einzelbereichsanfrage zu wiederholen.Wenn
agent_method_profile.profile_id=adsagent_agent_methods_v1und dessen konsistenter Lesevorgang im client-lokalen Katalog vorhanden ist, verwenden Sie eineinsights_query_consistent-Anfrage mitscopeoder geordnetenscopesfür alle drei Plattformen.Verwenden Sie ohne dieses Profil oder wenn dessen beworbener Lesevorgang nur im client-lokalen Katalog fehlt, den benannten nativen Fallback des Profils oder die dokumentierten serverseitigen Tools: Meta/TikTok
insights_query_batch_overview, Googlegoogle_ads_insights_overview_batch. Melden Sie keinen Server-Registrierungsfehler aufgrund eines lokalen Selektor-Fehlschlags.Fragen Sie zuerst aggregierte Daten ab und leiten Sie niemals plattformübergreifende Fähigkeitsparität aus einem gemeinsamen Toolnamen ab.
Melden Sie serverberechnete Summen aus der Antwort; summieren Sie nicht die aktuell sichtbaren Zeilen.
Vertrauen Sie Summen nur, wenn
meta.complete=true; fehlende Bereiche sind unbekannt, niemals null.Pollen Sie in die Warteschlange gestellte Aufgaben bis
terminal=trueund geben Sie den Artefakt-Link anstelle von rohem CSV zurück.Pollen Sie in die Warteschlange gestellte Arbeiten direkt mit
tasks_get_status(task_ref=...), wenn der Server direkte Aufgabenreferenzen bewirbt.QuickCreate-Bestätigungstoken sind Einmal-Token und verfallen nach 15 Minuten. Überprüfen Sie
expires_at; nachconfirm_token_invalidbereiten Sie erneut vor, zeigen Sie die neue Zusammenfassung an und holen Sie eine frische explizite Zustimmung ein.Pollen Sie Meta-Erstellungsaufgaben mit
tasks_get_status(task_ref=..., response_mode=compact). Beino_create_permissionleiten Sie den Benutzer zu/dashboard/assets/fb-users; ändern Sie niemals Kundenberechtigungen oder wiederholen Sie die fehlgeschlagene Erstellung automatisch.Vermeiden Sie Rohzeilen-Lesevorgänge in normalen Benutzerkonversationen.
Verwenden Sie Markdown-Tabellen für Zahlen.
Bestätigen Sie vor der Anzeigenerstellung oder -änderung.
Verwenden Sie
grouped_planfür mehrere unterschiedliche Quell-Anzeigen; emulieren Sie dies niemals durch eine clientseitige Serie von Kopiermutationen.Stoppen Sie bei Operator-Review-Fehlern.
Wenn ein Fehler
support_refenthält, bewahren und zeigen Sie ihn wörtlich für den Support an. Es handelt sich nicht um eine Autorisierung; erfinden, modifizieren, aufzählen oder ersetzen Sie ihn niemals durch Token, Anfragekörper oder Protokolle.
Links
Offizielle Website: https://adsagent.md
Offizielles Repository: https://github.com/adsagents/adsagent-ai-skills
Support: support@adsagent.md
Öffentlicher Onboarding-Pfad: https://adsagent.md/docs/mcp-onboarding
Lizenz
Alle Rechte vorbehalten. Siehe LICENSE.md.
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.
AI 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.
60+ Meta Ads tools for AI agents: audits, campaign management, audiences and CAPI tracking.
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.-
- AlicenseAqualityDmaintenanceMCP server for AI agents to manage ad campaigns across Google, Meta, LinkedIn, Microsoft, Reddit, TikTok, and more2198 npm17MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to create, manage, and automate Meta (Facebook/Instagram) ads campaigns via the Marketing API, with safe defaults and AI-generated creative.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to read Meta Ads performance with breakdowns and diagnostics and to create, update, or pause campaigns, ad sets, ads, creatives, audiences, and catalogs, with every write requiring explicit user approval. Runs as a hosted, OAuth-authenticated remote server with no local install.MIT