ebay-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EBAY_MCP_SANDBOX_APP_ID | Yes | Sandbox App ID (Client ID) from eBay developer | |
| EBAY_MCP_SANDBOX_DEV_ID | Yes | Developer Account Dev ID | |
| EBAY_MCP_SANDBOX_CERT_ID | Yes | Sandbox Cert ID (Client Secret) - recommended to set via env var for security | |
| EBAY_MCP_ALLOW_HIGH_VALUE | No | Set to '1' to allow bids/buying over $500 per call |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| server_infoA | Return server version, active host, and configuration locations. The |
| list_hostsA | List every configured host with its status (default flag and cert availability). Useful for diagnosing why a tool call against a particular host might fail before you make the call. |
| searchA | Search eBay items via the Browse API. Args:
query: keyword search string. Required.
category_id: numeric eBay category ID to restrict the search.
condition: one of NEW, LIKE_NEW, NEW_OTHER, USED_EXCELLENT,
USED_VERY_GOOD, USED_GOOD, USED_ACCEPTABLE, FOR_PARTS_OR_NOT_WORKING,
MANUFACTURER_REFURBISHED, CERTIFIED_REFURBISHED, or several other
refurbished tiers. Case-sensitive.
min_price: minimum item price (in Returns: dict with: - host: which host was actually targeted - total: total matching items per eBay - limit, offset, next_offset (None when there's no next page) - hits: list of item summaries (item_id, title, price, currency, condition, seller, image_url, ends_at, buying_options, web_url, bid_count if applicable) |
| get_itemA | Fetch full details for a single eBay item by ID. Args:
item_id: the eBay item ID (e.g., "v1|353528728623|0"). Get these from
search() results.
marketplace: eBay marketplace ID (default "EBAY_US").
host: which configured host to use. Defaults to config's Returns: Full item dict including description, shipping options, seller details, return terms, item location, and the standard summary fields. If the item doesn't exist or has ended, returns {"item_id": item_id, "host": host, "missing": true}. |
| get_watchlistA | Return the authenticated user's watched items. Uses Trading API Args: limit: items per page (1-200). Default 100. offset: pagination offset. Trading API pages from 1; we translate. host: configured host name. Defaults to default_host. Returns:
dict with |
| get_active_bidsA | Return auctions where the user has a currently-active bid. Trading API GetMyeBayBuying.BidList. Includes both winning and outbid items still in their bidding period. Same response shape as |
| get_won_itemsA | Return items the user won at auction or bought via Buy It Now. Trading API GetMyeBayBuying.WonList. This is your effective "purchase history" for the eBay-native default lookback window (eBay shows the last 30 days by default; older items roll off the WonList container). Same response shape as |
| get_lost_itemsA | Return auctions where the user bid but did not win. Trading API GetMyeBayBuying.LostList. Default lookback ~30 days; older items roll off. Same response shape as |
| add_to_watchlistA | Add an item to the authenticated user's watchlist. Trading API Args:
item_id: numeric eBay item ID (from Returns:
dict with |
| remove_from_watchlistA | Remove an item from the authenticated user's watchlist. Trading API Args: item_id: numeric eBay item ID currently on the watchlist. host: configured host. Defaults to default_host. Returns:
dict with |
| start_user_authA | Begin OAuth2 user authentication for buyer-side eBay operations. Watchlist, MyeBay reads, bidding, and buying all require a user token.
This tool returns an Most workflows only run this once per host; tokens persist 18 months and auto-refresh. Args:
host: which configured host to authenticate against. Defaults to
config's Returns:
dict with |
| complete_user_authA | Finish OAuth2 user auth by exchanging the authorization code for tokens. The Args:
code: the authorization code from eBay's redirect URL.
state: optional — the state value from the redirect URL. If provided,
must match what start_user_auth stored. Mismatch returns a
structured refusal payload.
host: which configured host to authenticate against. Defaults to
config's Returns: On success: {host, authenticated: true, access_expires_at, refresh_expires_at} On state mismatch: {refused: true, reason: "state_mismatch", host, message: ...} |
| place_bidA | Place a proxy bid on an eBay auction. Trading API PlaceOffer with Action=Bid. eBay treats max_bid_amount as a proxy ceiling — it bids the minimum needed to outbid the current high bidder, and continues raising up to max_bid_amount as competing bids come in. PRODUCTION HOST WARNING: when the active host is "production", a successful call commits real money on eBay. Inspect server_info() or list_hosts() before committing. Args:
item_id: numeric eBay item ID. Get from search() or get_item().
max_bid_amount: the proxy bid ceiling in Returns: On success: dict with host, item_id, action="Bid", amount, currency, placed=True, current_price, minimum_to_outbid, high_bidder, and (on production) a warning field. On safety-gate failure: structured refusal payload (refused=True, reason, message, plus the offending values). Raises ValueError on empty item_id, non-positive amounts, etc. On eBay-side errors (listing ended, currency mismatch, insufficient bid, etc.) raises TradingApiError. |
| buy_nowA | Purchase a Buy It Now listing immediately at the listed price. Trading API PlaceOffer with Action=Purchase. The buyer commits to pay the listing's BIN price; eBay creates the order on success. PRODUCTION HOST WARNING: when the active host is "production", a successful call commits real money on eBay. Inspect server_info() or list_hosts() before committing. Args: item_id: numeric eBay item ID. Get from search() or get_item(). confirm_amount: must equal the listing's Buy-It-Now price exactly. The repeated dollar amount is a safety gate against stale prices or typos. Look up the current price with get_item() right before calling. quantity: number of units to purchase (default 1). Multi-quantity BIN listings can have a per-buyer limit; eBay rejects with TradingApiError if violated. currency: ISO currency code matching the listing (default "USD"). max_bid_override: optional ceiling that authorizes amounts above the $500 per-call safety cap. Pass a value >= confirm_amount to bypass the cap for this call. host: configured host name. Defaults to default_host. Returns: On success: dict with host, item_id, action="Purchase", amount, currency, quantity, placed=True, and (on production) a warning. On safety-gate failure: structured refusal payload. Raises ValueError / TradingApiError as in place_bid. |
| make_best_offerA | Submit a Best Offer on a listing that has Best Offer enabled. Trading API PlaceOffer with Action=BestOffer. The seller can accept, counter, or decline; this call only places the offer. PRODUCTION HOST WARNING: when the active host is "production" and the seller accepts, the offer becomes a binding sale at the offer amount. Args:
item_id: numeric eBay item ID. Must have Best Offer enabled —
check Returns: On success: dict with host, item_id, action="BestOffer", amount, currency, quantity, placed=True, optionally best_offer_id (for follow-up via Trading GetBestOffer / Accept flows), and (on production) a warning. On safety-gate failure: structured refusal payload. Raises ValueError / TradingApiError as in place_bid. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/acato/ebay-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server