list_extensions
List the account's Google Ads / Microsoft Ads library extensions (sitelinks, callouts, snippets, etc.) with their internal ids.
Read extensions
What it does
List the account's Google Ads / Microsoft Ads library extensions (sitelinks, callouts, snippets, etc.) with their internal ids.
ALSO KNOWN AS: list extensions, show extensions, find sitelink, which extensions do we have, extension library, browse extensions
KEYWORDS: list, show, find, browse, extensions, sitelink, callout, library, google ads, microsoft ads, bing, id
WHEN TO USE:
- "What sitelinks do we have?" / "Show our Google Ads extensions"
- ALWAYS before add_extensions_to_native_campaign or remove_extensions_from_native_campaign — those need internal ids, and this is the only tool that returns them. The create_*_extension tools return an empty body and cannot tell you the new id.
WHEN NOT TO USE:
- Creating a new extension → use the relevant create_*_extension tool
- Non-search channels (Facebook / LinkedIn / Reddit) — extensions do not exist there
INPUTS:
- channel (required): GOOGLE_ADS or MICROSOFT_ADS
- types (optional): filter, e.g. ["SITELINK"]
- name (optional): name filter. Extension names are AUTO-DERIVED, not user-chosen — a sitelink's name is its link text and both description lines joined by newlines, truncated to 50 chars. Filter by `types` and match on the returned fields instead of guessing a name.
- page / size (optional): pagination, defaults 0 / 50
Returns {totalElements, totalPages, data:[{id, name, type, createdDate, ...}]}. Only campaign-attachable extensions are listed (account-level ones are excluded by the platform).Arguments
| Argument | Type | Notes | |
|---|---|---|---|
channel |
string | required | Search channel. Ad extensions are a search-channel-only concept. one of: GOOGLE_ADS, MICROSOFT_ADS |
types |
array | Optional extension-type filter, e.g. ["SITELINK"]. | |
name |
string | Optional name filter. Names are auto-derived by the platform, not user-chosen, so prefer filtering by `types`. | |
page |
integer | 0-based page index. Defaults to 0. | |
size |
integer | Page size. Defaults to 50. |
Request
Request template, not a complete runnable example. Replace placeholders, empty objects, arrays, and zero values with valid account-specific inputs. Read required fields and nested constraints in the full schema. Confirm the account, connected channels, and referenced assets before calling a write tool.
curl -s -X POST https://mcp-server.metadata.io/mcp \
-H "Authorization: $METADATA_PAT" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-11-25" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_extensions","arguments":{"channel":"GOOGLE_ADS"}}}'
Response
Recorded with these arguments. Enum values are the first the tool's own schema
declares; ids were fetched live from a list_ call immediately before.
{
"channel": "GOOGLE_ADS"
}
Real, from the production server, in 1387 ms. The full response was 16,802 bytes; this is the first part of it. Values that identify a customer or disclose money are replaced with typed placeholders; keys, types and nesting are exactly as returned.
{
"totalElements": 38,
"totalPages": 1,
"data": [
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "SITELINK",
"createdDate": "2026-07-31T18:22:17",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"url": "[url redacted]",
"linkText": "[linkText redacted]",
"description1": "[description1 redacted]",
"description2": "[description2 redacted]"
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "STRUCTURED_SNIPPET",
"createdDate": "2026-07-31T18:22:17",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"header": "[header redacted]",
"values": [
"[values redacted]",
"[values redacted]",
"[values redacted]",
"[values redacted]"
]
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "CALLOUT",
"createdDate": "2026-07-31T18:22:15",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"calloutText": "[calloutText redacted]"
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "STRUCTURED_SNIPPET",
"createdDate": "2026-07-08T17:40:36",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"header": "[header redacted]",
"values": [
"[values redacted]",
"[values redacted]",
"[values redacted]",
"[values redacted]",
"[values redacted]",
"[values redacted]"
]
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "CALLOUT",
"createdDate": "2026-07-08T17:40:16",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"calloutText": "[calloutText redacted]"
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "CALLOUT",
"createdDate": "2026-07-08T17:40:05",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"calloutText": "[calloutText redacted]"
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "CALLOUT",
"createdDate": "2026-07-08T17:39:53",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"calloutText": "[calloutText redacted]"
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "CALLOUT",
"createdDate": "2026-07-08T17:39:41",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"calloutText": "[calloutText redacted]"
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "CALLOUT",
"createdDate": "2026-07-08T17:39:25",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"calloutText": "[calloutText redacted]"
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "CALLOUT",
"createdDate": "2026-07-08T17:39:08",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"calloutText": "[calloutText redacted]"
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "CALLOUT",
"createdDate": "2026-07-08T17:38:55",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"calloutText": "[calloutText redacted]"
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "CALLOUT",
"createdDate": "2026-07-08T17:38:45",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"calloutText": "[calloutText redacted]"
},
{
"id": "[number redacted]",
"name": "[name redacted]",
"type": "CALLOUT",
"createdDate": "2026-07-08T17:38:36",
"disapproved": false,
"disapprovalReasons": [],
"thumbnail": "[thumbnail redacted]",
"calloutText": "[calloutText redacted]"
},
{
"id": "[number redacted]",
"name"
… truncated
Related
Other extensions tools: