eBayCAUTION
Local MCP server that connects AI assistants to eBay seller APIs for listings, orders, and marketing, with OAuth setup.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
The eBay MCP server — give Claude, Cursor, and any AI assistant full access to eBay's Sell APIs. 384 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.
392ab1932424OBSERVED · 2026-10-07Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add ebay-mcp --env EBAY_APP_ACCESS_TOKEN=${EBAY_APP_ACCESS_TOKEN} --env EBAY_CLIENT_SECRET=${EBAY_CLIENT_SECRET} --env EBAY_MCP_DISABLE_AUTH_HEADER=${EBAY_MCP_DISABLE_AUTH_HEADER} --env EBAY_OAUTH_CALLBACK_PORT=${EBAY_OAUTH_CALLBACK_PORT} -- npx -y [email protected]{
"mcpServers": {
"ebay-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"EBAY_APP_ACCESS_TOKEN": "${EBAY_APP_ACCESS_TOKEN}",
"EBAY_CLIENT_SECRET": "${EBAY_CLIENT_SECRET}",
"EBAY_MCP_DISABLE_AUTH_HEADER": "${EBAY_MCP_DISABLE_AUTH_HEADER}",
"EBAY_OAUTH_CALLBACK_PORT": "${EBAY_OAUTH_CALLBACK_PORT}"
}
}
}
}Exposed tools (200)
212 read · 118 write · 32 destructive. Blast radius: 32 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
disable_ebay_tools | write | |
ebay_accept_payment_dispute | read | Accept a payment dispute and allow eBay to refund the buyer. Use this when you agree with the buyer claim.\n\nRequired OAuth Scope: sell.fulfillment\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment |
ebay_add_payment_dispute_evidence | write | Add evidence to support your case in a payment dispute. Provide evidence files and supporting information.\n\nRequired OAuth Scope: sell.fulfillment\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment |
ebay_add_store_category | write | Add one custom category to the eBay Store (Stores API addStoreCategory). Pass categoryName and optionally destinationParentCategoryId (omit or -999 for top level) and listingDestinationCategoryId. ${CATEGORY_TASK_NOTE} ${STORE_NOTE} |
ebay_bulk_cancel_packages | read | Cancel multiple packages in one request |
ebay_bulk_confirm_packages | read | Confirm multiple packages in one request |
ebay_bulk_create_ads_by_inventory_reference | write | Bulk create ads by inventory reference through the eBay Marketing API. |
ebay_bulk_create_ads_by_listing_id | write | Bulk create ads by listing id through the eBay Marketing API. |
ebay_bulk_create_keyword | write | Bulk create keyword through the eBay Marketing API. |
ebay_bulk_create_negative_keyword | write | Bulk create negative keyword through the eBay Marketing API. |
ebay_bulk_create_or_replace_inventory_item | write | Bulk create or replace multiple inventory items |
ebay_bulk_create_or_replace_sales_tax | write | Bulk create or replace sales tax tables |
ebay_bulk_delete_ads_by_inventory_reference | destructive | Bulk delete ads by inventory reference through the eBay Marketing API. |
ebay_bulk_delete_ads_by_listing_id | destructive | Bulk delete ads by listing id through the eBay Marketing API. |
ebay_bulk_delete_packages | destructive | Delete multiple packages in one request |
ebay_bulk_get_inventory_item | read | Bulk get multiple inventory items |
ebay_bulk_migrate_listing | read | Bulk migrate listings to the inventory model |
ebay_bulk_publish_offer | write | Bulk publish multiple offers |
ebay_bulk_update_ads_bid_by_inventory_reference | write | Bulk update ads bid by inventory reference through the eBay Marketing API. |
ebay_bulk_update_ads_bid_by_listing_id | write | Bulk update ads bid by listing id through the eBay Marketing API. |
ebay_bulk_update_ads_status | write | Bulk update ads status through the eBay Marketing API. |
ebay_bulk_update_ads_status_by_listing_id | write | Bulk update ads status by listing id through the eBay Marketing API. |
ebay_bulk_update_conversation | write | Bulk update multiple conversations. Each entry sets conversationStatus (ACTIVE, ARCHIVE, DELETE, READ, UNREAD) for a conversationId. |
ebay_bulk_update_keyword | write | Bulk update keyword through the eBay Marketing API. |
ebay_bulk_update_negative_keyword | write | Bulk update negative keyword through the eBay Marketing API. |
ebay_bulk_update_price_quantity | write | Bulk update price and quantity for multiple offers |
ebay_cancel_bundle | read | Cancel a bundle by ID |
ebay_cancel_package | read | Cancel a package by ID |
ebay_cancel_shipment | destructive | Cancel a shipment and delete its shipping label; eBay refunds the totalShippingCost to the billing agreement (Logistics API cancelShipment). Fails once the label has been used. Returns the shipment with its cancellation status. ${LOGISTICS_ACCESS_NOTE} |
ebay_clear_tokens | destructive | Clear all stored OAuth tokens (both user tokens and client credentials). This will require re-authentication for subsequent API calls. |
ebay_clone_campaign | read | Clone campaign through the eBay Marketing API. |
ebay_clone_package | write | Clone a package to create a duplicate |
ebay_confirm_package | read | Confirm a package for shipping |
ebay_contest_payment_dispute | read | Contest a payment dispute by providing evidence. Use this when you disagree with the buyer claim and want to provide proof.\n\nRequired OAuth Scope: sell.fulfillment\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment |
ebay_convert_date_to_timestamp | read | Convert a date string or number to Unix timestamp (milliseconds). Supports ISO 8601 dates, Unix timestamps (seconds or milliseconds), and relative time (e.g., |
ebay_create_ad_by_listing_id | write | Create ad by listing id through the eBay Marketing API. |
ebay_create_ad_group | write | Create ad group through the eBay Marketing API. |
ebay_create_address_preference | write | Create an address preference for international shipping |
ebay_create_ads_by_inventory_reference | write | Create ads by inventory reference through the eBay Marketing API. |
ebay_create_bundle | write | Create a bundle of packages for international shipping |
ebay_create_calculated_shipping_rules | write | Create calculated combined-shipping rules for listings that use calculated shipping (Account API v2 createCalculatedShippingRules): shippingRules.calculatedShippingRule (weight/item/cost-based discounts), calculatedHandlingRule, and/or combinedDuration. ${COMBINED_RULES_NOTE} |
ebay_create_campaign | write | Create campaign through the eBay Marketing API. |
ebay_create_complaint | write | Create a complaint for international shipping issues |
ebay_create_consign_preference | write | Create a consign preference for international shipping |
ebay_create_custom_policy | write | Create a new custom policy |
ebay_create_document | write | Stage a listing document with documentType and languages. Returns documentId for ebay_upload_document. Requires sell.inventory. |
ebay_create_document_from_url | write | Create a listing document from an HTTPS URL: PDF, JPEG/JPG or PNG up to 10 MiB. Check ebay_get_document for ACCEPTED before attaching it to a listing. Requires sell.inventory. |
ebay_create_email_campaign | write | Create email campaign through the eBay Marketing API. |
ebay_create_flat_shipping_rules | write | Create flat-rate combined-shipping rules (Account API v2 createFlatShippingRules): shippingRules.flatShippingRule and/or combinedDuration. ${COMBINED_RULES_NOTE} |
ebay_create_fulfillment_policy | write | Create a new fulfillment policy.\n\n |
ebay_create_image_from_url | write | Create an EPS image from an HTTPS URL. Returns imageId, Location and the complete image payload, including EPS URLs. Requires sell.inventory. |
ebay_create_inventory_location | write | Create an inventory location |
ebay_create_item_price_markdown_promotion | write | Create item price markdown promotion through the eBay Marketing API. |
ebay_create_item_promotion | write | Create item promotion through the eBay Marketing API. |
ebay_create_keyword | write | Create keyword through the eBay Marketing API. |
ebay_create_listing | write | Create a new fixed-price listing or auction.\n\nUses the Trading API: AddFixedPriceItem for format FIXED_PRICE (default) and AddItem with ListingType Chinese for format AUCTION. Requires complete item details.\n\n${AUCTION_ITEM_RULES} Reserve prices carry an eBay fee.\n\nRequired: User OAuth token. |
ebay_create_negative_keyword | write | Create negative keyword through the eBay Marketing API. |
ebay_create_notification_destination | write | Create a notification destination |
ebay_create_notification_subscription | write | Create a notification subscription |
ebay_create_notification_subscription_filter | write | Create a filter for a notification subscription |
ebay_create_or_replace_inventory_item | write | Create or replace an inventory item.\n\nRequired OAuth Scope: sell.inventory\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory |
ebay_create_or_replace_inventory_item_group | write | Create or replace an inventory item group |
ebay_create_or_replace_product_compatibility | write | Create or replace product compatibility for an inventory item |
ebay_create_or_replace_sales_tax | write | Create or replace sales tax table for a jurisdiction |
ebay_create_or_replace_sku_location_mapping | write | Create or replace SKU location mapping for a listing. Maps a SKU to fulfillment center locations.\n\nRequired OAuth Scope: sell.inventory\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory |
ebay_create_package | write | Create a package for international shipping |
ebay_create_payment_policy | write | Create a new payment policy |
ebay_create_promotional_shipping_rule | write | Create the promotional combined-shipping rule, e.g. discounted or free shipping above an order amount or item count (Account API v2 createPromotionalShippingRule): shippingRules.promotionalShippingRule and/or combinedDuration. ${COMBINED_RULES_NOTE} |
ebay_create_report_task | write | Create report task through the eBay Marketing API. |
ebay_create_return_policy | write | Create a new return policy |
ebay_create_shipment_from_shipping_quote | write | Purchase postage: create a shipment and its shipping label from one rate of a shipping quote (Logistics API createFromShippingQuote). This charges the seller |
ebay_create_shipping_fulfillment | write | Create a shipping fulfillment for an order.\n\nRequired OAuth Scope: sell.fulfillment\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment |
ebay_create_signing_key | write | 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. |
ebay_create_vero_report | write | 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. |
ebay_delete_ad | destructive | Delete ad through the eBay Marketing API. |
ebay_delete_ads_by_inventory_reference | destructive | Delete ads by inventory reference through the eBay Marketing API. |
ebay_delete_campaign | destructive | Delete campaign through the eBay Marketing API. |
ebay_delete_email_campaign | destructive | Delete email campaign through the eBay Marketing API. |
ebay_delete_feed_schedule | destructive | Delete a Feed API schedule so it stops generating reports. This cannot be undone. ${SCHEDULE_SCOPE_NOTE} |
ebay_delete_fulfillment_policy | destructive | Delete a fulfillment policy |
ebay_delete_inventory_item | destructive | Delete an inventory item by SKU.\n\nRequired OAuth Scope: sell.inventory\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory |
ebay_delete_inventory_item_group | destructive | Delete an inventory item group |
ebay_delete_inventory_location | destructive | Delete an inventory location |
ebay_delete_item_price_markdown_promotion | destructive | Delete item price markdown promotion through the eBay Marketing API. |
ebay_delete_item_promotion | destructive | Delete item promotion through the eBay Marketing API. |
ebay_delete_notification_destination | destructive | Delete a notification destination |
ebay_delete_notification_subscription | destructive | Delete a notification subscription |
ebay_delete_notification_subscription_filter | destructive | Delete a subscription filter |
ebay_delete_offer | destructive | Delete an offer |
ebay_delete_package | destructive | Delete a package by ID |
ebay_delete_payment_policy | destructive | Delete a payment policy |
ebay_delete_product_compatibility | destructive | Delete product compatibility for an inventory item |
ebay_delete_report_task | destructive | Delete report task through the eBay Marketing API. |
ebay_delete_return_policy | destructive | Delete a return policy |
ebay_delete_sales_tax | destructive | Delete sales tax table for a jurisdiction |
ebay_delete_sku_location_mapping | destructive | Delete SKU location mapping for a listing. Removes fulfillment center location mappings for a SKU.\n\nRequired OAuth Scope: sell.inventory\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory |
ebay_delete_store_category | destructive | Delete one custom eBay Store category (Stores API deleteStoreCategory). Pass the store categoryId and optionally listingDestinationCategoryId; active listings in or under the category move there, or to the store |
ebay_disable_inventory_location | write | Disable an inventory location |
ebay_disable_notification_subscription | write | Disable a notification subscription |
ebay_download_post_order_document | write | Download a post-order document as an embedded PDF resource. SUBMITTED documents are owner-only; PUBLISHED documents require authorization in the post-order flow. Expired documents are unavailable. Requires commerce.post_order.document. |
ebay_download_shipping_label_file | read | Download the shipping label of a shipment as an embedded PDF resource (Logistics API downloadLabelFile). Pass the shipmentId from ebay_create_shipment_from_shipping_quote. ${LOGISTICS_ACCESS_NOTE} |
ebay_enable_inventory_location | write | Enable an inventory location |
ebay_enable_notification_subscription | write | Enable a notification subscription |
ebay_end_campaign | read | End campaign through the eBay Marketing API. |
ebay_end_listing | destructive | End/remove an active listing.\n\nUses the Trading API: EndFixedPriceItem for format FIXED_PRICE (default) and EndItem for format AUCTION. SellToHighBidder is only valid for auctions with bids.\n\nRequired: User OAuth token. |
ebay_fetch_item_aspects | read | Taxonomy API: download the aspects (item specifics) of every leaf category in a category tree as eBay |
ebay_fetch_payment_dispute_evidence_content | read | Download evidence file content from a payment dispute.\n\nRequired OAuth Scope: sell.fulfillment\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment |
ebay_find_active_items | read | Search active eBay listings marketplace-wide (not the seller\ |
ebay_find_campaign_by_ad_reference | read | Find campaign by ad reference through the eBay Marketing API. |
ebay_find_eligible_items | write | Find items eligible for Send Offer to Buyers |
ebay_find_listing_recommendations | read | Find listing recommendations through the eBay Recommendation API. |
ebay_find_seller_standards_profiles | read | Find all seller standards profiles |
ebay_get_actual_costs | read | Get actual costs for shipped packages |
ebay_get_ad | read | Get ad through the eBay Marketing API. |
ebay_get_ad_group | read | Get ad group through the eBay Marketing API. |
ebay_get_ad_groups | read | Get ad groups through the eBay Marketing API. |
ebay_get_address_preferences | read | Get address preferences for international shipping |
ebay_get_ads | read | Get ads through the eBay Marketing API. |
ebay_get_ads_by_inventory_reference | read | Get ads by inventory reference through the eBay Marketing API. |
ebay_get_advertising_eligibility | read | 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.\n\nRequired OAuth Scope: sell.account.readonly or sell.account |
ebay_get_agents | read | Get available shipping agents for international shipping |
ebay_get_api_status | read | 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. |
ebay_get_audiences | read | Get audiences through the eBay Marketing API. |
ebay_get_automotive_parts_compatibility_policies | read | Get automotive parts compatibility policies for a marketplace |
ebay_get_awaiting_feedback | read | Get transactions awaiting feedback from the seller |
ebay_get_battery_qualifications | read | Get battery qualifications for international shipping |
ebay_get_billing_activities | read | Get seller billing activities (fees and credits) from the eBay Finances API. eBay requires exactly one filter criterion: activityId, listingId, orderId, or a transactionDate range starting within the last 120 days. Page with limit/offset, sort by transactionDate. ${FINANCES_SCOPE_NOTE} |
ebay_get_bundle | read | Get bundle details by ID |
ebay_get_bundle_label | read | Get shipping label for a bundle |
ebay_get_campaign | read | Get campaign through the eBay Marketing API. |
ebay_get_campaign_by_name | read | Get campaign by name through the eBay Marketing API. |
ebay_get_campaigns | read | Get campaigns through the eBay Marketing API. |
ebay_get_category_policies | read | Get category policies for a marketplace |
ebay_get_category_suggestions | read | Get category suggestions based on query |
ebay_get_category_tree | read | Get category tree by ID |
ebay_get_charity_org | read | Charity API: get one charitable organization supported by eBay for Charity by charityOrgId (from ebay_get_charity_orgs): name, mission statement, description, logo, location, registration ID (EIN on EBAY_US) and website. ${CHARITY_AUTH_NOTE} |
ebay_get_charity_orgs | read | Charity API: search charitable organizations supported by eBay for Charity, either by keywords (q) or by comma-separated registrationIds; supply exactly one. Paginated with limit (1-100) and offset (0-10000). ${CHARITY_AUTH_NOTE} |
ebay_get_classified_ad_policies | read | Get classified ad policies for a marketplace |
ebay_get_combined_shipping_rules | read | Get the seller |
ebay_get_compatibilities_by_specification | read | Get compatibilities by specification |
ebay_get_compatibility_property_names | read | Get compatibility property names |
ebay_get_compatibility_property_values | read | Get compatibility property values |
ebay_get_consign_preferences | read | Get consign preferences for international shipping |
ebay_get_conversation | read | Get a specific conversation by ID |
ebay_get_conversations | read | Get all buyer-seller conversations (paginated) |
ebay_get_currencies | read | Get currencies for a marketplace |
ebay_get_custom_policies | read | Retrieve custom policies defined for the seller account |
ebay_get_custom_policy | read | Get a specific custom policy by ID |
ebay_get_customer_service_metric | read | Get customer service metrics |
ebay_get_customer_service_metric_task | read | Get one Feed API customer service metric report task by taskId: status, filter criteria and timestamps. Requires sell.analytics.readonly. |
ebay_get_customer_service_metric_tasks | read | List Feed API customer service metric report tasks (CUSTOMER_SERVICE_METRICS_REPORT), filtered by dateRange or lookBackDays (not both), with limit/offset paging. Requires sell.analytics.readonly. |
ebay_get_default_category_tree_id | read | Get the default category tree ID for a marketplace |
ebay_get_document | read | Get listing document metadata and processing status. Only ACCEPTED documents may be attached to listings. Does not download document bytes. Requires sell.inventory. |
ebay_get_dropoff_sites | read | Get available dropoff sites for international shipping |
ebay_get_email_campaign | read | Get email campaign through the eBay Marketing API. |
ebay_get_email_campaigns | read | Get email campaigns through the eBay Marketing API. |
ebay_get_email_preview | read | Get email preview through the eBay Marketing API. |
ebay_get_email_report | read | Get email report through the eBay Marketing API. |
ebay_get_exclude_shipping_locations | read | Metadata API: list the regions, countries and special locations (e.g. PO Box, APO/FPO) a seller can exclude from shipping on a marketplace. ${SHIPPING_LANGUAGE_NOTE} |
ebay_get_expired_categories | read | Taxonomy API: list expired leaf categories in a category tree with the active categories that replaced them (fromCategoryId to toCategoryId; several may merge into one). Only mapped (merged or split) categories are returned; an empty success (HTTP 204) means the tree has none. |
ebay_get_extended_producer_responsibility_policies | read | Get extended producer responsibility policies for a marketplace |
ebay_get_feed_schedule | write | Get one Feed API schedule by scheduleId: template, trigger settings, status and last run. ${SCHEDULE_SCOPE_NOTE} |
ebay_get_feed_schedule_result_file | write | Download the latest report a Feed API schedule generated (compressed or plain CSV, XML or JSON). ${DOWNLOAD_NOTE} ${SCHEDULE_SCOPE_NOTE} |
ebay_get_feed_schedule_template | write | Get one Feed API schedule template by scheduleTemplateId: feed type, frequency and which schedule fields are required or optional (with defaults). ${SCHEDULE_SCOPE_NOTE} |
ebay_get_feed_schedule_templates | write | List the Feed API schedule templates for a feedType (required), with limit/offset paging; use a template ID with ebay_create_feed_schedule. ${SCHEDULE_SCOPE_NOTE} |
ebay_get_feed_schedules | read | List the seller |
ebay_get_feed_task | read | Get one Feed API task by taskId: feed type, status (QUEUED, IN_PROCESS, then COMPLETED or COMPLETED_WITH_ERROR when the file is ready), timestamps and the upload summary (success and failure counts). ${TASK_SCOPE_NOTE} |
ebay_get_feed_task_input_file | read | Download the file previously uploaded to a Feed API task (not available for LMS_ORDER_REPORT or LMS_ACTIVE_INVENTORY_REPORT tasks). ${DOWNLOAD_NOTE} ${TASK_SCOPE_NOTE} |
ebay_get_feed_task_result_file | read | Download the result file of a Feed API task once it is COMPLETED or COMPLETED_WITH_ERROR: the generated report (order, inventory or customer service metric task IDs work too) or an upload |
ebay_get_feed_tasks | read | List Feed API tasks (uploads and downloads, on-demand and scheduled) by feedType or scheduleId (not both), filtered by dateRange or lookBackDays (not both), with limit/offset paging. ${TASK_SCOPE_NOTE} |
ebay_get_feedback | read | Get feedback for a user by type |
ebay_get_feedback_rating_summary | read | Get feedback rating summary for a user |
ebay_get_fulfillment_policies | read | Get fulfillment policies for the seller.\n\nRequired OAuth Scope: sell.account.readonly or sell.account\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.account.readonly |
ebay_get_fulfillment_policy | read | Get a specific fulfillment policy by ID |
ebay_get_fulfillment_policy_by_name | read | Get a fulfillment policy by name |
ebay_get_handling_times | destructive | Metadata API: list the handling times (maximum business days to ship after cleared payment, flagged when extended) a marketplace allows. ${SHIPPING_LANGUAGE_NOTE} |
ebay_get_handover_sheet | read | Get handover sheet for packages |
ebay_get_hazardous_materials_labels | read | Get hazardous materials labels for a marketplace |
ebay_get_inventory_item | read | Get a specific inventory item by SKU.\n\nRequired OAuth Scope: sell.inventory.readonly or sell.inventory\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory.readonly |
ebay_get_inventory_item_group | read | Get an inventory item group (variation group) |
ebay_get_inventory_items | read | Retrieve all inventory items for the seller.\n\nRequired OAuth Scope: sell.inventory.readonly or sell.inventory\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory.readonly |
ebay_get_inventory_location | read | Get a specific inventory location |
ebay_get_inventory_locations | read | Get all inventory locations |
ebay_get_inventory_task | read | Get one Feed API active inventory report task by taskId: status, filter criteria and timestamps. Requires sell.inventory. |
ebay_get_inventory_tasks | read | List Feed API active inventory report tasks (LMS_ACTIVE_INVENTORY_REPORT), filtered by dateRange or lookBackDays (not both), with limit/offset paging. Requires sell.inventory. |
ebay_get_item_aspects_for_category | read | Identify required and recommended item specifics for a category before creating an inventory item or checking listing fees |
ebay_get_item_condition_policies | read | Get item condition policies for a marketplace |
ebay_get_item_details | read | Get full detail for one active eBay listing by its Browse RESTful item id (from ebay_find_active_items, e.g. |
ebay_get_item_price_markdown_promotion | read | Get item price markdown promotion through the eBay Marketing API. |
ebay_get_item_promotion | read | Get item promotion through the eBay Marketing API. |
ebay_get_keyword | read | Get keyword through the eBay Marketing API. |
ebay_get_keywords | read | Get keywords through the eBay Marketing API. |
ebay_get_kyc | read | Get seller KYC (Know Your Customer) status |
ebay_get_labels | read | Get shipping labels for packages |
ebay_get_listing | read | Get full details for a single listing by item ID.\n\nUses the Trading API (GetItem). Returns all listing fields including description, specifics, shipping, images, and ListingType (Chinese = auction, FixedPriceItem = fixed price).\n\nRequired: User OAuth token. |
ebay_get_listing_fees | read | Get listing fees for offers before publishing |
ebay_get_listing_set | write | Get listing set through the eBay Marketing API. |
ebay_get_listing_structure_policies | read | Get listing structure policies for a marketplace |
ebay_get_listing_type_policies | read | Get listing type policies for a marketplace |
ebay_get_listing_violations | read | DECOMMISSIONED: eBay shut down the Sell Compliance API on 2026-03-30. This tool always fails with a clear message. Use Seller Hub → Performance → Issue Resolution Center instead (no API equivalent). |
Trust audit
CAUTIONgrade B · trust 85/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (4 observation(s))
- Network
- declared (3 observation(s))
- Shell
- declared (3 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (19)
TOKEN = '/identity/v1/oauth2/token',
privateKey: '-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAAOCAQ8A...',
ebay_bulk_delete_ads_by_inventory_reference, ebay_bulk_delete_ads_by_listing_id, ebay_bulk_delete_packages, ebay_cancel_shipment, ebay_clear_tokens, ebay_delete_ad, ebay_delete_ads_by_inventory_refere
join(dirname(fileURLToPath(moduleUrl)), '../../.env');
const url = new URL(`../../public/icons/${size}.png`, import.meta.url);const PACKAGE_JSON_PATH = join(__dirname, '../../package.json');
vi.mock('../../../src/auth/oauth.js', () => ({vi.mock('../../../src/auth/oauth.js', () => ({process.env.EBAY_MCP_API_BASE_URL = 'http://127.0.0.1:8080';
expect(getHttpServerUrl(config)).toBe('http://127.0.0.1:3000');const loopback = await request(app).get('/health').set('Origin', 'http://127.0.0.1:3000');expect(loopback.headers['access-control-allow-origin']).toBe('http://127.0.0.1:3000');baseUrl = `http://127.0.0.1:${(server.address() as AddressInfo).port}`;['utf16.xml', Buffer.from('<a/>', 'utf16le'), 'UTF-8 text without NUL bytes'],chalk, cors, dotenv, effect, express, fast-xml-parser, helmet, jose
public/icons/1024x1024.png
public/video-tutorial.mp4
<strong>The eBay MCP server — give Claude, Cursor, and any AI assistant full access to eBay's Sell APIs. 384 tools for inventory, orders, marketing, and analytics, running locally with your own keys.<
No. "Runs locally" means the server runs on your machine; it still needs internet access and valid credentials to reach eBay's live APIs.
Gates applied: no_behavioural_pass.
392ab1932424full audit observations/trust-audit/mcp-server/yosefhayim__ebay-2.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | 392ab1932424 | CAUTION | B | 85 | first audit |
Questions
What is the eBay MCP server?
Local MCP server that connects AI assistants to eBay seller APIs for listings, orders, and marketing, with OAuth setup.
What tools does eBay expose?
200 in total: 212 read-only, 118 that write, and 32 that can delete or overwrite (ebay_bulk_delete_ads_by_inventory_reference, ebay_bulk_delete_ads_by_listing_id, ebay_bulk_delete_packages, ebay_cancel_shipment, ebay_clear_tokens). Every one is listed on this page with its risk.
Is eBay safe to connect to an agent?
With care. The audit graded it B (85/100) and found 19 things worth knowing before you trust this server, listed below with the exact line each was found on. Separately from the audit: 32 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does eBay need?
It reads EBAY_APP_ACCESS_TOKEN, EBAY_CLIENT_SECRET, EBAY_MCP_DISABLE_AUTH_HEADER, EBAY_OAUTH_CALLBACK_PORT, EBAY_OAUTH_SCOPES, EBAY_USER_ACCESS_TOKEN and EBAY_USER_REFRESH_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does eBay run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as ebay-mcp at 1.18.0.
How current is this page?
The grade is for one exact copy of the source (392ab1932424), read on 2026-10-07. The repository is watched and re-audited when it changes.