Skip to main content
Glama
jnslmk
by jnslmk

ebay-mcp

LLM이 공식 Browse API를 통해 eBay 상품을 검색하고 조회할 수 있게 해주는 MCP 서버입니다. 읽기 전용, 구매자 측면: 상품을 검색하고 읽기만 하며, 입찰이나 구매는 하지 않습니다.

Suat Oneren의 ebay-browse-mcp 포크로, stdio를 사용합니다. 이 포크는 두 도구와 응답 형식을 유지하면서 전송 방식을 streamable-HTTP(:8000/mcp)과 /healthz 프로브로 교체하여, LibreChat과 같은 MCP 클라이언트 뒤에서 자체 호스팅 컨테이너로 실행됩니다 — 자매 프로젝트인 kleinanzeigen-mcp와 동일한 형태입니다.

Kleinanzeigen(공개 API가 없어 스크래핑이 불가피함)과 달리 eBay는 공식 API를 제공하므로, 이 서버는 API를 직접 호출합니다: 헤드리스 브라우저도, 봇 탐지 취약성도 없습니다.

도구

도구

기능

search_ebay

키워드로 검색하며, 선택적으로 min_price/max_price(또는 filter_expr을 통한 원시 가격 필터 — 둘 다는 불가)와 상태, 구매 옵션, 판매자 국가 필터, 정렬을 지원합니다. 상품 요약과 item_id를 반환합니다. query는 상품 제목에만 AND 조건으로 적용되므로, 문장이 아닌 2-4개의 짧은 제품 키워드가 필요합니다 — 결과가 0건이면 그 이유를 설명하고 이미 축소된 재시도(가격 필터는 유지됨)를 포함할 수 있습니다.

get_item_details

하나의 item_id에 대한 전체 레코드: 설명, 상품 세부 사양, 이미지, 배송 옵션, 반품 조건, 판매자.

Related MCP server: ebay-browse-mcp

구성

eBay Developer 키셋(무료 — https://developer.ebay.com/my/keys)을 설정하세요:

환경 변수

기본값

의미

EBAY_CLIENT_ID

—

키셋의 App ID(Client ID)

EBAY_CLIENT_SECRET

—

키셋의 Cert ID(Client Secret)

EBAY_MARKETPLACE

EBAY_DE

마켓플레이스: EBAY_DE, EBAY_US, EBAY_GB, …

EBAY_ENV

sandbox

sandbox 또는 production

MCP_TRANSPORT

http

http(streamable-HTTP) 또는 stdio

MCP_HOST / MCP_PORT / MCP_PATH

0.0.0.0 / 8000 / /mcp

HTTP 바인딩

샌드박스에는 실제 재고가 거의 없습니다 — 연결을 확인하는 용도로 사용하고, 실제 결과를 보려면 EBAY_ENV=production(프로덕션, OAuth 활성화 키셋)으로 설정하세요.

실행

Docker (권장)

docker run --rm -p 8000:8000 \
  -e EBAY_CLIENT_ID=... -e EBAY_CLIENT_SECRET=... \
  -e EBAY_MARKETPLACE=EBAY_DE -e EBAY_ENV=production \
  ghcr.io/jnslmk/ebay-mcp:latest
# MCP endpoint: http://localhost:8000/mcp   health: http://localhost:8000/healthz

로컬 (stdio, 데스크톱 MCP 클라이언트용)

python3 -m venv .venv && .venv/bin/pip install .
cp .env.example .env   # fill in your keyset
MCP_TRANSPORT=stdio .venv/bin/ebay-mcp

키셋의 빠른 클라이언트 없는 확인:

.venv/bin/python -m ebay_mcp.ebay_client "raspberry pi 5"

라이선스

MIT. LICENSE 참조 — 원본 업스트림 저작권을 유지합니다.

Available Tools

2 tools
get_item_detailsGet Item DetailsA

Retrieve the shaped detail record for a single eBay item.

Use after search_ebay surfaces something worth a closer look: full description, item specifics (aspects), all images, shipping options, return policy, seller and location.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesREST item id from search_ebay's `item_id` field (format 'v1|<numeric>|0'). Legacy numeric ids are not accepted.
fieldgroupsNoOptional response shaping: 'COMPACT' (small subset for change detection) or 'PRODUCT' (adds catalogue info). Omit for full details.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It uses the read-only verb 'Retrieve' and enumerates the returned content: full description, aspects, images, shipping, return policy, seller, and location. It does not mention error behavior or auth, but the read-only nature and expected payload are clearly communicated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short paragraphs with no filler. The purpose statement is front-loaded, and the second sentence earns its place by adding workflow context and return content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and the description covers intended usage plus the main return contents, the definition is nearly complete. It does not mention possible errors or rate limits, but for a single-item retrieval tool with a well-described schema this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents item_id's required format and fieldgroups' allowed values, so the description adds little parameter-level meaning. The phrase 'shaped detail record' ties loosely to fieldgroups but does not go beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Retrieve the shaped detail record for a single eBay item.' It distinguishes itself from the sibling search_ebay by clarifying this is the follow-up tool for a single item's deeper details, not for searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use it: 'Use after search_ebay surfaces something worth a closer look.' This names the preceding sibling, provides the intended workflow, and implies that search_ebay is for the initial broad search. No inference is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_ebaySearch EbayA

Search eBay listings by keyword, with optional filters and sorting.

query is a strict AND over 2-4 short keywords matched against the listing TITLE only (see the query field's description) — a zero-result response carries a hint explaining why instead of a bare empty list, and one automatic narrowed retry may already have run (see fallback_query). Returns listing summaries — id, title, price, condition, seller reputation, location, thumbnail and URL. Pass an item's item_id to get_item_details for the full record. Prices and currency follow the configured marketplace. min_price/max_price are a convenience over filter_expr's price range syntax — see those parameters' own descriptions for the rule against combining the two.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo'price' (ascending), '-price' (descending), 'newlyListed' or 'endingSoonest'. Omit for eBay Best Match.
limitNoMaximum results to return (default 10)
queryYes2-4 short product keywords ANDed against the listing TITLE (e.g. 'RTX 3090 24GB') — never a sentence. Words like 'used'/'deep learning'/'local seller' are rarely in titles and return zero results; put condition/location in `filter_expr` instead. On a German marketplace prefer German terms ('gebraucht', 'Grafikkarte').
max_priceNoMaximum price, in the configured marketplace's currency. See `min_price` — same rule: don't combine with a `price` or `priceCurrency` filter in filter_expr.
min_priceNoMinimum price, in the configured marketplace's currency (e.g. EUR on EBAY_DE). Convenience over hand-writing filter_expr's 'price:[min..],priceCurrency:...' range — do not also set a `price` or `priceCurrency` filter in filter_expr, that raises an error.
filter_exprNoeBay Browse API filter syntax, comma-separated. Examples: 'price:[100..500],priceCurrency:EUR' (price range — prefer `min_price`/`max_price` below instead of writing this by hand), 'conditions:{NEW}' (new only), 'buyingOptions:{FIXED_PRICE}' (Buy It Now only), 'itemLocationCountry:DE' (German sellers only). Do not combine a `price` or `priceCurrency` filter here with `min_price`/`max_price` — pick one or the other.
max_resultsNoDeprecated alias for `limit`; prefer `limit`

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals several non-obvious behaviors: zero-result responses include a `hint` and may have already had an automatic narrowed retry ("one automatic narrowed retry may already have run"), and prices/currency follow the configured marketplace. It also states that query is a strict AND over titles only, which is a key behavioral trait. No rate limits or auth are mentioned, but the disclosed behaviors are substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but well-structured: it opens with the core purpose, then covers query semantics, return format, the sibling tool, and the price-parameter relationship. It uses references to parameter descriptions rather than repeating them verbatim, which keeps it efficient. A slightly tighter first sentence could improve it, but the organization is logical and no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, output schema present, no nested objects), the description provides enough context for an agent to use it correctly. It explains the essential query constraints, previews the result fields, flags the automatic retry behavior, and clearly points to parameter descriptions for detailed syntax. The absence of error-handling specifics is mitigated by the hint mechanism disclosure, and the presence of an output schema excuses the need to describe return structures in detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The tool description adds minimal semantic value beyond what the parameter descriptions already provide: it mostly restates the query rules and points the reader to those descriptions ("see the `query` field's description"). It does add cross-tool context (pass item_id to get_item_details) and clarifies min/max as convenience over filter_expr, but the parameter specifics are already richly documented in the schema, so the description does not meaningfully elevate understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear statement of the verb and resource: "Search eBay listings by keyword, with optional filters and sorting." It further differentiates from the sibling tool by explicitly directing "Pass an item's `item_id` to `get_item_details` for the full record," making the boundary between listing summaries and full details unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use and when-not-to-use guidance. It names the alternative tool for full details, and it gives precise rules for parameter combinations: "do not also set a `price` or `priceCurrency` filter in filter_expr" when using min_price/max_price, and "prefer `min_price`/`max_price` below instead of writing this by hand" for price ranges. It also offers market-specific advice (e.g., German terms) that helps an agent decide how to compose queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 2 tool updatesv0.1.2
    • First observedget_item_details
    • First observedsearch_ebay

TDQS

A4.3/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: search_ebay discovers listings, while get_item_details retrieves full details for a specific item. No overlap or ambiguity in their roles.

Naming Consistency5/5

Both names follow a consistent verb_noun pattern with snake_case (search_ebay, get_item_details), making them predictable and readable.

Tool Count3/5

With only 2 tools, the server feels thin for a domain as broad as eBay, but the two tools cover a basic search-and-detail workflow without redundancy.

Completeness3/5

The surface covers search and retrieval of item details, sufficient for a browsing use case, but lacks advanced features like pagination, seller-specific queries, or listing operations. There are notable gaps for more complex workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Minimal MCP server for searching eBay listings via the Browse API, enabling keyword search with filters, sorting, pagination, and retrieving full item details.
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that lets an LLM search Geizhals, a leading German/DACH price-comparison site, for the cheapest offers on new products.
    2
    MIT