---
title: "Connect eBay to ChatGPT: Manage Ad Campaigns & Ad Group Bids"
slug: connect-ebay-to-chatgpt-manage-ad-campaigns-ad-group-bids
date: 2026-11-01
author: Nidhi KN
categories: ["AI & Agents"]
excerpt: "Learn how to connect eBay to ChatGPT using a managed MCP server to automate Promoted Listings, adjust ad group bids, and orchestrate campaign workflows."
tldr: "Connect eBay to ChatGPT using Truto's managed MCP server. This guide covers eBay-specific API challenges, generating an MCP endpoint via UI or API, connecting it to ChatGPT, and automating ad campaigns and bidding strategies."
canonical: https://truto.one/blog/connect-ebay-to-chatgpt-manage-ad-campaigns-ad-group-bids/
---

# Connect eBay to ChatGPT: Manage Ad Campaigns & Ad Group Bids


If you need to connect eBay to ChatGPT to automate Promoted Listings, optimize ad group bids, or manage complex campaign hierarchies, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between ChatGPT's tool calls and eBay's extensive Sell Marketing API. You can either spend weeks [building and maintaining this infrastructure](https://truto.one/how-to-build-mcp-servers-for-ai-agents-2026-hands-on-architecture-guide/) in-house, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL.

If your team uses Claude, check out our guide on [connecting eBay to Claude](https://truto.one/connect-ebay-to-claude-sync-orders-messages-refund-requests/) or explore our broader architectural overview on [connecting eBay to AI Agents](https://truto.one/connect-ebay-to-ai-agents-scale-inventory-offers-store-tasks/).

Giving a Large Language Model (LLM) read and write access to an enterprise marketplace platform like eBay presents a significant engineering challenge. You have to handle complex bidding strategies (CPC vs CPS), map asynchronous reporting tasks, and navigate a strictly enforced rate limiting environment. Every time eBay updates a schema or modifies a campaign resource, your custom server code must be updated and redeployed. 

This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for eBay, connect it natively to ChatGPT, and execute complex ad campaign workflows using natural language.

> Stop writing boilerplate API integration code. Let Truto generate secure, managed MCP servers for your AI agents in seconds.
>
> [Talk to us](https://truto.one/book-a-demo/)

## The Engineering Reality of the eBay API

A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, implementing it against eBay's specific API architecture is notoriously difficult. 

If you decide to build a custom MCP server for eBay, you own the entire API lifecycle. Here are the specific integration challenges that break standard CRUD assumptions when working with eBay:

### Disparate Item Identifiers
eBay operates multiple parallel APIs for managing inventory. The Sell Marketing API (used for Promoted Listings) requires clients to reference items using either a `listing_id` (generated by the legacy Trading API) or an `inventory_reference_id` (used by the modern Inventory API). When an LLM wants to add an item to an ad group, the MCP server must cleanly differentiate which identifier to pass in the payload. Hardcoding these ID mappings in a custom server is brittle; a dynamic MCP generator handles this schema complexity natively.

### Complex Pagination via HATEOAS
Unlike modern SaaS APIs that use simple integer `limit` and `offset` parameters, eBay relies heavily on HATEOAS (Hypermedia as the Engine of Application State). When fetching a large list of ads or campaigns, the API returns a `next` link containing a pre-signed URL with specific cursor hashes. Truto's integration layer explicitly parses these links and translates them into a standard `next_cursor` property for the LLM. The LLM is instructed to pass this cursor back unmodified, preventing hallucinated pagination states.

### Factual Note on Rate Limits
eBay aggressively enforces API rate limits, and handling them correctly is critical for automated systems. Truto does not retry, throttle, or apply backoff on rate limit errors. When the upstream eBay API returns an HTTP 429 Too Many Requests, Truto passes that error directly to the caller. Truto normalizes the upstream rate limit info into standardized headers (`ratelimit-limit`, `ratelimit-remaining`, `ratelimit-reset`) per the IETF spec. The caller - your LLM agent framework - is responsible for reading these headers and implementing retry/backoff logic.

## Generating the eBay MCP Server

Truto derives [MCP tools dynamically](https://truto.one/auto-generated-mcp-tools-for-ai-agents-a-2026-architecture-guide/) from the eBay integration's resource definitions and documentation records. Rather than hand-coding tool logic, Truto exposes any documented endpoint as an MCP-compatible JSON-RPC tool. The LLM sends a flat JSON object, and Truto's routing layer splits the arguments into the correct path, query, and body parameters based on the schemas.

Each MCP server is scoped to a single connected eBay account. The URL contains a cryptographic token that securely routes the request to the correct tenant.

You can generate an MCP server for eBay using either the Truto UI or the REST API.

### Method 1: Via the Truto UI

For teams who prefer visual configuration:

1. Navigate to the **Integrated Accounts** page in the Truto dashboard.
2. Select your connected eBay account.
3. Click the **MCP Servers** tab.
4. Click **Create MCP Server**.
5. Select your desired configuration (e.g., set allowed methods to `read` and `write`, and filter tags to `campaigns` and `ads`).
6. Copy the generated MCP server URL (it will look like `https://api.truto.one/mcp/<token>`).

### Method 2: Via the Truto API

For developers building programmatic onboarding flows, you can generate the MCP server via a single POST request. This method allows you to strictly scope what the LLM can access.

**Request:**
```bash
curl -X POST https://api.truto.one/integrated-account/<integrated_account_id>/mcp \
  -H "Authorization: Bearer <TRUTO_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "eBay Ads Manager for ChatGPT",
    "config": {
      "methods": ["read", "write"],
      "tags": ["campaigns", "ads", "ad_groups"]
    }
  }'
```

**Response:**
```json
{
  "id": "abc-123",
  "name": "eBay Ads Manager for ChatGPT",
  "config": {
    "methods": ["read", "write"],
    "tags": ["campaigns", "ads", "ad_groups"]
  },
  "expires_at": null,
  "url": "https://api.truto.one/mcp/a1b2c3d4e5f6..."
}
```

Treat this `url` as a sensitive credential. It holds the authentication routing for that specific eBay account.

## Connecting the MCP Server to ChatGPT

Once you have your Truto MCP URL, connecting it to ChatGPT takes seconds. You do not need to configure OAuth or map custom JSON schemas inside OpenAI.

### Method A: Via the ChatGPT UI (Custom Connectors)

If you are using ChatGPT Pro, Plus, Business, Enterprise, or Education:

1. Open ChatGPT and navigate to **Settings -> Apps -> Advanced settings**.
2. Ensure **Developer mode** is enabled.
3. Under **MCP servers / Custom connectors**, click to add a new server.
4. Enter a name (e.g., "eBay Ads by Truto").
5. Paste the Truto MCP URL into the **Server URL** field.
6. Click **Save**.

ChatGPT will immediately ping the server, execute the JSON-RPC initialization handshake, and load the available eBay tools.

### Method B: Via Manual Config File (Local Agents/Desktop)

If you are running a custom OpenAI agent framework locally or configuring an MCP client that requires a config file, you can bridge the Truto REST URL using the standard Server-Sent Events (SSE) transport provided by the MCP SDK.

Add the following to your `mcp-config.json`:

```json
{
  "mcpServers": {
    "ebay-ads": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "--url",
        "https://api.truto.one/mcp/a1b2c3d4e5f6..."
      ]
    }
  }
}
```

## Hero Tools for eBay Ad Campaigns

When you connect the MCP server, Truto automatically provides the LLM with standardized tools derived from the eBay API documentation. Here are the highest-leverage tools for managing Promoted Listings and bids.

### list_all_e_bay_campaigns
Retrieves the details for all of the seller's defined campaigns. This is the foundational tool an LLM uses to map campaign IDs before making structural changes.

> "Fetch a list of all active eBay ad campaigns and summarize their current funding models (CPC vs CPS)."

### create_a_e_bay_campaign
Creates a new Promoted Listings general, priority, or offsite campaign. The LLM handles the JSON schema required to configure start dates, end dates, and funding models.

> "Create a new priority strategy CPC campaign named 'Winter Clearance 2026' starting tomorrow. Set the daily budget to 50 USD."

### e_bay_ad_group_bid_suggestions_search
Allows sellers to retrieve suggested bids for input keywords and match types. This turns ChatGPT into an analytical bidding engine that can query eBay's live data before setting prices.

> "Look up the suggested keyword bids for the ad group ID '88776655' in campaign '112233' using the keywords 'vintage watch' and 'analog watch'."

### update_a_e_bay_ad_group_by_id
Modifies the default bid, status, or name of an ad group associated with a manual targeting campaign.

> "Update the ad group '88776655' in campaign '112233'. Change its default bid to 1.25 USD and ensure the status is active."

### e_bay_keywords_bulk_create
Adds keywords in bulk to an existing priority strategy ad group that uses manual targeting, allowing the LLM to process and assign semantic keyword expansions rapidly.

> "Add the following exact-match keywords to ad group '88776655' in campaign '112233': 'leather boots', 'winter boots', and 'snow boots'. Set the CPC rate for each to 0.85 USD."

### e_bay_ads_bulk_update_bid
Updates the bid percentage values for a set of ads associated with a specified campaign. This works for listings created via either the Trading API or Inventory API.

> "Bulk update the bid percentages to 5.5% for the listing IDs '123456789' and '987654321' in campaign '112233'."

To view the complete schema definitions and the full list of available eBay endpoints, visit the [eBay integration page on Truto](https://truto.one/integrations/detail/ebay).

## Workflows in Action

Once the MCP server is connected, ChatGPT can sequence these tools to perform complex ad optimization routines. Here are two real-world scenarios.

### Workflow 1: Campaign Creation and Bid Optimization

When a seller wants to launch a highly targeted ad campaign, the LLM must first create the campaign, create the ad group, fetch bid suggestions, and finalize the bids.

> "I want to launch a new manual CPC campaign called 'Spring Audio Sale'. Set the daily budget to $100. Create an ad group called 'Headphones', check eBay for the suggested bid on the keyword 'wireless headphones', and set the ad group's default bid to match the higher end of that suggestion."

```mermaid
sequenceDiagram
    participant User
    participant ChatGPT as ChatGPT
    participant Truto as Truto MCP Server
    participant Upstream as "Upstream API (eBay)"

    User->>ChatGPT: "Create campaign 'Spring Audio Sale', create ad group..."
    
    ChatGPT->>Truto: call create_a_e_bay_campaign<br>{"campaignName": "Spring Audio Sale", "budget": 100, "fundingStrategy": "CPC"}
    Truto->>Upstream: POST /sell/marketing/v1/campaign
    Upstream-->>Truto: 201 Created (Location Header: campaign_id: 555666)
    Truto-->>ChatGPT: Result: {"campaign_id": "555666"}

    ChatGPT->>Truto: call create_a_e_bay_ad_group<br>{"campaign_id": "555666", "name": "Headphones"}
    Truto->>Upstream: POST /sell/marketing/v1/campaign/555666/ad_group
    Upstream-->>Truto: 201 Created (Location Header: ad_group_id: 777888)
    Truto-->>ChatGPT: Result: {"ad_group_id": "777888"}

    ChatGPT->>Truto: call e_bay_ad_group_bid_suggestions_search<br>{"campaign_id": "555666", "ad_group_id": "777888", "keywords": ["wireless headphones"]}
    Truto->>Upstream: POST /sell/marketing/v1/ad_group/777888/suggested_bids
    Upstream-->>Truto: 200 OK (Suggested bid: $1.15 to $1.40)
    Truto-->>ChatGPT: Result: Bid data array

    ChatGPT->>Truto: call update_a_e_bay_ad_group_by_id<br>{"campaign_id": "555666", "id": "777888", "defaultBid": 1.40}
    Truto->>Upstream: PUT /sell/marketing/v1/campaign/555666/ad_group/777888
    Upstream-->>Truto: 204 No Content
    Truto-->>ChatGPT: Result: Success
    
    ChatGPT-->>User: "Campaign 'Spring Audio Sale' created with Ad Group 'Headphones'. Default bid set to $1.40 based on eBay suggestions."
```

**What the user gets back:** The LLM successfully orchestrates a four-step API sequence, passing identifiers between endpoints, and dynamically querying the market rate before setting the final financial parameters.

### Workflow 2: Bulk Ad Rate Adjustments

For Cost Per Sale (CPS) campaigns, sellers frequently need to adjust bid percentages across multiple listings based on performance.

> "Find my campaign named 'Evergreen Listings'. I need to aggressively push inventory. Bulk update the bid percentage for all active ads in that campaign to 7.5%."

```mermaid
sequenceDiagram
    participant User
    participant ChatGPT as ChatGPT
    participant Truto as Truto MCP Server
    participant Upstream as "Upstream API (eBay)"

    User->>ChatGPT: "Find 'Evergreen Listings', update bid percentage to 7.5%..."
    
    ChatGPT->>Truto: call e_bay_campaigns_lookup_by_name<br>{"campaign_name": "Evergreen Listings"}
    Truto->>Upstream: GET /sell/marketing/v1/campaign/get_campaign_by_name?campaign_name=...
    Upstream-->>Truto: 200 OK (campaign_id: 112233)
    Truto-->>ChatGPT: Result: {"campaignId": "112233"}

    ChatGPT->>Truto: call list_all_e_bay_ads<br>{"campaign_id": "112233", "limit": "100"}
    Truto->>Upstream: GET /sell/marketing/v1/campaign/112233/ad
    Upstream-->>Truto: 200 OK (Array of Ad IDs and Listing IDs)
    Truto-->>ChatGPT: Result: [ { adId: "A1", listingId: "L1" }, { adId: "A2", listingId: "L2" } ]

    ChatGPT->>Truto: call e_bay_ads_bulk_update_bid<br>{"campaign_id": "112233", "requests": [{"adId": "A1", "bidPercentage": 7.5}, {"adId": "A2", "bidPercentage": 7.5}]}
    Truto->>Upstream: POST /sell/marketing/v1/campaign/112233/bulk_update_bid
    Upstream-->>Truto: 200 OK
    Truto-->>ChatGPT: Result: Bulk update success responses
    
    ChatGPT-->>User: "I located 'Evergreen Listings' and successfully updated the bid percentage to 7.5% for all active ads."
```

**What the user gets back:** The agent retrieves the correct campaign ID using a name lookup, lists all associated ads, packages them into a bulk request array, and applies the new financial percentage across the board.

## Security and Access Control

Exposing an enterprise eBay account to an LLM requires strict boundary setting. Truto's MCP servers provide several mechanisms to lock down access at the token generation stage:

*   **Method Filtering:** By setting `config.methods` to `["read"]`, the MCP server will silently drop all POST, PUT, and DELETE operations during tool generation. The LLM can view campaigns and bid suggestions but cannot alter active bids.
*   **Tag Filtering:** By passing `config.tags: ["campaigns", "ads"]`, the server filters the available documentation records. The LLM will only see tools related to those functional areas, completely ignoring resources like customer service metrics or order management.
*   **Secondary Authentication:** Setting `require_api_token_auth: true` means possession of the MCP URL is not enough. The MCP client (or the user interacting with it) must also provide a valid Truto API token in the `Authorization` header, preventing unauthorized network access if the URL leaks.
*   **Automatic Expiration:** You can provision temporary access for automated tasks by setting an `expires_at` timestamp. Once the time is reached, the underlying token storage automatically expires and scheduled background jobs permanently clean up the access records.

## Connect eBay to ChatGPT Today

Building a custom integration layer that translates LLM JSON arguments into eBay's complex API structures requires massive engineering overhead. By using Truto to generate a managed MCP server, you eliminate the need to write schema parsers, maintain authentication lifecycles, and manually patch breaking API changes.

Truto’s documentation-driven architecture ensures that only well-described, curated API endpoints are exposed to your AI agents, drastically reducing hallucination rates and payload errors. 

> Stop writing boilerplate API integration code. Let Truto generate secure, managed MCP servers for your AI agents in seconds.
>
> [Talk to us](https://truto.one/book-a-demo/)
