MCP server for Kadam ad network — manage campaigns, creatives, audiences, sites, and analytics via AI agents
39 tools with consistent naming (kadam_adv_*, kadam_pub_*) enforced by check-tool-naming.mjs. However, critical gaps: tool definitions are compiled into dist-mcpb/index.js (not visible in source), making schema verification impossible. Sample source files (campaigns.ts, creatives.ts, finances.ts) show tool registration via ToolWrapper.register() with Zod schemas, but the actual parameter definitions, descriptions, and output schemas are not inspectable in the provided code. Descriptions are present but generic (e.g., 'List advertiser campaigns with pagination and filtering', 60 chars, below the 194-char baseline). No evidence of parameter-level descriptions, enum constraints, or output schema documentation. Error handling via formatError() exists but recovery guidance is not visible. Risk classification (READ_ONLY, WRITE, DESTRUCTIVE) is declared but not reflected in tool annotations.
Update bids for multiple campaigns
Create a new audience
Create a new automatic rule
Create a new advertising campaign
Create a new campaign folder/group
Create a new creative/ad
Delete an audience
Tool definitions compiled into dist-mcpb/index.js; source schemas not inspectable. Cannot verify parameter types, descriptions, enums, or output schemas for 39 tools.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
Delete an autorule
Get details about a specific audience
Get details about a specific autorule
Get detailed information about a specific campaign
Get comprehensive campaign details including performance metrics
Get details about a specific creative
Get financial operations and account balance information
Get campaign statistics and analytics with custom report configuration
List advertiser audiences
List automatic rules for campaign management
List campaign folders/groups
List advertiser campaigns with pagination and filtering
List creatives/ads for campaigns
Set the status of one or more autorules
Set the status of one or more campaigns (pause, resume, etc.)
Set the status of one or more creatives
Update an existing audience
Update an existing autorule
Update an existing campaign
Update bid for a campaign
Update an existing campaign folder/group
Update an existing creative
Update bids for specific sites
Create a new traffic source
Get details about a specific traffic source
Get publisher statistics and analytics
Get publisher account information
List ad units for publisher sites
List publisher traffic sources
Set the status of one or more ad units
Set the status of one or more traffic sources
Update an existing traffic source
Tool descriptions are generic and below baseline (avg 60 chars vs 194-char baseline). E.g., 'List advertiser campaigns with pagination and filtering' lacks WHEN to use, prerequisites, or return structure guidance.
Risk classification (READ_ONLY, WRITE, DESTRUCTIVE) declared in metadata but not exposed as tool annotations (readOnlyHint, destructiveHint). LLMs cannot infer safety properties.
No visible parameter-level descriptions in source. Zod schemas exist (src/tools/advertiser/*.ts) but descriptions for individual params (e.g., campaign_id, status, limit) are not documented in provided code.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., campaign_id from list_campaigns for use in get_campaign).