Uber External Ads API MCP Server
An MCP (Model Context Protocol) server that provides access to Uber's External Ads API for campaign management.
Features
- Get Campaigns: Retrieve campaigns for an ad account with optional filtering
- Get Campaign: Get details for a specific campaign
- Create Campaign: Create new advertising campaigns
- Update Campaign: Modify existing campaigns
- Delete Campaign: Remove campaigns
Installation
npm install
npm run build
Usage
Development
npm run dev
Production
npm start
Available Tools
get_campaigns
Retrieve campaigns for an ad account.
Parameters:
auth_token(required): Bearer token for authenticationad_account_id(required): The ad account UUIDfilters(optional): Object with filtering optionsstatus: Filter by campaign status (ACTIVE, PAUSED, DELETED)limit: Number of campaigns to return (1-100, default: 20)offset: Number of campaigns to skip (default: 0)
get_campaign
Get details for a specific campaign.
Parameters:
auth_token(required): Bearer token for authenticationad_account_id(required): The ad account UUIDcampaign_id(required): The campaign UUID
create_campaign
Create a new campaign.
Parameters:
auth_token(required): Bearer token for authenticationad_account_id(required): The ad account UUIDcampaign_data(required): Campaign configuration objectname(required): Campaign namebudget_amount(required): Budget amount in USDstatus: Campaign status (ACTIVE, PAUSED) - default: ACTIVEbudget_type: Budget type (DAILY, LIFETIME) - default: DAILYstart_time: Campaign start time (ISO 8601)end_time: Campaign end time (ISO 8601)objective: Campaign objective (AWARENESS, CONSIDERATION, CONVERSION) - default: CONVERSION
update_campaign
Update an existing campaign.
Parameters:
auth_token(required): Bearer token for authenticationad_account_id(required): The ad account UUIDcampaign_id(required): The campaign UUIDcampaign_data(required): Updates to applyname: Campaign namestatus: Campaign status (ACTIVE, PAUSED)budget_amount: Budget amount in USDend_time: Campaign end time (ISO 8601)
delete_campaign
Delete a campaign.
Parameters:
auth_token(required): Bearer token for authenticationad_account_id(required): The ad account UUIDcampaign_id(required): The campaign UUID
Example Usage
Using the provided curl request as an example:
// Get campaigns
await callTool('get_campaigns', {
auth_token: 'IA.AQAAAATlHYAkrhJsBvg2h_K7dmXYDF_9LQAe8gEiCkd7Wyd79AB36AmskjmnMMPtDOwrWBgnGuHNb0Esrh2dScncw8weNgx5kjMNtxP88XJSdDzjfdOmcWe3Zvc0rHx-p5ldHqmXvDvUnjndiPqXigz_yg332ek6b_dmR-1KRus',
ad_account_id: 'd924b89c-09f9-477b-a3ae-5526aa533835',
filters: {
status: 'ACTIVE',
limit: 10
}
});
Configuration
The server uses the Uber External Ads API base URL: https://api.uber.com/v1/ads
All requests require a valid Bearer token for authentication.
Error Handling
The server provides detailed error messages for:
- Authentication failures
- Invalid parameters
- API errors
- Network issues
Errors are returned with isError: true and descriptive messages.
Security
- All authentication tokens are validated
- Input parameters are validated using Zod schemas
- API responses are properly formatted and sanitized
