AdsAgent Skill Pack (docs)
OfficialPlugin de tres canales de AdsAgent
Plugin público de Claude + paquete de habilidades para MCP alojado en tres canales de AdsAgent: Meta, Google Ads y TikTok.
División de distribución (importante):
Superficie | Qué es | ¿Este repositorio? |
Plugin de Claude (marketplace auto-alojado) | Habilidades + | Sí |
Directorio de Conectores de Anthropic | Solo listado de servidores MCP alojados | No — envío separado en servicios de |
Repositorio oficial de GitHub: github.com/adsagents/adsagent-ai-skills
Sitio web: adsagent.md
Centro de enlaces oficiales: adsagent.md/connect
Página de inicio del paquete de habilidades: adsagent.md/skills
Soporte: support@adsagent.md
Versión actual del contrato: 0.7.64. El slug del plugin es adsagent (clave de marketplace adsagent).
Las nuevas conexiones de Meta utilizan por defecto el perfil de producto v2; los tres puntos finales alojados
negocian detección sin estado MCP moderna 2026-07-28 manteniendo clientes de inicialización heredados compatibles.
El historial de versiones se encuentra en CHANGELOG.md.
El script auxiliar local scripts/update_reminder.py compara versiones semánticas estrictas y almacena solo estado de versión/marca de tiempo limitado en $XDG_CACHE_HOME/adsagent-ai-skills/update-reminder-v1.json (o ~/.cache/...). Un fallo de caché nunca bloquea el trabajo de MCP.
Qué es esto
Un paquete de marketplace público de plugin de Claude: habilidades de comportamiento más URLs MCP alojadas a través de
.mcp.json.Una guía de comportamiento para Claude Code, Cursor, Codex y otros clientes compatibles con MCP.
Una capa de fiabilidad y seguridad que indica a los agentes cuándo reintentar, cuándo esperar y cuándo detenerse.
Una distribución versionada en GitHub para la incorporación de usuarios de AdsAgent y la guía de comportamiento de agentes.
Un contrato de minimización de datos para agentes de IA que no deben escanear AdsAgent como una base de datos en bruto.
Related MCP server: synter-mcp-server
Qué no es esto
No es la lista de MCP del Directorio de Conectores de Anthropic (eso está registrado por separado en los servidores alojados).
No es una referencia completa de herramientas MCP.
No es un SDK.
No es un relé de transporte local.
No es una divulgación de rutas, esquemas, tablas de bases de datos o diagnósticos internos del backend de AdsAgent.
Para instalaciones de plugins de Claude Code, la configuración de MCP OAuth proviene del .mcp.json de este repositorio.
Para clientes sin soporte de plugin, el mensaje de instalación del panel de AdsAgent sigue siendo
la alternativa manual:
AdsAgent dashboard -> Settings -> MCP Access -> Copy install promptUsa ese prompt copiado solo cuando no estés instalando el paquete de plugin de Claude. Este repositorio enseña el comportamiento del agente después de que exista la conexión MCP.
Habilidades incluidas
Habilidad | Propósito |
| Enrutar solicitudes de AdsAgent a flujos de trabajo de configuración, fiabilidad, información o copia. |
| Conectar a través del mensaje de instalación del panel de AdsAgent y verificar la preparación de Meta, Google Ads o TikTok. |
| Inspeccionar y configurar de forma segura los canales de notificación y los Webhooks de Meta Ads. |
| Respetar los límites de reintento, retroceso, actualización de sesión y concurrencia. |
| Diseñar, crear, verificar, actualizar, pausar y eliminar tareas programadas propiedad del agente sin confundir recordatorios con prueba de ejecución. |
| Hacer preguntas de rendimiento y MMP sin sobrecargar el servidor. |
| Copiar o comparar anuncios de Meta con confirmación y seguridad de revisión por parte del operador. |
| Hacer preguntas sobre clientes, MCC, Search, PMax y rendimiento de Google Ads a través de MCP de Google Ads. |
| Leer el rendimiento de TikTok y preparar de forma segura flujos de trabajo de añadido nativo de creatividades, campañas y grupos de anuncios. |
Divulgación progresiva
Los clientes agente cargan cada descripción de Habilidad para su descubrimiento, pero deben cargar solo
el cuerpo del SKILL.md seleccionado. Cada punto de entrada es intencionalmente pequeño y enlaza
a archivos de referencia locales que se leen solo cuando el flujo de trabajo seleccionado necesita
esos detalles.
Los archivos bajo docs/ son documentación de producto y operativa dirigida a humanos.
No son contexto automático del agente y no forman parte del recorrido de referencia de Habilidades.
Los contratos de comportamiento del agente se encuentran bajo skills/ y se accede a ellos desde
el SKILL.md seleccionado.
Contrato de salida del agente
Los agentes que usan AdsAgent deben responder en Markdown por defecto:
## Answer
One-sentence answer.
## Scope
- Date:
- Entity:
- Grouping:
- Attribution / channel:
## Results
| Metric | Value |
| --- | ---: |
## Notes
- Data freshness:
- Limits or missing fields:
- Next safe action:No vuelques JSON, CSV, diagnósticos ocultos, filas en bruto o cada campo devuelto en el chat. Limpia la respuesta en tablas orientadas al operador y viñetas cortas. Si se necesita una inspección forense en bruto, crea una transferencia al operador en lugar de hacer que las filas en bruto sean la respuesta del agente.
Política de caja seminegra
Este repositorio documenta intencionalmente resultados y comportamiento del agente, no la interfaz interna completa. Los agentes deben:
Leer la guía MCP en vivo de AdsAgent después de conectarse.
Usar las herramientas disponibles a través de la sesión MCP autenticada.
Evitar adivinar campos de carga útil ocultos.
Evitar sondear solicitudes rechazadas.
Detenerse en respuestas de revisión del operador y pedir al operador de AdsAgent que inspeccione los diagnósticos internos.
Usar el plan de datos seguro más pequeño antes de hacer llamadas.
Preferir resúmenes agrupados y desgloses limpios sobre filas en bruto.
El contrato del agente externo es: hacer preguntas claras, respetar los límites, confirmar antes de escribir y usar la incorporación proporcionada por el panel.
Fuente oficial y derechos
Este repositorio contiene solo el paquete de comportamiento legible por el cliente. El código fuente del servidor de AdsAgent, credenciales, esquemas, lógica de enrutamiento y diagnósticos operativos no se distribuyen aquí.
El paquete es propietario y todos los derechos están reservados por adsagents LLC. El alojamiento público en GitHub permite a las personas ver y bifurcar el repositorio bajo los Términos de Servicio de GitHub, pero una bifurcación o copia local no otorga ninguna licencia de propiedad intelectual adicional, excepto los derechos limitados de duplicación en el directorio de plugins de Anthropic Claude en LICENSE.md. No se concede ningún otro permiso para redistribuir, duplicar, vender, sublicenciar, publicar versiones modificadas, crear trabajos derivados, entrenar un producto competidor a partir del paquete o representar una bifurcación como oficial. Consulta LICENSE.md y NOTICE.md.
Prompts de ejemplo
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.Hay más ejemplos en docs/examples.md.
Validación
Ejecuta el contrato de lanzamiento local y las pruebas:
python scripts/validate_tri_channel_pack.py
python -m pytest -qLa validación de lanzamiento falla de forma cerrada contra las tres instantáneas confirmadas en
contracts/manifests/. Cada instantánea se copia byte por byte de un artefacto de servicio confirmado
y se bloquea a su canal, revisión fuente, ruta de artefacto público,
metadatos y SHA-256 en contracts/manifests/provenance.json. CI no
realiza solicitudes de red en vivo.
python scripts/validate_public_tool_manifests.pyUn operador puede actualizar de forma determinista las tres instantáneas después de que el manifiesto del servicio cambie. El comando rechaza fuentes no confirmadas, sucias, faltantes o incompatibles con el contrato y nunca obtiene de la red:
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.jsonLas tres fuentes son obligatorias. Una herramienta referenciada faltante, una capacidad o puerta requerida no probada,
un resumen de procedencia obsoleto o un canal ausente
hace fallar la validación de lanzamiento. --allow-missing existe solo para diagnósticos
locales explícitos y no es utilizado por CI de lanzamiento.
Instalación
Este repositorio se distribuye como el plugin de Claude adsagent (habilidades + URLs MCP de .mcp.json).
El nombre del repositorio de GitHub permanece adsagent-ai-skills.
Claude Code (recomendado)
claude plugin marketplace add adsagents/adsagent-ai-skills
claude plugin install adsagent@adsagentActualizar una instalación existente en el ámbito de usuario:
claude plugin update --scope user adsagent@adsagentSi claude plugin list muestra instalaciones locales y de usuario duplicadas, mantén el ámbito de usuario:
claude plugin uninstall --scope local adsagent@adsagentInicia una sesión nueva de Claude Code después de instalar o actualizar.
Preinstalación en la nube / Cowork (fragmento de configuración)
{
"extraKnownMarketplaces": {
"adsagent": {
"source": {
"source": "github",
"repo": "adsagents/adsagent-ai-skills"
}
}
},
"enabledPlugins": ["adsagent@adsagent"]
}Después de la instalación, autentica cada servidor MCP que se muestra en /mcp (Meta, Google, TikTok).
No agregues headers.Authorization a .mcp.json; OAuth debe seguir siendo la ruta de autenticación.
Migración desde slugs de plugin heredados
Las instalaciones antiguas usaban adsagent-ai-skills@adsagent-ai-skills o
adsagent-meta-ai-skills@adsagent-meta-ai-skills. El marketplace declara un
cambio de nombre a adsagent@adsagent. Después de migrar, elimina los duplicados heredados:
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@adsagentActualizar:
codex plugin marketplace upgrade adsagentInicia una sesión nueva de Codex después de instalar o actualizar.
Alternativa Git y otros clientes compatibles con Agent-Skills
Las habilidades en skills/ usan el diseño estándar de Agent Skills
(skills/<name>/SKILL.md con frontmatter YAML). Los clientes que solo consumen habilidades
(sin el paquete MCP del plugin) pueden clonar manualmente:
git clone https://github.com/adsagents/adsagent-ai-skills.git ~/.codex/skills/adsagent-ai-skillsEsos clientes aún necesitan una conexión MCP separada (mensaje de instalación del panel o Directorio de Conectores). La ruta del plugin es el paquete de habilidades + MCP en un solo paso.
Luego abre AdsAgent solo si necesitas configuración OAuth/token del panel para clientes que no son plugin:
Settings -> MCP Access -> Copy install promptPega el prompt copiado en un chat nuevo cuando no se use el paquete de plugin. El prompt proporciona URLs MCP HTTP alojadas para:
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/mcpReglas importantes de tiempo de ejecución
Solo MCP HTTP alojado.
Usa
https://adsagent.md/mcp/v2para nuevas conexiones de Meta;/mcpes la alternativa heredada.No ejecutes código de MCP de AdsAgent localmente.
No uses un relé local a menos que el panel de AdsAgent lo indique explícitamente.
Almacena en caché la configuración de la conexión cuando el cliente lo permita.
Mantén acotada la concurrencia de MCP por token.
Respeta
Retry-After.Analiza
Retry-Afterdel encabezado HTTP,datade nivel superior oerror.datade JSON-RPC.Reconoce
mcp_concurrency_limitedcon espera más jitter.Reconoce
mcp_fanout_detectedcambiando a la herramienta de resumen por lotes de la plataforma en lugar de reintentar la solicitud de ámbito único bloqueada.Cuando
agent_method_profile.profile_id=adsagent_agent_methods_v1y su lectura coherente esté presente en el catálogo local del cliente, usa una solicitudinsights_query_consistentconscopeoscopesordenados para las tres plataformas.Sin ese perfil, o cuando su lectura publicitaria falte solo en el catálogo local del cliente, usa la alternativa nativa nombrada del perfil o las herramientas del lado del servidor documentadas: Meta/TikTok
insights_query_batch_overview, Googlegoogle_ads_insights_overview_batch. No informes un fallo de registro del servidor por una falta de selector local.Consulta primero los datos agregados y nunca infieras la paridad de capacidades entre plataformas a partir de un nombre de herramienta compartido.
Informa los totales calculados por el servidor a partir de la respuesta; no sumes las filas actualmente visibles.
Confía en los totales solo cuando
meta.complete=true; los ámbitos faltantes son desconocidos, nunca cero.Sondea tareas en cola hasta
terminal=truey devuelve el enlace del artefacto en lugar del CSV sin procesar.Sondea el trabajo en cola directamente con
tasks_get_status(task_ref=...)cuando el servidor anuncie referencias de tareas directas.Los tokens de confirmación de QuickCreate son de un solo uso y caducan después de 15 minutos. Verifica
expires_at; después deconfirm_token_invalid, prepara de nuevo, muestra el nuevo resumen y obtén una aprobación explícita nueva.Sondea las tareas de creación de Meta con
tasks_get_status(task_ref=..., response_mode=compact). Enno_create_permission, dirige al usuario a/dashboard/assets/fb-users; nunca cambies los permisos del cliente ni reproduzcas automáticamente la creación fallida.Evita lecturas de filas sin procesar en conversaciones normales de usuario.
Usa tablas Markdown para números.
Confirma antes de la creación o modificación de anuncios.
Usa
grouped_planpara múltiples anuncios fuente distintos; nunca lo emules mediante una serie de mutaciones de copia del lado del cliente.Detente en errores de revisión del operador.
Cuando un error incluya
support_ref, consérvalo y muéstralo textualmente para el soporte. No es autorización; nunca inventes, modifiques, enumeres ni lo reemplaces con tokens, cuerpos de solicitud o registros.
Enlaces
Sitio web oficial: https://adsagent.md
Repositorio oficial: https://github.com/adsagents/adsagent-ai-skills
Soporte: support@adsagent.md
Ruta de incorporación pública: https://adsagent.md/docs/mcp-onboarding
Licencia
Todos los derechos reservados. Consulta 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