get_campaign_adsets
Retrieve all ad sets belonging to a specific campaign by providing the campaign ID. Returns configurable fields and supports pagination.
Instructions
Get all ad sets belonging to a specific campaign.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID | |
| fields | No | Comma-separated fields to return | |
| limit | No | Number of results (default 25) | |
| after | No | Pagination cursor for next page |
Implementation Reference
- src/tools/campaigns.ts:164-185 (handler)The server.tool() call that registers and implements the 'get_campaign_adsets' tool handler. It accepts campaign_id, fields, limit, and after params, then calls GET /{campaign_id}/adsets on the AdsClient and returns the paginated results.
server.tool( "get_campaign_adsets", "Get all ad sets belonging to a specific campaign.", { campaign_id: z.string().describe("Campaign ID"), fields: z.string().optional().describe("Comma-separated fields to return"), limit: z.number().optional().default(25).describe("Number of results (default 25)"), after: z.string().optional().describe("Pagination cursor for next page"), }, async ({ campaign_id, fields, limit, after }) => { try { const params: Record<string, unknown> = {}; if (fields) params.fields = fields; if (limit) params.limit = limit; if (after) params.after = after; const { data, rateLimit } = await client.get(`/${campaign_id}/adsets`, params); return { content: [{ type: "text" as const, text: JSON.stringify({ ...data as object, _rateLimit: rateLimit }, null, 2) }] }; } catch (error) { return { content: [{ type: "text" as const, text: `Failed: ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } } ); - src/tools/campaigns.ts:167-172 (schema)Zod schema definitions for the tool's input parameters: campaign_id (required string), fields (optional string), limit (optional number, default 25), after (optional string for pagination).
{ campaign_id: z.string().describe("Campaign ID"), fields: z.string().optional().describe("Comma-separated fields to return"), limit: z.number().optional().default(25).describe("Number of results (default 25)"), after: z.string().optional().describe("Pagination cursor for next page"), }, - src/tools/campaigns.ts:5-5 (registration)The export function registerCampaignTools which is called from src/index.ts to register all campaign-related tools on the MCP server.
export function registerCampaignTools(server: McpServer, client: AdsClient): void { - src/index.ts:50-50 (registration)Where registerCampaignTools is invoked from the main entry point to register the campaign tools (including get_campaign_adsets) on the server.
registerCampaignTools(server, client);