Skip to main content
Glama
eBay Seller MCP Server

eBay Seller MCP Server

by nrrdio

eBay API MCP Server

npm version npm downloads Tests API Coverage License Contributors Welcome

A Model Context Protocol (MCP) server providing AI assistants with comprehensive access to eBay's Sell APIs. Includes 325 tools for inventory management, order fulfillment, marketing campaigns, analytics, developer tools, and more.

API Coverage: 100% (270 unique eBay API endpoints)


One-Click AI Setup

Let your AI assistant set this up for you! Copy the prompt below and paste it into Claude, ChatGPT, or any AI assistant with MCP support.

I want to set up the eBay MCP Server for my AI assistant. Please help me:

1. Install the eBay MCP server:
   npm install -g ebay-mcp

2. I need to configure it for [Claude Desktop / Cursor / Cline / Zed / Continue.dev / Windsurf / Claude Code CLI / Amazon Q] (choose one)

3. My eBay credentials are:
   - Client ID: [YOUR_CLIENT_ID]
   - Client Secret: [YOUR_CLIENT_SECRET]
   - Environment: [sandbox / production]
   - Redirect URI (RuName): [YOUR_REDIRECT_URI]

Please:
- Create the appropriate config file for my MCP client
- Set up the environment variables
- Help me complete the OAuth flow to get a refresh token for higher rate limits
- Test that the connection works

If I don't have eBay credentials yet, guide me through creating a developer account at https://developer.ebay.com/

Related MCP server: SellerChamp MCP Server

⚠️ Disclaimer

IMPORTANT: Please read this disclaimer carefully before using this software.

This is an open-source project provided "as is" without warranty of any kind, either express or implied. By using this software, you acknowledge and agree to the following:

  • No Liability: The authors, contributors, and maintainers of this project accept NO responsibility or liability for any damages, losses, or issues that may arise from using this software, including but not limited to:

    • Data loss or corruption

    • Financial losses

    • Service disruptions

    • eBay account suspension or termination

    • Violations of eBay's Terms of Service or API usage policies

    • Any other direct or indirect damages

  • eBay API Usage: This project is an unofficial third-party implementation and is NOT affiliated with, endorsed by, or sponsored by eBay Inc. You are solely responsible for:

  • Use at Your Own Risk: This software is provided for educational and development purposes. Users must:

    • Test thoroughly in eBay's sandbox environment before production use

    • Understand the API calls being made on their behalf

    • Maintain backups of critical data

    • Monitor their API usage and account status

  • Security: You are responsible for:

    • Keeping your API credentials secure

    • Properly configuring environment variables

    • Understanding the security implications of MCP server usage

    • Following security best practices

  • No Warranty: This software is provided without any guarantees of functionality, reliability, or fitness for a particular purpose.

By using this software, you accept all risks and agree to hold harmless the authors, contributors, and maintainers from any claims, damages, or liabilities.

For official eBay API support, please refer to the eBay Developer Program.


Table of Contents

Features

  • 325 eBay API Tools - 100% coverage of eBay Sell APIs across inventory, orders, marketing, analytics, developer tools, and more

  • 9 AI Clients Supported - Auto-configuration for Claude Desktop, Cursor, Zed, Cline, Continue.dev, Windsurf, Roo Code, Claude Code CLI, and Amazon Q

  • OAuth 2.0 Support - Full user token management with automatic refresh

  • Type Safety - Built with TypeScript, Zod validation, and OpenAPI-generated types

  • MCP Integration - STDIO transport for direct integration with AI assistants

  • Smart Authentication - Automatic fallback from user tokens (10k-50k req/day) to client credentials (1k req/day)

  • Well Tested - 958+ tests with comprehensive coverage

  • Interactive Setup Wizard - Run npm run setup for guided configuration with auto browser-open for OAuth

  • Developer Analytics - Rate limit monitoring and signing key management

Quick Start

1. Get eBay Credentials

  1. Create a free eBay Developer Account

  2. Generate application keys in the Developer Portal

  3. Save your Client ID and Client Secret

2. Install

Option A: Install from npm (Recommended)

npm install -g ebay-mcp

Option B: Install from source

git clone https://github.com/jyarbro/ebay-seller-mcp.git
cd ebay-seller-mcp
npm install
npm run build

3. Run Setup Wizard

The interactive setup wizard handles everything for you:

npm run setup

Built with a standard Node CLI prompt stack for reliable interactive setup.

The wizard will:

  • Configure your eBay credentials

  • Set up OAuth authentication (for higher rate limits)

  • Auto-detect and configure your MCP client (Claude Desktop, etc.)

  • Save all configuration automatically


Demo

See the eBay MCP Server in action with Claude Desktop:

https://github.com/user-attachments/assets/0173c8df-221c-4943-a4ce-cd20bce79f4b


Visual Setup Guide

The setup wizard (npm run setup) handles OAuth authentication automatically. Here's where to find your credentials in the eBay Developer Portal:

Finding Your Credentials

Step 1: Navigate to eBay Developer Portal and copy your App ID (Client ID) and Cert ID (Client Secret):

Step 1 - Copy credentials from eBay Developer Portal

Step 2: In your app's User Tokens settings, copy the RuName (eBay Redirect URL):

Step 2 - Copy RuName from eBay Sign-in Settings

Running the Setup Wizard

Run npm run setup and enter your credentials when prompted. The wizard will:

  1. Open your browser for OAuth login automatically

  2. Guide you through the eBay sign-in process

Step 3 - Sign in to eBay during OAuth flow

  1. Ask you to paste the authorization code from the callback URL

Step 4 - Paste authorization code into setup wizard

  1. Exchange the code for tokens and save them automatically

  2. Configure your MCP client (Claude Desktop, etc.)

Success! You now have user token authentication with 10k-50k requests/day instead of the default 1k/day.


4. Use

Restart your MCP client (Claude Desktop, etc.) and start using eBay tools through your AI assistant.

Configuration

📖 For a comprehensive configuration guide with detailed explanations of all environment variables, OAuth flow steps, and troubleshooting, see Configuration Documentation.

Environment Variables

The setup wizard (npm run setup) automatically creates and configures your .env file. For reference, these are the environment variables used:

EBAY_CLIENT_ID=your_client_id
EBAY_CLIENT_SECRET=your_client_secret
EBAY_ENVIRONMENT=sandbox  # or "production"
EBAY_REDIRECT_URI=your_runame
EBAY_MARKETPLACE_ID=EBAY_US  # Default marketplace (overridable by many tools)
EBAY_CONTENT_LANGUAGE=en-US  # Default request content language (global)
EBAY_USER_REFRESH_TOKEN=your_refresh_token  # For higher rate limits

OAuth Authentication

Client Credentials (Default): 1,000 requests/day - works automatically with just Client ID and Secret.

User Tokens (Recommended): 10,000-50,000 requests/day - the setup wizard handles the OAuth flow automatically. Tokens refresh automatically.

For detailed OAuth setup and comprehensive configuration guide, see the Configuration Documentation.

MCP Client Compatibility

This server supports 9 AI clients with auto-configuration via npm run setup:

Client

Platform

Config Path

Status

Claude Desktop

macOS, Windows, Linux

~/Library/Application Support/Claude/claude_desktop_config.json

✅ Auto-configured

Cursor IDE

macOS, Windows, Linux

~/.cursor/mcp.json

✅ Auto-configured

Zed Editor

macOS, Windows, Linux

~/.config/zed/settings.json

✅ Auto-configured

Cline

VSCode Extension

~/...globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

✅ Auto-configured

Continue.dev

VSCode, JetBrains

~/.continue/config.json

✅ Auto-configured

Windsurf (Codeium)

macOS, Windows, Linux

~/.codeium/windsurf/mcp_config.json

✅ Auto-configured

Roo Code

VSCode Extension

~/...globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json

✅ Auto-configured

Claude Code CLI

Terminal

~/.claude.json

✅ Auto-configured

Amazon Q Developer

AWS

~/.aws/amazonq/mcp.json

✅ Auto-configured

Configuration Requirements:

  • MCP Protocol version: 1.0+

  • Transport: STDIO (default) or HTTP

  • Node.js runtime: 18.0.0 or higher

Quick Setup for Any Client:

npm install -g ebay-mcp
npx ebay-mcp setup  # Interactive setup wizard - auto-detects installed clients

The setup wizard will automatically detect which AI clients you have installed and configure them for you.

Rate Limiting

Understanding eBay API rate limits is crucial for production use:

Client Credentials (Default):

  • Daily Limit: 1,000 requests per day

  • Best For: Development, testing, low-volume operations

  • Setup: Automatic with just Client ID and Secret

User Token (Recommended):

  • Daily Limit: 10,000-50,000 requests per day (varies by account type)

  • Best For: Production, high-volume operations

  • Setup: Requires OAuth flow (use ebay_get_oauth_url tool)

Rate Limit Tiers by Account Type:

  • Individual Developer: 10,000 requests/day

  • Commercial Developer: 25,000 requests/day

  • Enterprise: 50,000+ requests/day (custom limits)

Rate Limit Best Practices:

  1. Use user tokens for production workloads

  2. Implement exponential backoff on rate limit errors

  3. Cache responses when possible

  4. Monitor your usage in the eBay Developer Portal

  5. Batch operations when the API supports it

  6. Consider upgrading your developer account tier for higher limits

Handling Rate Limits:

When you hit a rate limit, the API returns a 429 status code. The server will:

  • Automatically retry with exponential backoff

  • Inform you of rate limit errors

  • Suggest upgrading to user token authentication

Check Current Usage:

Monitor your API usage in the eBay Developer Portal.

Available Tools

The server provides 325 tools with 100% API coverage organized into the following categories:

  • Account Management - Policies, programs, subscriptions, sales tax

  • Inventory Management - Items, offers, locations, bulk operations, SKU location mapping

  • Order Fulfillment - Orders, shipping, refunds, disputes, payment dispute evidence

  • Marketing & Promotions - Campaigns, ads, promotions, bidding, bulk operations

  • Analytics - Traffic reports, seller standards, metrics

  • Communication - Buyer-seller messaging, negotiations, notifications, feedback

  • Metadata & Taxonomy - Categories, item aspects, policies

  • Developer Tools - Rate limits, signing keys, client registration

  • Token Management - OAuth URL generation, token management

Example Tools:

  • ebay_get_inventory_items - List all inventory items

  • ebay_get_orders - Retrieve seller orders

  • ebay_create_offer - Create new listing offer

  • ebay_get_campaigns - Get marketing campaigns

  • ebay_get_oauth_url - Generate OAuth authorization URL

For the complete tool list, see src/tools/definitions/.

Usage Examples

Here are some common tasks you can accomplish with the eBay MCP server:

Setting Up OAuth for Higher Rate Limits

User: "Can you help me set up OAuth authentication for my eBay account?"

Assistant: Uses ebay_get_oauth_url tool to generate an authorization URL. You visit the URL, grant permissions, and the assistant helps you configure the refresh token in your .env file.

Result: Access to 10,000-50,000 API requests per day instead of 1,000.

Managing Inventory

User: "Show me all my active listings on eBay"

Assistant: Uses ebay_get_inventory_items to retrieve all inventory items.

Result: Displays a formatted list of all your products with SKUs, quantities, and status.

Processing Orders

User: "Get all unfulfilled orders from the last 7 days"

Assistant: Uses ebay_get_orders with date filters and fulfillment status parameters.

Result: Returns a list of pending orders ready for shipment processing.

Creating Marketing Campaigns

User: "Create a promoted listing campaign for my electronics category"

Assistant: Uses ebay_create_campaign and related marketing tools to set up ad campaigns.

Result: New campaign created with specified budget and target items.

Bulk Operations

User: "Update prices for all items in category 'Vintage Watches' with a 10% discount"

Assistant: Combines ebay_get_inventory_items, filters by category, and uses ebay_update_offer to apply bulk pricing changes.

Result: All matching items updated with new pricing.

Development

Prerequisites

  • Node.js >= 18.0.0

  • npm or pnpm

  • eBay Developer Account

Quick Start for Contributors

git clone https://github.com/jyarbro/ebay-seller-mcp.git
cd ebay-seller-mcp
npm install
npm run setup      # Interactive setup wizard
npm run build
npm test

Commands Reference

Command

Description

npm run build

Compile TypeScript to JavaScript

npm start

Run the MCP server

npm run dev

Run server with hot reload

npm test

Run test suite

npm run setup

Interactive setup wizard

npm run sync

Sync specs, generate types, find missing endpoints

npm run diagnose

Check configuration and connectivity

npm run check

Run typecheck + lint + format check

npm run fix

Auto-fix lint and format issues

Adding New API Endpoints

When eBay releases new API endpoints, use the sync tool to identify what's missing:

npm run sync

This single command will:

  1. Download latest OpenAPI specs from eBay

  2. Generate TypeScript types from specs

  3. Analyze which endpoints are implemented

  4. Report missing endpoints that need tools

Workflow for adding a new endpoint:

  1. Run npm run sync to identify missing endpoints

  2. Check dev-sync-report.json for the full list

  3. Create a new tool in src/tools/definitions/

  4. Add the API method in src/api/

  5. Write tests in tests/

  6. Run npm run check && npm test

Project Structure

ebay-mcp/
├── src/
│   ├── index.ts           # MCP server entry point
│   ├── api/               # eBay API implementations
│   ├── auth/              # OAuth & token management
│   ├── tools/             # MCP tool definitions
│   ├── types/             # TypeScript types (auto-generated)
│   ├── scripts/           # CLI tools (setup, sync, diagnose)
│   └── utils/             # Shared utilities
├── docs/                  # OpenAPI specs (auto-downloaded)
├── tests/                 # Test suite
└── build/                 # Compiled output

Docker Support

docker-compose up -d       # Start container
docker-compose logs -f     # View logs
docker-compose down        # Stop container

For detailed contribution guidelines, see CONTRIBUTING.md.

Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature/my-feature

  3. Make your changes and add tests

  4. Run quality checks: npm run check && npm test

  5. Commit using Conventional Commits

  6. Push to your fork and open a Pull Request

Before submitting:

  • Ensure all tests pass

  • Follow TypeScript best practices

  • Update documentation as needed

  • Maintain test coverage

See CONTRIBUTING.md for detailed guidelines.

Logging

The server includes Winston-based logging for easier debugging. Logs are output to stderr (compatible with MCP protocol) and optionally to files.

Log Levels

Set the log level via environment variable:

EBAY_LOG_LEVEL=debug  # Options: error, warn, info, http, verbose, debug, silly

File Logging

Enable file logging for persistent logs:

EBAY_ENABLE_FILE_LOGGING=true

Log files are stored in ~/.ebay-mcp/logs/:

  • error.log - Error-level messages only

  • combined.log - All log messages

  • debug.log - Debug and verbose messages

Log Output Example

[2024-01-15 10:30:45] [INFO] [Server] Starting eBay API MCP Server
[2024-01-15 10:30:45] [INFO] [Auth] Loading tokens from environment variables
[2024-01-15 10:30:46] [INFO] [Auth] Access token refreshed successfully
[2024-01-15 10:30:46] [HTTP] [API] Request: GET https://api.ebay.com/sell/inventory/v1/inventory_item
[2024-01-15 10:30:47] [HTTP] [API] Response: 200 OK

Troubleshooting

Common Issues

Server Not Appearing in Claude Desktop

Problem: The eBay MCP server doesn't show up in your MCP client.

Solutions:

  1. Verify the config file path is correct for your OS

  2. Check JSON syntax is valid (use a JSON validator)

  3. Ensure environment variables are properly set

  4. Restart Claude Desktop completely

  5. Check Claude Desktop logs for error messages

Authentication Errors

Problem: "Invalid credentials" or "Authentication failed" errors.

Solutions:

  1. Verify your EBAY_CLIENT_ID and EBAY_CLIENT_SECRET are correct

  2. Ensure you're using the right environment (sandbox vs production)

  3. Check if your app keys are active in the eBay Developer Portal

  4. For user tokens, verify your EBAY_USER_REFRESH_TOKEN is valid

  5. Run npm run diagnose to check your configuration

Rate Limit Errors

Problem: "Rate limit exceeded" errors.

Solutions:

  1. Upgrade to user token authentication (10k-50k requests/day)

  2. Implement request throttling in your usage

  3. Check your current rate limit in the Developer Portal

  4. Consider upgrading your eBay Developer account tier

Tools Not Working Correctly

Problem: Tools return unexpected errors or empty results.

Solutions:

  1. Verify you're using the correct environment (sandbox vs production)

  2. Ensure you have proper permissions/scopes for the operation

  3. Check current API status with the ebay_get_api_status tool or the eBay API Status page

  4. Run npm run diagnose to check your configuration

  5. Review the eBay API documentation for endpoint requirements

Diagnostic Tools

Run diagnostics to troubleshoot configuration issues:

# Interactive diagnostics
npm run diagnose

# Export diagnostic report
npm run diagnose:export

The diagnostic tool checks:

  • Environment variable configuration

  • eBay API connectivity

  • Authentication status

  • Token validity

  • Available scopes and permissions

Getting Help

If you're still experiencing issues:

  1. Check existing GitHub Issues

  2. Create a new issue with:

    • Your diagnostic report (npm run diagnose:export)

    • Steps to reproduce the problem

    • Error messages or logs

    • Your environment (OS, Node version, MCP client)

Resources

API Status

Check current eBay API health, incidents, and fixes:

Documentation

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments


Forked from https://github.com/YosefHayim/ebay-mcp

Available Tools

332 tools
ebay_accept_payment_disputeA

Accept a payment dispute and allow eBay to refund the buyer. Use this when you agree with the buyer claim.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Inputs: paymentDisputeId (required), returnAddress, revisionNumber.

ebay_add_payment_dispute_evidenceC

Add evidence to support your case in a payment dispute. Provide evidence files and supporting information.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Inputs: paymentDisputeId (required), files, lineItems, evidenceId, +1 more.

ebay_bulk_cancel_packagesB

Cancel multiple packages in one request

Inputs: bulkCancelRequest (required).

ebay_bulk_confirm_packagesB

Confirm multiple packages in one request

Inputs: bulkConfirmRequest (required).

ebay_bulk_create_ad_group_negative_keywordsC

Create multiple ad group-level negative keywords.

Inputs: adGroupId (required), campaignId (required), negativeKeywords (required).

ebay_bulk_create_ads_by_inventory_referenceB

Create multiple ads using Inventory API references (SKU/inventory item group key). CPS campaigns only.

Inputs: ads (required), campaignId (required).

ebay_bulk_create_ads_by_listing_idA

Create multiple ads using listing IDs. Maximum 500 listings per call. Supports both CPS and CPC campaigns.

Inputs: ads (required), campaignId (required).

ebay_bulk_create_campaign_keywordC

Bulk create keywords at the campaign level.

Inputs: keywords (required), campaignId (required).

ebay_bulk_create_campaign_negative_keywordsB

Create multiple campaign-level negative keywords.

Inputs: campaignId (required), negativeKeywords (required).

ebay_bulk_create_keywordsB

Create multiple keywords in a campaign. Maximum recommended per call varies by eBay.

Inputs: keywords (required), campaignId (required).

ebay_bulk_create_offerC

Bulk create multiple offers

Inputs: requests (required).

ebay_bulk_create_or_replace_inventory_itemB

Bulk create or replace multiple inventory items

Inputs: requests (required).

ebay_bulk_create_or_replace_sales_taxB

Bulk create or replace sales tax tables

Inputs: requests (required).

ebay_bulk_delete_ad_group_negative_keywordsB

Delete multiple ad group-level negative keywords.

Inputs: adGroupId (required), campaignId (required), negativeKeywords (required).

ebay_bulk_delete_ads_by_inventory_referenceB

Delete multiple ads by inventory reference. CPS campaigns only.

Inputs: ads (required), campaignId (required).

ebay_bulk_delete_ads_by_listing_idA

Delete multiple ads by listing ID. CPS campaigns only.

Inputs: ads (required), campaignId (required).

ebay_bulk_delete_campaign_negative_keywordsB

Delete multiple campaign-level negative keywords.

Inputs: campaignId (required), negativeKeywords (required).

ebay_bulk_delete_keywordsC

Delete multiple keywords from a campaign.

Inputs: keywords (required), campaignId (required).

ebay_bulk_delete_packagesB

Delete multiple packages in one request

Inputs: bulkDeleteRequest (required).

ebay_bulk_get_inventory_itemC

Bulk get multiple inventory items

Inputs: requests (required).

ebay_bulk_migrate_listingC

Bulk migrate listings to the inventory model

Inputs: requests (required).

ebay_bulk_publish_offerC

Bulk publish multiple offers

Inputs: requests (required).

ebay_bulk_update_ad_group_negative_keywordsC

Update multiple ad group-level negative keywords.

Inputs: adGroupId (required), campaignId (required), negativeKeywords (required).

ebay_bulk_update_ads_bid_by_inventory_referenceA

Update bid percentages for multiple ads by inventory reference. CPS campaigns only.

Inputs: ads (required), campaignId (required).

ebay_bulk_update_ads_bid_by_listing_idA

Update bid percentages for multiple ads by listing ID. CPS campaigns only.

Inputs: ads (required), campaignId (required).

ebay_bulk_update_ads_statusB

Update status for multiple ads. CPC priority strategy campaigns only.

Inputs: ads (required), campaignId (required).

ebay_bulk_update_ads_status_by_listing_idC

Update status for multiple ads by listing ID. CPC priority strategy campaigns only.

Inputs: ads (required), campaignId (required).

ebay_bulk_update_campaign_keywordC

Bulk update keywords at the campaign level.

Inputs: keywords (required), campaignId (required).

ebay_bulk_update_campaign_negative_keywordsC

Update multiple campaign-level negative keywords.

Inputs: campaignId (required), negativeKeywords (required).

ebay_bulk_update_conversationB

Bulk update multiple conversations (read status, flagged, etc.)

Inputs: conversations (required).

ebay_bulk_update_keyword_bidsC

Update bids for multiple keywords.

Inputs: keywords (required), campaignId (required).

ebay_bulk_update_price_quantityB

Bulk update price and quantity for multiple offers

Inputs: requests (required).

ebay_cancel_bundleC

Cancel a bundle by ID

Inputs: bundleId (required).

ebay_cancel_packageB

Cancel a package by ID

Inputs: packageId (required).

ebay_clear_tokensA

Clear all stored OAuth tokens (both user tokens and client credentials). This will require re-authentication for subsequent API calls.

Inputs: no named parameters.

ebay_clone_adC

Clone an ad within a campaign.

Inputs: adId (required), campaignId (required).

ebay_clone_ad_groupC

Clone an ad group within a campaign.

Inputs: adGroupId (required), campaignId (required).

ebay_clone_campaignB

Clone an existing campaign with new settings. Useful for creating campaigns with modified budget or duration.

Inputs: cloneData (required), campaignId (required).

ebay_clone_packageB

Clone a package to create a duplicate

Inputs: packageId (required).

ebay_confirm_packageC

Confirm a package for shipping

Inputs: packageId (required).

ebay_contest_payment_disputeB

Contest a payment dispute by providing evidence. Use this when you disagree with the buyer claim and want to provide proof.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Inputs: paymentDisputeId (required), returnAddress, revisionNumber.

ebay_convert_date_to_timestampA

Convert a date string or number to Unix timestamp (milliseconds). Supports ISO 8601 dates, Unix timestamps (seconds or milliseconds), and relative time (e.g., "in 2 hours", "in 7200 seconds"). Useful when setting token expiry times from user input.

Inputs: dateInput (required).

ebay_create_adB

Create a single ad in a campaign. Supports both CPS and CPC campaigns.

Inputs: ad (required), campaignId (required).

ebay_create_address_preferenceB

Create an address preference for international shipping

Inputs: addressPreference (required).

ebay_create_ad_groupB

Create an ad group for manual targeting in a CPC campaign. Required for CPC campaigns with manual targeting.

Inputs: adGroup (required), campaignId (required).

ebay_create_ad_group_negative_keywordB

Create an ad group-level negative keyword. Prevents ads in this ad group from showing for this keyword.

Inputs: adGroupId (required), campaignId (required), negativeKeyword (required).

ebay_create_ads_by_inventory_referenceC

Create ads using Inventory API references. CPS campaigns only.

Inputs: ads (required), campaignId (required).

ebay_create_bundleC

Create a bundle of packages for international shipping

Inputs: bundleRequest (required).

ebay_create_campaignB

Create a new marketing campaign. Supports both CPS (Cost Per Sale) and CPC (Cost Per Click) campaigns.

Inputs: campaign (required).

ebay_create_campaign_negative_keywordA

Create a campaign-level negative keyword. Prevents ads from showing for this keyword across entire campaign.

Inputs: campaignId (required), negativeKeyword (required).

ebay_create_complaintB

Create a complaint for international shipping issues

Inputs: complaintRequest (required).

ebay_create_consign_preferenceB

Create a consign preference for international shipping

Inputs: consignPreference (required).

ebay_create_custom_policyB

Create a new custom policy

Inputs: policy (required).

ebay_create_email_campaignB

Create a new email marketing campaign.

Inputs: emailCampaign (required).

ebay_create_fulfillment_policyC

Create a new fulfillment policy.

Required OAuth Scope: sell.account Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.account

Inputs: policy (required).

ebay_create_inventory_itemC

Create or replace an inventory item.

Required OAuth Scope: sell.inventory Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory

Inputs: sku (required), inventoryItem (required).

ebay_create_item_price_markdown_promotionB

Create an item price markdown promotion (sale pricing).

Inputs: promotion (required).

ebay_create_item_promotionC

Create a new item promotion (order discount, volume pricing, etc.).

Inputs: promotion (required).

ebay_create_keywordC

Create a keyword for manual targeting in a CPC campaign ad group.

Inputs: keyword (required), campaignId (required).

ebay_create_listingB

Create a new fixed-price listing.

Uses the Trading API (AddFixedPriceItem). Requires complete item details.

Required: User OAuth token.

Inputs: item (required).

ebay_create_notification_destinationC

Create a notification destination

Inputs: destination (required).

ebay_create_notification_subscriptionC

Create a notification subscription

Inputs: status, payload, topic_id, destination_id.

ebay_create_notification_subscription_filterC

Create a filter for a notification subscription

Inputs: subscription_id (required), filter_schema.

ebay_create_offerC

Create a new offer for an inventory item

Inputs: offer (required).

ebay_create_or_replace_inventory_item_groupC

Create or replace an inventory item group

Inputs: inventoryItemGroup (required), inventoryItemGroupKey (required).

ebay_create_or_replace_inventory_locationC

Create or replace an inventory location

Inputs: location (required), merchantLocationKey (required).

ebay_create_or_replace_product_compatibilityC

Create or replace product compatibility for an inventory item

Inputs: sku (required), compatibility (required).

ebay_create_or_replace_sales_taxB

Create or replace sales tax table for a jurisdiction

Inputs: countryCode (required), salesTaxBase (required), jurisdictionId (required).

ebay_create_or_replace_sku_location_mappingB

Create or replace SKU location mapping for a listing. Maps a SKU to multiple fulfillment center locations.

Required OAuth Scope: sell.inventory Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory

Inputs: sku (required), listingId (required), locationMapping (required).

ebay_create_packageC

Create a package for international shipping

Inputs: packageRequest (required).

ebay_create_payment_policyB

Create a new payment policy

Inputs: policy (required).

ebay_create_report_taskC

Create an asynchronous report generation task. Reports are generated in the background.

Inputs: reportTask (required).

ebay_create_return_policyC

Create a new return policy

Inputs: policy (required).

ebay_create_shipping_fulfillmentB

Create a shipping fulfillment for an order.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Inputs: orderId (required), fulfillment (required).

ebay_create_shipping_quoteC

Create a shipping quote for international shipping

Inputs: shippingQuoteRequest (required).

ebay_create_signing_keyA

Create a new signing keypair for API digital signatures. Supports ED25519 (recommended) or RSA ciphers. IMPORTANT: Save the private key immediately as eBay does not store it.

Inputs: signingKeyCipher.

ebay_create_targetingC

Create targeting configuration for a campaign.

Inputs: targeting (required), campaignId (required).

ebay_create_vero_reportA

Create a VERO report to report intellectual property infringement. This endpoint is part of the Verified Rights Owner (VeRO) Program and allows rights owners to report listings that infringe on their intellectual property.

Inputs: reportData (required).

ebay_delete_adC

Delete a specific ad from a campaign.

Inputs: adId (required), campaignId (required).

ebay_delete_ad_group_negative_keywordC

Delete an ad group-level negative keyword.

Inputs: adGroupId (required), campaignId (required), negativeKeywordId (required).

ebay_delete_ads_by_inventory_referenceC

Delete ads by inventory reference for a CPS campaign.

Inputs: campaignId (required), inventoryReferenceId (required), inventoryReferenceType (required).

ebay_delete_campaignA

Permanently delete a marketing campaign. This action cannot be undone.

Inputs: campaignId (required).

ebay_delete_campaign_negative_keywordC

Delete a campaign-level negative keyword.

Inputs: campaignId (required), negativeKeywordId (required).

ebay_delete_custom_policyB

Delete a custom policy

Inputs: customPolicyId (required).

ebay_delete_email_campaignC

Delete an email campaign.

Inputs: emailCampaignId (required).

ebay_delete_fulfillment_policyB

Delete a fulfillment policy

Inputs: fulfillmentPolicyId (required).

ebay_delete_inventory_itemB

Delete an inventory item by SKU.

Required OAuth Scope: sell.inventory Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory

Inputs: sku (required).

ebay_delete_inventory_item_groupC

Delete an inventory item group

Inputs: inventoryItemGroupKey (required).

ebay_delete_inventory_locationB

Delete an inventory location

Inputs: merchantLocationKey (required).

ebay_delete_item_price_markdown_promotionB

Delete an item price markdown promotion.

Inputs: promotionId (required).

ebay_delete_item_promotionB

Delete an item promotion.

Inputs: promotionId (required).

ebay_delete_keywordB

Delete a specific keyword from a campaign.

Inputs: keywordId (required), campaignId (required).

ebay_delete_notification_destinationC

Delete a notification destination

Inputs: destination_id (required).

ebay_delete_notification_subscriptionC

Delete a notification subscription

Inputs: subscription_id (required).

ebay_delete_notification_subscription_filterC

Delete a subscription filter

Inputs: filter_id (required), subscription_id (required).

ebay_delete_offerC

Delete an offer

Inputs: offerId (required).

ebay_delete_packageB

Delete a package by ID

Inputs: packageId (required).

ebay_delete_payment_policyB

Delete a payment policy

Inputs: paymentPolicyId (required).

ebay_delete_product_compatibilityB

Delete product compatibility for an inventory item

Inputs: sku (required).

ebay_delete_report_taskA

Delete a report task. Only completed or failed tasks can be deleted.

Inputs: reportTaskId (required).

ebay_delete_return_policyB

Delete a return policy

Inputs: returnPolicyId (required).

ebay_delete_sales_taxB

Delete sales tax table for a jurisdiction

Inputs: countryCode (required), jurisdictionId (required).

ebay_delete_sku_location_mappingA

Delete SKU location mapping for a listing. Removes all fulfillment center location mappings for a SKU.

Required OAuth Scope: sell.inventory Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory

Inputs: sku (required), listingId (required).

ebay_disable_inventory_locationB

Disable an inventory location

Inputs: merchantLocationKey (required).

ebay_disable_notification_subscriptionC

Disable a notification subscription

Inputs: subscription_id (required).

ebay_display_credentialsA

Display all eBay API credentials and current token information. Shows client ID, client secret (masked), environment (production/sandbox), redirect URI, and current token status including access token (masked), refresh token (masked), app token (masked), and their expiry times. Useful for debugging authentication issues and verifying configuration.

Inputs: no named parameters.

ebay_enable_inventory_locationB

Enable an inventory location

Inputs: merchantLocationKey (required).

ebay_enable_notification_subscriptionC

Enable a notification subscription

Inputs: subscription_id (required).

ebay_end_campaignA

Permanently end a marketing campaign. Cannot be restarted after ending.

Inputs: campaignId (required).

ebay_end_listingB

End/remove an active fixed-price listing.

Uses the Trading API (EndFixedPriceItem).

Required: User OAuth token.

Inputs: itemId (required), reason.

ebay_exchange_authorization_codeA

Exchange an OAuth authorization code for access and refresh tokens. This completes the OAuth 2.0 Authorization Code grant flow. After the user authorizes the application using the URL from ebay_get_oauth_url, eBay redirects back with an authorization code in the URL. Use this tool to exchange that code for tokens that can be used to make API calls. The tokens will be automatically stored and used for subsequent API requests.

IMPORTANT NOTES:

  • Authorization codes expire in ~5 minutes - if you get "invalid grant" error, get a fresh code

  • Codes can be URL-encoded (e.g., v%5E1.1%23...) - this tool automatically decodes them

  • Extract the code parameter from the redirect URL (your RuName Accept URL): https://your-redirect-uri?code=YOUR_CODE&expires_in=299

  • Tokens are saved to .env file and will auto-refresh every 2 hours

  • Refresh tokens last 18 months before requiring re-authorization

COMMON ERRORS:

  • "invalid or was issued to another client": Code expired, get fresh code

  • "Insufficient permissions": Re-run OAuth flow with additional scopes in ebay_get_oauth_url

For complete OAuth guide with scopes, troubleshooting, and examples, see: docs/auth/OAUTH_QUICK_REFERENCE.md

Inputs: code (required).

ebay_fetch_payment_dispute_evidence_contentB

Download evidence file content from a payment dispute.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Inputs: fileId (required), evidenceId (required), paymentDisputeId (required).

ebay_find_campaign_by_ad_referenceB

Find a campaign by listing ID or inventory reference.

Inputs: listingId, inventoryReferenceId, inventoryReferenceType.

ebay_find_listing_recommendationsC

Find listing recommendations for items. Returns suggestions to improve listing performance.

Inputs: limit, filter, offset, listingIds, +1 more.

ebay_find_seller_standards_profilesA

Find all seller standards profiles

Inputs: no named parameters.

ebay_get_active_listingsA

Get all active fixed-price listings with SKU, quantity, price, and watch count.

Uses the Trading API (GetMyeBaySelling). Returns listings created via any method (UI, Trading API, or REST API).

Required: User OAuth token.

Inputs: page, entriesPerPage.

ebay_get_actual_costsB

Get actual costs for shipped packages

Inputs: params.

ebay_get_adB

Get details of a specific ad in a campaign.

Inputs: adId (required), campaignId (required).

ebay_get_address_preferencesA

Get address preferences for international shipping

Inputs: no named parameters.

ebay_get_ad_groupA

Get details of a specific ad group.

Inputs: adGroupId (required), campaignId (required).

ebay_get_ad_group_negative_keywordB

Get details of a specific ad group-level negative keyword.

Inputs: adGroupId (required), campaignId (required), negativeKeywordId (required).

ebay_get_ad_group_negative_keywordsB

Get all negative keywords for an ad group.

Inputs: adGroupId (required), campaignId (required), limit, offset.

ebay_get_ad_groupsC

Get all ad groups for a campaign.

Inputs: campaignId (required), limit, offset.

ebay_get_ad_reportB

Download a completed ad report by report ID.

Inputs: reportId (required).

ebay_get_ad_report_metadataA

Get metadata for all available report types. Returns dimensions, metrics, and filters.

Inputs: no named parameters.

ebay_get_ad_report_metadata_for_typeC

Get metadata for a specific report type.

Inputs: reportType (required).

ebay_get_adsC

Get all ads for a campaign with optional filters.

Inputs: campaignId (required), limit, offset, adStatus, +2 more.

ebay_get_ads_by_inventory_referenceA

Get ads by inventory reference (SKU or inventory item group key). CPS campaigns only.

Inputs: campaignId (required), inventoryReferenceId (required), inventoryReferenceType (required).

ebay_get_ads_by_listing_idA

Get ads by listing ID. Returns all ads for the specified listing.

Inputs: listingId (required), campaignId (required).

ebay_get_advertising_eligibilityA

Check the seller eligibility status for eBay advertising programs. This allows developers to determine if a seller is eligible for various advertising programs on eBay.

Required OAuth Scope: sell.account.readonly or sell.account

Inputs: marketplaceId (required), programTypes.

ebay_get_agentsB

Get available shipping agents for international shipping

Inputs: params.

ebay_get_api_statusA

Get the latest eBay API status and incidents from the official RSS feed. Returns recent issues, fixes, and outages for eBay APIs (e.g. Trading API, Inventory API, Sandbox). Use when the user asks about API status, outages, or fixes.

Inputs: api, limit, status.

ebay_get_automotive_parts_compatibility_policiesB

Get automotive parts compatibility policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_awaiting_feedbackC

Get transactions awaiting feedback from the seller

Inputs: sort, limit, filter, offset.

ebay_get_battery_qualificationsB

Get battery qualifications for international shipping

Inputs: params.

ebay_get_bundleB

Get bundle details by ID

Inputs: bundleId (required).

ebay_get_bundle_labelC

Get shipping label for a bundle

Inputs: bundleId (required).

ebay_get_campaignA

Get details of a specific marketing campaign by ID. Returns campaign configuration, status, and statistics.

Inputs: campaignId (required).

ebay_get_campaign_by_nameB

Find a campaign by its name. Returns campaign details if a matching name is found.

Inputs: campaignName (required).

ebay_get_campaign_negative_keywordA

Get details of a specific campaign-level negative keyword.

Inputs: campaignId (required), negativeKeywordId (required).

ebay_get_campaign_negative_keywordsC

Get all campaign-level negative keywords.

Inputs: campaignId (required), limit, offset.

ebay_get_campaignsB

Get all marketing campaigns for the seller. Returns campaigns with status, budget, and performance data.

Inputs: limit, offset, marketplaceId, campaignStatus.

ebay_get_category_policiesC

Get category policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_category_suggestionsB

Get category suggestions based on query

Inputs: query (required), categoryTreeId (required).

ebay_get_category_treeB

Get category tree by ID

Inputs: categoryTreeId (required).

ebay_get_classified_ad_policiesC

Get classified ad policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_compatibilities_by_specificationC

Get compatibilities by specification

Inputs: specification (required).

ebay_get_compatibility_property_namesC

Get compatibility property names

Inputs: data (required).

ebay_get_compatibility_property_valuesC

Get compatibility property values

Inputs: data (required).

ebay_get_consign_preferencesA

Get consign preferences for international shipping

Inputs: no named parameters.

ebay_get_conversationB

Get a specific conversation by ID

Inputs: conversation_id (required).

ebay_get_conversationsC

Get all buyer-seller conversations (paginated)

Inputs: limit, filter, offset.

ebay_get_currenciesC

Get currencies for a marketplace

Inputs: marketplaceId (required).

ebay_get_customer_service_metricC

Get customer service metrics

Inputs: evaluationType (required), evaluationMarketplaceId (required), customerServiceMetricType (required).

ebay_get_custom_policiesB

Retrieve custom policies defined for the seller account

Inputs: policyTypes.

ebay_get_custom_policyA

Get a specific custom policy by ID

Inputs: customPolicyId (required).

ebay_get_default_category_tree_idB

Get the default category tree ID for a marketplace

Inputs: marketplaceId (required).

ebay_get_dropoff_sitesB

Get available dropoff sites for international shipping

Inputs: params (required).

ebay_get_email_audiencesB

Get available audiences for email campaigns.

Inputs: no named parameters.

ebay_get_email_campaignC

Get details of a specific email campaign.

Inputs: emailCampaignId (required).

ebay_get_email_campaignsC

Get all email marketing campaigns.

Inputs: limit, offset.

ebay_get_email_previewC

Get a preview of an email campaign.

Inputs: emailCampaignId (required).

ebay_get_email_reportC

Get performance report for email campaigns.

Inputs: limit, offset.

ebay_get_extended_producer_responsibility_policiesB

Get extended producer responsibility policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_feedbackC

Get feedback for a user by type

Inputs: user_id (required), feedback_type (required), sort, limit, +6 more.

ebay_get_feedback_rating_summaryC

Get feedback rating summary for a user

Inputs: filter (required), user_id (required).

ebay_get_feedback_summaryC

Get feedback summary for the seller

Inputs: no named parameters.

ebay_get_fulfillment_policiesB

Get fulfillment policies for the seller.

Required OAuth Scope: sell.account.readonly or sell.account Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.account.readonly

Inputs: marketplaceId (required).

ebay_get_fulfillment_policyB

Get a specific fulfillment policy by ID

Inputs: fulfillmentPolicyId (required).

ebay_get_fulfillment_policy_by_nameB

Get a fulfillment policy by name

Inputs: name (required), marketplaceId (required).

ebay_get_handover_sheetC

Get handover sheet for packages

Inputs: params.

ebay_get_hazardous_materials_labelsB

Get hazardous materials labels for a marketplace

Inputs: marketplaceId (required).

ebay_get_inventory_itemB

Get a specific inventory item by SKU.

Required OAuth Scope: sell.inventory.readonly or sell.inventory Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory.readonly

Inputs: sku (required).

ebay_get_inventory_item_groupB

Get an inventory item group (variation group)

Inputs: inventoryItemGroupKey (required).

ebay_get_inventory_itemsA

Retrieve all inventory items for the seller.

Required OAuth Scope: sell.inventory.readonly or sell.inventory Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory.readonly

Inputs: limit, offset.

ebay_get_inventory_locationB

Get a specific inventory location

Inputs: merchantLocationKey (required).

ebay_get_inventory_locationsC

Get all inventory locations

Inputs: limit, offset.

ebay_get_item_aspects_for_categoryC

Get item aspects for a specific category

Inputs: categoryId (required), categoryTreeId (required).

ebay_get_item_condition_policiesB

Get item condition policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_item_price_markdown_promotionB

Get details of a specific item price markdown promotion.

Inputs: promotionId (required).

ebay_get_item_promotionC

Get details of a specific item promotion.

Inputs: promotionId (required).

ebay_get_keywordB

Get details of a specific keyword.

Inputs: keywordId (required), campaignId (required).

ebay_get_keywordsB

Get all keywords for a campaign.

Inputs: campaignId (required), limit, offset, adGroupIds.

ebay_get_kycA

Get seller KYC (Know Your Customer) status

Inputs: no named parameters.

ebay_get_labelsC

Get shipping labels for packages

Inputs: params.

ebay_get_listingA

Get full details for a single listing by item ID.

Uses the Trading API (GetItem). Returns all listing fields including description, specifics, shipping, and images.

Required: User OAuth token.

Inputs: itemId (required).

ebay_get_listing_feesB

Get listing fees for offers before publishing

Inputs: offers (required).

ebay_get_listing_locationsC

Get inventory locations for a specific listing (SKU location mapping).

Required OAuth Scope: sell.inventory.readonly or sell.inventory Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory.readonly

Inputs: sku (required), listingId (required).

ebay_get_listing_setB

Get the listing set (items included) for a promotion.

Inputs: promotionId (required).

ebay_get_listing_structure_policiesC

Get listing structure policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_listing_type_policiesC

Get listing type policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_listing_violationsB

Get listing violations for the seller

Inputs: limit, offset, complianceType.

ebay_get_listing_violations_summaryC

Get summary of listing violations

Inputs: complianceType.

ebay_get_messageB

Get a specific message by ID

Inputs: messageId (required).

ebay_get_motors_listing_policiesC

Get motors listing policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_multi_compatibility_property_valuesC

Get multiple compatibility property values

Inputs: data (required).

ebay_get_negotiated_price_policiesC

Get negotiated price policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_notification_configC

Get notification configuration

Inputs: no named parameters.

ebay_get_notification_destinationB

Get a specific notification destination by ID

Inputs: destination_id (required).

ebay_get_notification_destinationsB

Get all notification destinations (paginated)

Inputs: limit, continuationToken.

ebay_get_notification_public_keyB

Get a public key for verifying notification signatures

Inputs: public_key_id (required).

ebay_get_notification_subscriptionB

Get a specific notification subscription by ID

Inputs: subscription_id (required).

ebay_get_notification_subscription_filterC

Get a specific subscription filter

Inputs: filter_id (required), subscription_id (required).

ebay_get_notification_subscriptionsC

Get all notification subscriptions (paginated)

Inputs: limit, continuation_token.

ebay_get_notification_topicB

Get a specific notification topic by ID

Inputs: topic_id (required).

ebay_get_notification_topicsB

Get all available notification topics (paginated)

Inputs: limit, continuation_token.

ebay_get_oauth_urlA

Generate the eBay OAuth authorization URL for user consent. The user should open this URL in a browser to grant permissions to the application. This supports the OAuth 2.0 Authorization Code grant flow. The redirect URI can be provided as a parameter or will be read from EBAY_REDIRECT_URI environment variable.

IMPORTANT: eBay has different OAuth scopes available for production vs sandbox environments:

  • Sandbox includes additional Buy API scopes (e.g., buy.order.readonly, buy.guest.order, buy.shopping.cart) and extended Identity scopes

  • Production includes sell.edelivery, commerce.message (explicit), and commerce.shipping scopes not available in sandbox

  • If you provide custom scopes, they will be validated against the current environment (set via EBAY_ENVIRONMENT). Any scopes not valid for the environment will generate warnings.

OAUTH FLOW INSTRUCTIONS:

  1. Generate OAuth URL with this tool (optionally specify scopes)

  2. User opens URL in browser, authorizes, and gets redirected with a code parameter

  3. Use ebay_exchange_authorization_code tool with the code (URL-encoded format accepted)

  4. Tokens are automatically stored and will auto-refresh every 2 hours

COMMON SCOPES:

TROUBLESHOOTING:

  • Authorization codes expire in ~5 minutes - get fresh code if "invalid grant" error

  • "Insufficient permissions" errors mean you need to re-authorize with additional scopes

  • OAuth URL format: Use + to separate scopes (e.g., scope=scope1+scope2), not %2B

  • Refresh tokens last 18 months and are saved to .env file for persistence

Inputs: state, scopes, redirectUri.

ebay_get_offerC

Get a specific offer by ID

Inputs: offerId (required).

ebay_get_offersC

Get all offers for the seller

Inputs: sku, limit, marketplaceId.

ebay_get_offers_to_buyersC

Get offers to buyers (Best Offers) for the seller

Inputs: limit, filter, offset.

ebay_get_opted_in_programsA

Get seller programs the account is opted into

Inputs: no named parameters.

ebay_get_orderB

Get details of a specific order.

Required OAuth Scope: sell.fulfillment.readonly or sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly

Inputs: orderId (required).

ebay_get_ordersC

Retrieve orders for the seller.

Required OAuth Scope: sell.fulfillment.readonly or sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly

Inputs: limit, filter, offset.

ebay_get_packageC

Get package details by ID

Inputs: packageId (required).

ebay_get_package_by_order_line_itemB

Get package details by order line item ID

Inputs: orderLineItemId (required).

ebay_get_payment_disputeB

Get detailed information about a specific payment dispute.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Inputs: paymentDisputeId (required).

ebay_get_payment_dispute_activitiesA

Get activity history for a payment dispute, including all actions taken by buyer, seller, and eBay.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Inputs: paymentDisputeId (required).

ebay_get_payment_dispute_summariesB

Get summaries of all payment disputes. Use filters to narrow results by dispute status, buyer username, or order ID.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Inputs: limit, offset, openFilter, buyerFilter, +1 more.

ebay_get_payment_policiesC

Get payment policies for the seller

Inputs: marketplaceId (required).

ebay_get_payment_policyA

Get a specific payment policy by ID

Inputs: paymentPolicyId (required).

ebay_get_payment_policy_by_nameB

Get a payment policy by name

Inputs: name (required), marketplaceId (required).

ebay_get_payments_programB

Get payments program status for a marketplace. Note: This method is deprecated as all seller accounts globally have been enabled for the new eBay payment and checkout flow.

Required OAuth Scope: sell.account.readonly or sell.account

Inputs: marketplaceId (required), paymentsProgramType (required).

ebay_get_payments_program_onboardingA

Get payments program onboarding information. Note: This method is deprecated as all seller accounts globally have been enabled for the new eBay payment and checkout flow.

Required OAuth Scope: sell.account.readonly or sell.account

Inputs: marketplaceId (required), paymentsProgramType (required).

ebay_get_payments_program_statusC

Get payments program status

Inputs: marketplaceId (required), paymentsProgramType (required).

ebay_get_privilegesA

Get seller's current set of privileges, including whether or not the seller's eBay registration has been completed, as well as the details of their site-wide sellingLimit (the maximum dollar value and quantity of items a seller can sell per day).

Required OAuth Scope: sell.account.readonly or sell.account

Inputs: no named parameters.

ebay_get_product_compatibilitiesD

Get product compatibilities

Inputs: data (required).

ebay_get_product_compatibilityB

Get product compatibility information for an inventory item

Inputs: sku (required).

ebay_get_product_safety_labelsB

Get product safety labels for a marketplace

Inputs: marketplaceId (required).

ebay_get_promotion_reportC

Get promotion performance report with sales and revenue data.

Inputs: marketplaceId (required), limit, offset, promotionType, +1 more.

ebay_get_promotionsB

Get all item promotions with optional filters. Returns order discounts, shipping discounts, etc.

Inputs: limit, offset, marketplaceId, promotionType, +1 more.

ebay_get_promotion_summary_reportC

Get summary report of promotion performance across all promotions.

Inputs: marketplaceId (required).

ebay_get_rate_limitsB

Get application rate limits for eBay APIs. Returns call quota, remaining calls, and time until reset for each API resource.

Inputs: apiName, apiContext.

ebay_get_rate_tablesC

Get seller rate tables

Inputs: no named parameters.

ebay_get_regulatory_policiesC

Get regulatory policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_reportC

Download a completed report by report ID.

Inputs: reportId (required).

ebay_get_report_taskB

Get status and details of a specific report task.

Inputs: reportTaskId (required).

ebay_get_report_tasksB

Get all report tasks with optional filters.

Inputs: limit, offset, reportTaskStatuses.

ebay_get_return_policiesC

Get return policies for the seller

Inputs: marketplaceId (required).

ebay_get_return_policyB

Get a specific return policy by ID

Inputs: returnPolicyId (required).

ebay_get_return_policy_by_nameB

Get a return policy by name

Inputs: name (required), marketplaceId (required).

ebay_get_return_policy_metadataA

Get marketplace return policy requirements and guidelines. Returns eBay policies that define whether return policies are required for categories and the guidelines for creating domestic and international return policies.

Inputs: marketplaceId (required), filter.

ebay_get_sales_taxC

Get sales tax table for a jurisdiction

Inputs: countryCode (required), jurisdictionId (required).

ebay_get_sales_taxesA

Get all sales tax tables for a country

Inputs: countryCode (required).

ebay_get_sales_tax_jurisdictionsC

Get sales tax jurisdictions for a country

Inputs: countryCode (required).

ebay_get_seller_standards_profileB

Get a specific seller standards profile

Inputs: cycle (required), program (required).

ebay_get_shipping_cost_type_policiesC

Get shipping cost type policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_shipping_fulfillmentC

Get a specific shipping fulfillment by ID.

Required OAuth Scope: sell.fulfillment.readonly or sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly

Inputs: orderId (required), fulfillmentId (required).

ebay_get_shipping_fulfillmentsA

Get all shipping fulfillments for an order.

Required OAuth Scope: sell.fulfillment.readonly or sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly

Inputs: orderId (required).

ebay_get_shipping_policiesC

Get shipping policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_shipping_quoteB

Get a shipping quote by ID

Inputs: shippingQuoteId (required).

ebay_get_shipping_servicesC

Get available shipping services for international shipping

Inputs: params.

ebay_get_signing_keyA

Get a specific signing key by ID. Returns public key and metadata (private key is not stored by eBay).

Inputs: signingKeyId (required).

ebay_get_signing_keysA

Get all signing keys for the application. Returns public keys and metadata (private keys are not stored by eBay).

Inputs: no named parameters.

ebay_get_site_visibility_policiesC

Get site visibility policies for a marketplace

Inputs: marketplaceId (required), filter.

ebay_get_subscriptionB

Get seller subscription information

Inputs: limitType.

ebay_get_targetingB

Get targeting configuration for a campaign.

Inputs: campaignId (required).

ebay_get_token_statusA

Check the current OAuth token status. Returns information about whether user tokens or client credentials are being used, and whether tokens are valid.

Inputs: no named parameters.

ebay_get_trackingC

Get tracking information for packages

Inputs: params (required).

ebay_get_traffic_reportC

Get traffic report for listings

Inputs: filter (required), metric (required), dimension (required), sort.

ebay_get_userB

Get user identity information

Inputs: no named parameters.

ebay_get_user_rate_limitsC

Get user-specific rate limits for eBay APIs. Returns call quota per user for APIs that limit by user.

Inputs: apiName, apiContext.

ebay_get_vero_reason_codeB

Get a specific VERO reason code by ID. Reason codes categorize the types of intellectual property violations.

Inputs: veroReasonCodeId (required).

ebay_get_vero_reason_codesA

Get all available VERO reason codes. These codes are used when creating VERO reports to specify the type of intellectual property violation.

Inputs: no named parameters.

ebay_get_vero_reportC

Get a specific VERO report by ID

Inputs: veroReportId (required).

ebay_get_vero_report_itemsB

Get VERO report items (listings reported for intellectual property infringement). Supports filtering, pagination via limit and offset parameters.

Inputs: limit, filter, offset.

ebay_issue_refundB

Issue a full or partial refund for an eBay order. Use this to refund buyers for orders, including specifying the refund amount and reason.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Inputs: orderId (required), refundData (required).

ebay_launch_campaignA

Launch a campaign to start running ads. Campaign must be in PENDING status.

Inputs: campaignId (required).

ebay_leave_feedback_for_buyerC

Leave feedback for a buyer

Inputs: feedbackData (required).

ebay_opt_in_to_payments_programC

Opt-in to a payments program

Inputs: marketplaceId (required), paymentsProgramType (required).

ebay_opt_in_to_programD

Opt-in to a seller program

Inputs: request (required).

ebay_opt_out_of_programC

Opt-out of a seller program

Inputs: request (required).

ebay_pause_campaignB

Pause a running marketing campaign. Campaign can be resumed later.

Inputs: campaignId (required).

ebay_pause_item_promotionB

Pause a running item promotion. Can be resumed later.

Inputs: promotionId (required).

ebay_pause_promotionB

Pause a running promotion. Can be resumed later.

Inputs: promotionId (required).

ebay_publish_offerC

Publish an offer to create a listing

Inputs: offerId (required).

ebay_publish_offer_by_inventory_item_groupB

Publish an offer for an inventory item group (variation listing).

Required OAuth Scope: sell.inventory Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory

Inputs: request (required).

ebay_refresh_access_tokenA

Manually refresh the user access token using the stored refresh token. This is useful when you want to proactively refresh an access token before it expires, or when recovering from authentication errors. Requires that user tokens are already set (either via EBAY_USER_REFRESH_TOKEN in .env or via ebay_set_user_tokens_with_expiry). Returns the new access token and expiry time.

Inputs: no named parameters.

ebay_register_clientA

Register a third party financial application with eBay (Open Banking / PSD2). Requires valid eIDAS certificate via MTLS.

Inputs: clientSettings (required).

ebay_relist_itemA

Relist an ended fixed-price listing, optionally with modifications.

Uses the Trading API (RelistFixedPriceItem).

Required: User OAuth token.

Inputs: itemId (required), modifications.

ebay_reply_to_messageA

Reply to a buyer message in an existing conversation thread

Inputs: messageId (required), messageContent (required).

ebay_respond_to_feedbackC

Respond to feedback received from a buyer

Inputs: feedback_id, response_text, response_type, recipient_user_id.

ebay_resume_campaignA

Resume a paused marketing campaign. Campaign will start running again.

Inputs: campaignId (required).

ebay_resume_item_promotionC

Resume a paused item promotion.

Inputs: promotionId (required).

ebay_resume_promotionC

Resume a paused promotion.

Inputs: promotionId (required).

ebay_revise_listingA

Revise an existing fixed-price listing. Update quantity, price, title, description, or any other field.

Uses the Trading API (ReviseFixedPriceItem). Only send the fields you want to change.

Examples:

  • Update quantity: { "Quantity": 10 }

  • Update price: { "StartPrice": 14.99 }

  • Update title: { "Title": "New Title" }

  • Multiple fields: { "Quantity": 10, "StartPrice": 14.99 }

Required: User OAuth token.

Inputs: fields (required), itemId (required).

ebay_search_messagesC

Search for buyer-seller messages

Inputs: limit, filter, offset.

ebay_send_messageC

Send a direct message to a buyer regarding a specific transaction or inquiry. Use this to communicate about orders, answer questions, resolve issues, or provide updates.

Inputs: messageData (required).

ebay_send_offer_to_interested_buyersC

Send offer to interested buyers

Inputs: offerId (required), offerData (required).

ebay_setup_quick_campaignB

Create a quick campaign with simplified setup. Ideal for getting started fast.

Inputs: quickCampaign (required).

ebay_set_user_tokensA

Set the user access token and refresh token for authenticated API requests. These tokens should be obtained through the OAuth authorization code flow. Tokens will be persisted to disk and automatically refreshed when needed. User tokens provide higher rate limits (10,000-50,000 requests/day) compared to client credentials (1,000 requests/day).

Inputs: accessToken (required), refreshToken (required).

ebay_set_user_tokens_with_expiryA

Set user access and refresh tokens with custom expiry times. This is an enhanced version of ebay_set_user_tokens that accepts expiry times and can automatically refresh the access token if it's expired but the refresh token is valid. Useful when user provides tokens that may already be partially expired.

Inputs: accessToken (required), refreshToken (required), autoRefresh, accessTokenExpiry, +1 more.

ebay_suggest_bidsB

Get bid suggestions for an ad group. Helps optimize bid amounts based on competition.

Inputs: adGroupId (required), campaignId (required).

ebay_suggest_budgetB

Get budget suggestions for a campaign based on expected performance.

Inputs: campaignId.

ebay_suggest_itemsC

Get item suggestions for a campaign. Returns items that could perform well.

Inputs: campaignId (required).

ebay_suggest_keywordsC

Get keyword suggestions for an ad group. Returns relevant keywords based on listings.

Inputs: adGroupId (required), campaignId (required).

ebay_suggest_max_cpcB

Get maximum CPC bid suggestions for ads based on competition.

Inputs: suggestionRequest (required).

ebay_suppress_violationC

Suppress a listing violation

Inputs: listingViolationId (required).

ebay_test_notification_subscriptionB

Test a notification subscription by sending a test message

Inputs: subscription_id (required).

ebay_translateC

Translate listing text

Inputs: to (required), from (required), text (required), translationContext (required).

ebay_update_ad_bidC

Update the bid percentage for a specific ad.

Inputs: adId (required), campaignId (required), bidPercentage (required).

ebay_update_ad_groupC

Update an ad group configuration.

Inputs: adGroupId (required), campaignId (required), updateData (required).

ebay_update_ad_group_bidsB

Update default bids for an ad group.

Inputs: adGroupId (required), campaignId (required), updateData (required).

ebay_update_ad_group_keywordsC

Update keywords for an ad group.

Inputs: adGroupId (required), campaignId (required), updateData (required).

ebay_update_ad_group_negative_keywordC

Update an ad group-level negative keyword.

Inputs: adGroupId (required), campaignId (required), updateData (required), negativeKeywordId (required).

ebay_update_ad_rate_strategyC

Update the ad rate strategy for a CPS campaign.

Inputs: strategy (required), campaignId (required).

ebay_update_bidding_strategyB

Update the bidding strategy for a CPC campaign.

Inputs: strategy (required), campaignId (required).

ebay_update_campaign_budgetB

Update the daily budget for a campaign.

Inputs: budget (required), campaignId (required).

ebay_update_campaign_identificationC

Update campaign name or other identification details.

Inputs: campaignId (required), updateData (required).

ebay_update_campaign_negative_keywordC

Update a campaign-level negative keyword.

Inputs: campaignId (required), updateData (required), negativeKeywordId (required).

ebay_update_conversationC

Update a single conversation (read status, flagged, etc.)

Inputs: conversation_id (required), read, flagged.

ebay_update_custom_policyB

Update an existing custom policy

Inputs: policy (required), customPolicyId (required).

ebay_update_email_campaignC

Update an existing email campaign.

Inputs: emailCampaign (required), emailCampaignId (required).

ebay_update_fulfillment_policyC

Update an existing fulfillment policy

Inputs: policy (required), fulfillmentPolicyId (required).

ebay_update_item_price_markdown_promotionC

Update an existing item price markdown promotion.

Inputs: promotion (required), promotionId (required).

ebay_update_item_promotionB

Update an existing item promotion.

Inputs: promotion (required), promotionId (required).

ebay_update_keywordC

Update a keyword configuration.

Inputs: keywordId (required), campaignId (required), updateData (required).

ebay_update_keyword_bidC

Update the bid for a specific keyword.

Inputs: bid (required), keywordId (required), campaignId (required).

ebay_update_location_detailsB

Update location details for an inventory location

Inputs: locationDetails (required), merchantLocationKey (required).

ebay_update_notification_configC

Update notification configuration

Inputs: config (required).

ebay_update_notification_destinationC

Update a notification destination

Inputs: destination_id (required), name, status, delivery_config.

ebay_update_notification_subscriptionC

Update a notification subscription

Inputs: subscription_id (required), status, payload, destination_id.

ebay_update_offerC

Update an existing offer

Inputs: offer (required), offerId (required).

ebay_update_payment_dispute_evidenceB

Update existing evidence in a payment dispute.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Inputs: evidenceId (required), paymentDisputeId (required), files, lineItems, +1 more.

ebay_update_payment_policyB

Update an existing payment policy

Inputs: policy (required), paymentPolicyId (required).

ebay_update_return_policyC

Update an existing return policy

Inputs: policy (required), returnPolicyId (required).

ebay_update_targetingB

Update targeting configuration for a campaign.

Inputs: targeting (required), campaignId (required).

ebay_upload_payment_dispute_evidence_fileA

Upload a file as evidence for a payment dispute (e.g., shipping receipt, photos). Returns a file ID to use with add_evidence.

Required OAuth Scope: sell.fulfillment Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment

Inputs: file (required), paymentDisputeId (required).

ebay_validate_token_expiryA

Validate token expiry times and get recommendations. Checks if access/refresh tokens are expired or expiring soon, and provides actionable recommendations (e.g., refresh access token, re-authorize user).

Inputs: accessTokenExpiry (required), refreshTokenExpiry (required).

ebay_withdraw_offerC

Withdraw a published offer

Inputs: offerId (required).

ebay_withdraw_offer_by_inventory_item_groupA

Withdraw an offer for an inventory item group (variation listing).

Required OAuth Scope: sell.inventory Minimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory

Inputs: request (required).

fetchC

Fetch a specific eBay inventory item by SKU

Inputs: id (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 332 tools

    Disambiguation3/5

    With 332 tools, there is significant potential for overlap. Many tools perform similar actions (e.g., multiple create_promotion variants) but have specific descriptions that help distinguish them. However, the sheer number makes it challenging for an agent to select the correct tool without careful reading.

    Naming Consistency4/5

    The vast majority of tools follow the 'ebay_verb_noun' pattern consistently, using clear verbs like create, get, update, delete. A minor inconsistency is the presence of 'fetch' and 'search' tools that lack the ebay_ prefix, but overall the naming is predictable.

    Tool Count1/5

    332 tools is an extreme number for a single server, far exceeding typical scopes. This indicates poor modularity and likely includes many redundant or overly granular tools. It would be better to group functionality into smaller, focused servers.

    Completeness5/5

    The tool set covers an exceptionally broad range of eBay seller operations, including inventory, offers, orders, fulfillment, marketing campaigns, promotions, disputes, policies, notifications, and more. There are few obvious gaps given the comprehensive coverage.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables AI agents to manage multi-marketplace e-commerce operations by connecting to the SellerChamp API. It supports inventory reporting, cross-listing analysis, order management, and bulk updates across platforms like Amazon, eBay, and Shopify.
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      A comprehensive MCP server for Shopify Admin API integration, enabling AI assistants to manage products, orders, customers, inventory, analytics, and more through natural language.
      25 npm
      20
      MIT
    • A
      license
      C
      quality
      A
      maintenance
      Provides AI assistants with comprehensive access to eBay's Sell APIs, including 325 tools for inventory management, order fulfillment, marketing campaigns, analytics, and more.
      379
      462 npm
      199
      MIT