Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
MCP server for eBay Sell APIs
This project gives AI assistants direct access to eBay Sell APIs through MCP. It includes OAuth, automatic token refresh, rate-limit handling, and tool-family gating so you can load only the eBay actions you need.

Builders who want their agent to read, manage, and report on eBay inventory, orders, and marketing from a local MCP server.
You can ask your agent to work with eBay data and seller workflows without wiring the API yourself.
What it does
Sell API coverage
Exposes 299 tools across inventory, fulfillment, marketing, analytics, metadata, taxonomy, and more.
OAuth and token refresh
Handles user-token auth, refresh, and fallback between user tokens and client credentials.
Tool gating
Lets you expose all tools, a named family set, or dynamic discovery tools only.
Local transports
Runs over stdio or local HTTP with no cloud relay.
Client setup wizard
`npm run setup` configures credentials, OAuth, and supported MCP clients.
Interactive MCP Apps UI
Optional table, card, chart, and stat views for read tools on hosts that support MCP Apps.
How to get it
- 1Run
npm install -g ebay-mcp # from npm (recommended)
- 2Or from source
git clone https://github.com/YosefHayim/ebay-mcp.git cd ebay-mcp && npm install && npm run build
- 3Run
npm run setup
README
The eBay MCP server — give Claude, Cursor, and any AI assistant full access to eBay's Sell APIs. 299 tools for inventory, orders, marketing, and analytics, running locally with your own keys.
Unofficial, open-source project — not affiliated with, authorized, or endorsed by eBay Inc.
English · 简体中文 · Español · Português (BR) · 日本語 · 한국어 · Français · Deutsch · Русский
eBay MCP is a local Model Context Protocol server that connects AI assistants — Claude Desktop, Claude Code, Cursor, Cline, Windsurf, Zed, Continue.dev, Roo Code, and Amazon Q Developer — directly to eBay's Sell APIs. It exposes 299 tools spanning 100% of eBay's Sell API surface (270 unique endpoints) for inventory management, order fulfillment, promoted-listings marketing, analytics, and developer tooling. Everything runs on your machine over STDIO or local HTTP — no cloud relay, and your eBay credentials never leave your computer.
Disclaimer: Unofficial, third-party project — not affiliated with or endorsed by eBay Inc. Provided "as is" without warranty. You are responsible for complying with eBay's API License Agreement and data-handling requirements, keeping your credentials secure, and staying within rate limits. Test in sandbox before production. See LICENSE, SECURITY.md, and EBAY_COMPLIANCE.md.
Table of contents
- Features
- Capability map
- eBay MCP vs. the raw eBay API
- One-click AI setup
- Quick start
- Demo
- Configuration
- Available tools
- Interactive UI (MCP Apps) — beta
- Usage examples
- Scope and safety
- Logging & troubleshooting
- FAQ
- Contributing
- Resources
- License
- Contributors
Features
- 299 eBay API tools — 100% coverage of the eBay Sell APIs across inventory, orders, marketing, analytics, metadata, taxonomy, and developer tooling.
- 9 AI clients, auto-configured — Claude Desktop, Cursor, Zed, Cline, Continue.dev, Windsurf, Roo Code, Claude Code CLI, and Amazon Q Developer.
- OAuth 2.0 built in — full user-token management with automatic refresh, and smart fallback from user tokens (10k–50k req/day) to client credentials (1k req/day).
- Resilient by default — automatic retry with exponential backoff on
429rate limits, and consistent, loud error surfacing. - Type-safe — TypeScript end to end, Effect-backed tool input validation, and OpenAPI-generated types.
- Local-first & private — runs over STDIO or local HTTP; your credentials and data never leave your machine.
- Sandbox and production — switch environments with a single variable.
- One-command setup —
npm run setupconfigures credentials, OAuth, and your MCP client, with a browser auto-opened for the OAuth flow. - Well tested — 1,000+ automated tests run in CI on every change through GitHub Actions.
Capability map
Use this map when deciding which tool family to expose, or when asking an assistant what it can do. The family names match EBAY_MCP_TOOLS, so you can run with all tools, dynamic discovery, or only the families needed for a specific workflow.
| Family | What it unlocks | Good first request |
|---|---|---|
account | Business policies, fulfillment policies, payment policies, return policies, sales tax, subscriptions, and programs | "Show my eBay fulfillment policies." |
inventory | Inventory items, offers, inventory locations, item groups, bulk offer flows, and SKU/location mapping | "List my active inventory items and their available quantity." |
fulfillment | Orders, shipping fulfillments, refunds, payment disputes, and dispute evidence | "Show unfulfilled orders from the last 7 days." |
browse | Sold/completed listing search (Finding API) for pricing comps | "What have similar items sold for recently?" |
marketing | Promoted Listings campaigns, ads, promotions, bidding, and marketing reports | "List my active promoted listing campaigns." |
analytics | Traffic reports, seller standards, and customer-service metrics | "Show my seller standards profile." |
communication | Buyer-seller messaging, negotiations, notifications, and feedback | "Show recent buyer messages that need a response." |
metadata / taxonomy | Category trees, aspects, item conditions, return-policy metadata, tax jurisdictions, and vehicle compatibility | "Find required item aspects for this category." |
other | Identity, VeRO, translation, and international shipping support APIs (Compliance tools remain but report eBay's 2026-03-30 decommission) | "Show my current seller identity details." |
developer / token-management | Rate limits, signing keys, OAuth URLs, token refresh, and diagnostics | "Check my eBay API rate limits." |
trading | Legacy XML fixed-price listing create, revise, relist, and end operations | "Create a fixed-price listing draft from this SKU." |
connector | ChatGPT connector search/fetch tools over the eBay MCP catalogue | "Search the eBay tool catalogue for order tools." |
Listing preflight: required item specifics
Before calling ebay_create_or_replace_inventory_item, ebay_create_offer, or
ebay_get_listing_fees, fetch the live requirements for the selected category:
ebay_get_default_category_tree_id → ebay_get_category_suggestions →
ebay_get_item_aspects_for_category
The aspects response identifies required and recommended item specifics. Put every required aspect on the inventory item before creating its offer. Requirements vary by category and marketplace, so re-run the lookup when either changes; do not rely on examples or a fixed global fallback value.
eBay MCP vs. the raw eBay API
Both talk to the same eBay endpoints — the difference is everything you'd otherwise build yourself.
| eBay MCP Server | Raw eBay REST API | |
|---|---|---|
| Interface | Natural language through your AI assistant | Hand-written HTTP requests and JSON parsing |
| OAuth & token refresh | Built in, with automatic refresh | You implement and maintain it |
| Rate-limit handling | Automatic retry with exponential backoff | Manual 429 handling and backoff |
| Input validation | Effect-backed schemas + TypeScript types on every tool | None — you validate your own payloads |
| Setup | One wizard (npm run setup) | Per-call auth, headers, and marketplace wiring |
| AI client support | 9 clients auto-configured | Not applicable |
| API coverage | 299 tools across 100% of the Sell APIs, ready to call | Build each request from the docs |
| Hosting | Runs locally, no cloud relay | Your own infrastructure |
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/
Quick start
1. Get eBay credentials
- Create a free eBay Developer Account.
- Generate application keys in the Developer Portal.
- Save your Client ID and Client Secret.
2. Install
npm install -g ebay-mcp # from npm (recommended)
Or from source:
git clone https://github.com/YosefHayim/ebay-mcp.git
cd ebay-mcp && npm install && npm run build
3. Run the setup wizard
npm run setup
The wizard configures your eBay credentials, sets up OAuth (for higher rate limits), auto-detects and configures your MCP client, and saves everything automatically.
4. Verify with a read-only request
Restart your MCP client and ask:
"Check my eBay API rate limits."
That should call ebay_get_rate_limits or ebay_get_user_rate_limits and confirms the server, credentials, and MCP client wiring without changing seller data.
5. Use
Start managing eBay through your AI assistant. Begin with read-only questions, then move to mutating inventory, order, or campaign tools after you have confirmed the target environment is sandbox or production.
📸 Visual setup walkthrough (eBay Developer Portal)
The setup wizard (npm run setup) handles OAuth automatically. Here's where to find your credentials in the eBay Developer Portal:
Step 1 — In the Developer Portal, copy your App ID (Client ID) and Cert ID (Client Secret):

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

Step 3 — Run npm run setup. It opens your browser for OAuth login and guides you through eBay sign-in:

Step 4 — Paste the authorization code from the callback URL when prompted:

The wizard exchanges the code for tokens, saves them, and configures your MCP client. You now have user-token authentication (10k–50k requests/day instead of the default 1k/day).
Demo
See the eBay MCP Server in action with Claude Desktop:
https://github.com/user-attachments/assets/0173c8df-221c-4943-a4ce-cd20bce79f4b
Configuration
Environment variables, tool exposure, auth & client compatibility
📖 Full reference — every environment variable, OAuth step, and scope — is in the Configuration Guide.
npm run setupwrites the.envfor you; the variables below are for reference.
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 per tool)
# EBAY_SITE_ID=0 # Trading API site override; defaults from EBAY_MARKETPLACE_ID
EBAY_CONTENT_LANGUAGE=en-US # default request content language
EBAY_USER_REFRESH_TOKEN=your_token # for higher rate limits
EBAY_MCP_UI=on # interactive MCP Apps views (beta); "off" forces plain JSON
EBAY_MCP_TOOLS=all # tool exposure: "all", "dynamic", or a family list (see below)
EBAY_READ_ONLY=false # when true, only register read-only tools (gets/lists/searches)
# HTTP deploy (optional — Docker / Railway / self-hosted):
# MCP_HOST=0.0.0.0 # default is 0.0.0.0 when PORT is set
# MCP_PORT=3000 # preferred over platform PORT
# MCP_AUTH_TOKEN=secret # static Bearer for HTTP MCP (skips OAuth verifier)
Tool exposure (EBAY_MCP_TOOLS)
By default all tools are advertised to the agent at once. On a long conversation that catalogue is a meaningful slice of the context window, so two opt-in modes let you shrink it:
| Value | Behavior | Works on |
|---|---|---|
all (default, or unset) | Every tool advertised at startup. | every host |
dynamic | Only three discovery tools are visible (list_ebay_tools, enable_ebay_tools, disable_ebay_tools). The agent searches the catalogue and loads only the tools it needs; they then appear natively. | hosts that honor tools/listChanged (e.g. Claude) |
inventory,fulfillment,… | Registers only the named families (listed below), frozen for the session. | every host (incl. ChatGPT, Cursor) |
The family list is literal — you get exactly what you name. ChatGPT connectors need the connector family (its search/fetch tools); add it explicitly, e.g. EBAY_MCP_TOOLS=connector,inventory. An unknown family name fails fast at startup with the valid list. Valid families: connector, token-management, account, inventory, fulfillment, marketing, analytics, metadata, taxonomy, communication, browse, other, developer, trading.
Authentication & rate limits
| Mode | Daily limit | Best for | Setup |
|---|---|---|---|
| Client credentials (default) | 1,000 req/day | Development, testing | Automatic with Client ID + Secret |
| User token (recommended) | 10k–50k req/day | Production, high volume | OAuth via npm run setup |
User-token limits vary by account tier (Individual 10k · Commercial 25k · Enterprise 50k+). On a 429, the server retries with exponential backoff and surfaces the error. See the Configuration Guide and OAuth Quick Reference for details, and monitor usage in the Developer Portal.
MCP client compatibility
Auto-configured by npm run setup. Requires Node.js ≥ 20 and MCP protocol 1.0+ over STDIO (default) or HTTP.
| Client | Platform | Config path |
|---|---|---|
| Claude Desktop | macOS, Windows, Linux | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Cursor IDE | macOS, Windows, Linux | ~/.cursor/mcp.json |
| Zed Editor | macOS, Windows, Linux | ~/.config/zed/settings.json |
| Cline | VS Code extension | ~/...globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json |
| Continue.dev | VS Code, JetBrains | ~/.continue/config.json |
| Windsurf (Codeium) | macOS, Windows, Linux | ~/.codeium/windsurf/mcp_config.json |
| Roo Code | VS Code extension | ~/...globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json |
| Claude Code CLI | Terminal | ~/.claude.json |
| Amazon Q Developer | AWS | ~/.aws/amazonq/mcp.json |
Available tools
299 tools by category (100% Sell API coverage)
299 tools, 100% Sell API coverage, organized by category. Each link points to the tool definitions and handlers in src/tools/categories/:
| Category | What you can do |
|---|---|
| Connector | ChatGPT connector search/fetch tools over the eBay MCP catalogue |
| Account | Business, fulfillment, payment, and return policies; programs; subscriptions; sales tax |
| Inventory | Inventory items, offers, locations, item groups, bulk operations, SKU/location mapping |
| Fulfillment | Orders, shipping, refunds, disputes, payment-dispute evidence |
| Marketing | Promoted-listings campaigns, ads, promotions, bidding, bulk operations |
| Analytics | Traffic reports, seller standards, customer-service metrics |
| Communication | Buyer–seller messaging, negotiations, notifications, feedback |
| Metadata | Return policies, sales-tax jurisdictions, automotive compatibility |
| Taxonomy | Category trees, item aspects, item conditions |
| Other | Identity, VeRO, translation, and international shipping support APIs (Compliance tools report eBay decommission) |
| Trading (legacy XML) | Fixed-price listing create, revise, relist, end |
| Developer | Rate limits, signing keys, client registration |
| Token Management | OAuth URL generation and token management |
Example tools: ebay_get_inventory_items, ebay_get_offers_by_skus, ebay_get_orders, ebay_create_offer, ebay_get_campaigns, ebay_get_oauth_url.
For the complete machine-readable index, see llms.txt.
Interactive UI (MCP Apps)
Interactive table, card, chart & stat views (beta)
Beta — this feature is new and evolving alongside the MCP Apps spec, and host support is still rolling out. It is opt-in and falls back to plain JSON, so it never breaks existing clients. Toggle it with
EBAY_MCP_UI(see Configuration).
On hosts that support MCP Apps, common read tools render their results as interactive views instead of raw JSON — a sortable table, a detail card, a chart, or a stat grid — using the host's own theme. Everywhere else, the exact same tools return plain JSON, so nothing breaks. It is built on the official MCP Apps SDK (@modelcontextprotocol/ext-apps), the extension that lets MCP servers ship interactive UI to conversational clients.
- Opt-in and host-gated. Views are advertised only to clients that announce the MCP Apps capability (e.g. Claude). Hosts without it (e.g. Cursor) silently get JSON.
- Kill-switch. Set
EBAY_MCP_UI=offto force plain JSON everywhere, even on capable hosts. - Token-cheap. Each view's HTML is fetched once by the host out of band (never into the model's context); the model only ever sees a one-line summary plus the structured data it would have received anyway.
- Read-only. Views only ever trigger read tools (drill into a row, page, refresh) — they never mutate your eBay data.
15 core-workflow tools opt in today, across four archetypes:
| Archetype | Tools |
|---|---|
| Table | ebay_get_orders, ebay_get_shipping_fulfillments, ebay_get_offers, ebay_get_inventory_items, ebay_get_inventory_locations, ebay_get_payment_dispute_summaries |
| Card | ebay_get_order, ebay_get_offer, ebay_get_inventory_item, ebay_get_payment_dispute, ebay_get_seller_standards_profile |
| Chart | ` |
Files in the repo
- .changeset
- .github
- .husky
- docs
- public
- src
- tests
- ui
- .dockerignore
- .editorconfig
- .env.example
- .gitignore
- .npmignore
- .npmrc
- .nvmrc
- AGENTS.md
- ARCHITECTURE.md
- biome.json
- CHANGELOG.md
- CLAUDE.md
- CODE_OF_CONDUCT.md
- CODE-STYLE.md
- CONTEXT.md
- context7.json
- CONTRIBUTING.md
- docker-compose.yml
- Dockerfile
- EBAY_COMPLIANCE.md
- kilo.jsonc
- LANGUAGE.md
- LICENSE
- llms.txt
- package.json
- pnpm-lock.yaml
- PROJECT.md
- README.de.md
- README.es.md
- README.fr.md
- README.ja.md
- README.ko.md
- README.md
- README.pt-BR.md
- README.ru.md
- README.zh-CN.md
- SECURITY.md
- tsconfig.base.json
- tsconfig.json
- vitest.config.cts
- vitest.integration.config.cts
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More connectors
High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code
Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.
Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.
Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.
