MCP Hub
Back to servers

ebay-mcp

An open source project for local MCP server providing AI assistants with comprehensive access to eBay's Sell APIs - 230+ tools, 99.1% API coverage, OAuth 2.0 support, and 870+ tests

Stars
8
Forks
7
Tools
7
Updated
Jan 8, 2026
Validated
Jan 9, 2026

eBay API MCP Server

npm version npm downloads Tests API Coverage License

MseeP.ai Security Assessment Badge Buy Me A Coffee

A Model Context Protocol (MCP) server providing AI assistants with comprehensive access to eBay's Sell APIs. Includes 387 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.

Click to copy the AI setup prompt
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/

⚠️ 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

  • 387 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/YosefHayim/ebay-mcp.git
cd ebay-mcp
npm install
npm run build

3. Configure

Run the interactive setup wizard:

npm run setup

Or configure manually by copying .env.example to .env and editing your credentials.


Visual Setup Guide

Follow these steps to configure OAuth authentication for higher rate limits (10k-50k requests/day):

Step 1: Copy Client ID and Client Secret

Navigate to the eBay Developer Portal and copy your App ID (Client ID) and Cert ID (Client Secret) from either Sandbox or Production environment.

Step 1 - Copy credentials from eBay Developer Portal

Add these credentials to your .env file:

EBAY_CLIENT_ID=your_app_id_here
EBAY_CLIENT_SECRET=your_cert_id_here
EBAY_ENVIRONMENT=sandbox  # or "production"

Step 2: Copy Your Redirect URL (RuName)

In the Developer Portal, go to your application's User Tokens settings and copy the RuName (eBay Redirect URL). This is required for OAuth authentication.

Step 2 - Copy RuName from eBay Sign-in Settings

Add the RuName to your .env file:

EBAY_REDIRECT_URI=your_runame_here

Step 3: Run Setup and Complete OAuth Login

Run the setup wizard which will open your browser automatically:

npm run setup

Sign in to your eBay account when prompted to authorize the application.

Step 3 - Sign in to eBay during OAuth flow

Step 4: Paste the Authorization Code

After granting permissions, you'll be redirected to a URL containing an authorization code. Copy the code parameter from the URL and paste it into the setup wizard terminal.

Step 4 - Paste authorization code into setup wizard

The setup wizard will automatically exchange the code for tokens and save your refresh token to the .env file.

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


4. Configure MCP Client

Add this server to your MCP client configuration:

Claude Desktop:

Edit your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Add the server configuration:

{
  "mcpServers": {
    "ebay": {
      "command": "npx",
      "args": ["-y", "ebay-mcp"],
      "env": {
        "EBAY_CLIENT_ID": "your_client_id",
        "EBAY_CLIENT_SECRET": "your_client_secret",
        "EBAY_ENVIRONMENT": "sandbox",
        "EBAY_REDIRECT_URI": "your_runame"
      }
    }
  }
}

Alternative: Use locally installed version

If you installed from source:

{
  "mcpServers": {
    "ebay": {
      "command": "node",
      "args": ["/absolute/path/to/ebay-mcp/build/index.js"],
      "env": {
        "EBAY_CLIENT_ID": "your_client_id",
        "EBAY_CLIENT_SECRET": "your_client_secret",
        "EBAY_ENVIRONMENT": "sandbox"
      }
    }
  }
}

5. 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

Create a .env file with your eBay credentials:

EBAY_CLIENT_ID=your_client_id
EBAY_CLIENT_SECRET=your_client_secret
EBAY_ENVIRONMENT=sandbox  # or "production"
EBAY_REDIRECT_URI=your_runame

# Optional: For higher rate limits (10k-50k req/day)
EBAY_USER_REFRESH_TOKEN=your_refresh_token

OAuth Authentication

Client Credentials (Automatic):

  • Default authentication method
  • 1,000 requests/day
  • No setup required beyond client ID and secret

User Tokens (Recommended for Production):

  • 10,000-50,000 requests/day
  • Use ebay_get_oauth_url tool to generate authorization URL
  • Add EBAY_USER_REFRESH_TOKEN to .env after OAuth flow
  • 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:

ClientPlatformConfig PathStatus
Claude DesktopmacOS, Windows, Linux~/Library/Application Support/Claude/claude_desktop_config.json✅ Auto-configured
Cursor IDEmacOS, Windows, Linux~/.cursor/mcp.json✅ Auto-configured
Zed EditormacOS, Windows, Linux~/.config/zed/settings.json✅ Auto-configured
ClineVSCode Extension~/...globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json✅ Auto-configured
Continue.devVSCode, JetBrains~/.continue/config.json✅ Auto-configured
Windsurf (Codeium)macOS, Windows, Linux~/.codeium/windsurf/mcp_config.json✅ Auto-configured
Roo CodeVSCode Extension~/...globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json✅ Auto-configured
Claude Code CLITerminal~/.claude.json✅ Auto-configured
Amazon Q DeveloperAWS~/.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  # 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 387 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/YOUR_USERNAME/ebay-mcp.git
cd ebay-mcp
npm install
npm run setup      # Interactive setup wizard
npm run build
npm test

Commands Reference

CommandDescription
npm run buildCompile TypeScript to JavaScript
npm startRun the MCP server
npm run devRun server with hot reload
npm testRun test suite
npm run setupInteractive setup wizard
npm run syncSync specs, generate types, find missing endpoints
npm run diagnoseCheck configuration and connectivity
npm run checkRun typecheck + lint + format check
npm run fixAuto-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.

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 eBay API status: https://developer.ebay.com/support/api-status
  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. Review GitHub Discussions
  3. 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

Documentation

Support

License

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

Acknowledgments


Reviews

No reviews yet

Sign in to write a review