get_campaign
Retrieve details of a specific ad campaign using its ID. Optionally specify which fields to return.
Instructions
Get details of a specific campaign by ID.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID | |
| fields | No | Comma-separated fields to return |
Implementation Reference
- src/tools/campaigns.ts:36-53 (handler)The get_campaign tool handler. It accepts a campaign_id and optional fields, calls client.get(`/${campaign_id}`) to fetch campaign details from Meta Ads API, and returns the result as JSON text.
server.tool( "get_campaign", "Get details of a specific campaign by ID.", { campaign_id: z.string().describe("Campaign ID"), fields: z.string().optional().describe("Comma-separated fields to return"), }, async ({ campaign_id, fields }) => { try { const params: Record<string, unknown> = {}; if (fields) params.fields = fields; const { data, rateLimit } = await client.get(`/${campaign_id}`, 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:39-42 (schema)Input schema for get_campaign: requires campaign_id (string), with optional fields (string).
{ campaign_id: z.string().describe("Campaign ID"), fields: z.string().optional().describe("Comma-separated fields to return"), }, - src/tools/campaigns.ts:36-53 (registration)Registration of get_campaign via server.tool() inside registerCampaignTools(). The function registerCampaignTools is exported and called from src/index.ts (lines 50 and 130).
server.tool( "get_campaign", "Get details of a specific campaign by ID.", { campaign_id: z.string().describe("Campaign ID"), fields: z.string().optional().describe("Comma-separated fields to return"), }, async ({ campaign_id, fields }) => { try { const params: Record<string, unknown> = {}; if (fields) params.fields = fields; const { data, rateLimit } = await client.get(`/${campaign_id}`, 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/services/ads-client.ts:180-199 (helper)The AdsClient.get() method used by the get_campaign handler. It delegates to the private request() method which makes HTTP GET calls to the Meta Ads Graph API with proper authentication and error handling.
async get( path: string, params?: Record<string, unknown> ): Promise<ClientResponse> { return this.request("GET", path, params); } async post( path: string, params?: Record<string, unknown> ): Promise<ClientResponse> { return this.request("POST", path, params); } async delete( path: string, params?: Record<string, unknown> ): Promise<ClientResponse> { return this.request("DELETE", path, params); }