Skip to main content
Glama

ebay-lens

A local MCP server that lets Claude search eBay and look at the photos: thumbnail contact sheets of whole result pages, full listing photo sets, full-resolution zoom crops (tags, nameplates, flaws), and visual-similarity search from a photo or an existing listing.

It is read-only and uses only eBay's official APIs (Browse + Taxonomy) with your own developer keys. It cannot buy, bid, offer, or message, and it stores nothing on disk.

Tools

Tool

What it does

search_ebay

Keyword search with price, condition, buying-format, aspect (Size, Brand…), location, local-pickup-radius and free-shipping filters; sort by price/newest/ending/distance. Returns numbered results plus a contact-sheet image of thumbnails. show_refinements=True adds available categories, conditions and aspect values with counts.

search_ebay_by_image

Visually similar listings from a local photo (image_path), an image_url, or an existing listing (similar_to_item, which inherits its category). Uses eBay's experimental searchByImage.

get_ebay_item

Full details: condition notes, item specifics (measurements, MPN…), seller description (HTML stripped), shipping, returns, location, variations. Accepts `v1

get_ebay_item_photos

Downloads a listing's photos (up to 12 per call, paged) and returns them as images Claude sees.

zoom_ebay_photo

Crops one photo at eBay's max (1600 px) resolution, e.g. box=[0.5,0,1,0.5], to read labels, serial plates, gauges, or check damage.

suggest_ebay_categories

Category ids from a description, which aspect filters need.

get_ebay_category_aspects

Valid aspect names/values for a category (Size Type, Inseam, Voltage, Phase…).

Related MCP server: mcp-ebay

Setup

1. eBay developer keys (free)

  1. Join at https://developer.ebay.com and create an application keyset under Production. App ID = EBAY_CLIENT_ID, Cert ID = EBAY_CLIENT_SECRET.

  2. eBay may ask you to configure Marketplace Account Deletion notifications before enabling production keys. This tool stores no eBay user data, so the exemption option applies.

Default quota is 5,000 Browse calls/day. A search is 1 call; photos/thumbnails come from eBay's image CDN and are not API calls.

2. Install

Requires Python 3.10+. Install into a dedicated environment, not a shared or system one: mcp pulls in a fair number of dependencies.

Option A: uv

cd ebay-lens
uv sync

Option B: plain venv + pip (no uv needed)

cd ebay-lens
python3 -m venv .venv          # python3 must be 3.10+; check with: python3 --version
.venv/bin/pip install -e .

If your default python3 is older (e.g. an active conda base on 3.9), create the venv with a newer interpreter's full path instead, e.g. ~/miniconda3/envs/py312/bin/python -m venv .venv or /usr/bin/python3.10 -m venv .venv. The venv keeps using that interpreter, so nothing needs activating later.

On Windows (PowerShell), the venv puts executables in Scripts\ instead of bin/:

cd ebay-lens
py -3.12 -m venv .venv         # any installed 3.10+ works; list them with: py -0
.venv\Scripts\pip install -e .

Check the install with .venv/bin/python tests/test_mocked.py (Windows: .venv\Scripts\python tests\test_mocked.py). No eBay keys needed.

3. Connect

Claude Code (available in all projects):

# Option A (uv)
claude mcp add ebay-lens -s user \
  -e EBAY_CLIENT_ID=YOUR_APP_ID -e EBAY_CLIENT_SECRET=YOUR_CERT_ID \
  -e EBAY_POSTAL_CODE=YOUR_POSTAL_CODE \
  -- uv run --directory /absolute/path/to/ebay-lens ebay-lens

# Option B (venv): point straight at the venv's entry point
claude mcp add ebay-lens -s user \
  -e EBAY_CLIENT_ID=YOUR_APP_ID -e EBAY_CLIENT_SECRET=YOUR_CERT_ID \
  -e EBAY_POSTAL_CODE=YOUR_POSTAL_CODE \
  -- /absolute/path/to/ebay-lens/.venv/bin/ebay-lens

Claude desktop app (macOS, Windows, Linux):

  1. Open the config file. In the app, go to Settings → Developer → Edit Config. That works on every OS and creates the file if it doesn't exist. Or open it directly:

    OS

    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

  2. Add the server. Put ebay-lens under "mcpServers". If the file already has content (other servers or settings), merge this entry in rather than replacing the file. Use the command/args that match how you installed:

    uv (any OS):

    {
      "mcpServers": {
        "ebay-lens": {
          "command": "uv",
          "args": ["run", "--directory", "/absolute/path/to/ebay-lens", "ebay-lens"],
          "env": {
            "EBAY_CLIENT_ID": "YOUR_APP_ID",
            "EBAY_CLIENT_SECRET": "YOUR_CERT_ID",
            "EBAY_POSTAL_CODE": "YOUR_POSTAL_CODE"
          }
        }
      }
    }

    The app is launched from your desktop, not a terminal, so it may not see the PATH from your shell. If it can't find uv, use uv's full path as command (find it with which uv on macOS/Linux, where uv on Windows).

    venv, macOS/Linux: replace command/args with:

    "command": "/absolute/path/to/ebay-lens/.venv/bin/ebay-lens",
    "args": []

    venv, Windows: replace command/args with (backslashes must be doubled in JSON; forward slashes also work):

    "command": "C:\\Users\\you\\ebay-lens\\.venv\\Scripts\\ebay-lens.exe",
    "args": []

    Keep the same env block in every case.

  3. Restart the app fully. Closing the window isn't enough: quit with Cmd+Q on macOS, or right-click the tray icon → Quit on Windows/Linux, then reopen it.

  4. Check it connected. Settings → Developer shows each server's status. If ebay-lens failed, look at the mcp*.log files:

    OS

    Logs

    macOS

    ~/Library/Logs/Claude/

    Windows

    %APPDATA%\Claude\logs\

    Linux

    ~/.config/Claude/logs/

    The most common error is ENOENT (on Linux: Failed to spawn process: No such file or directory), meaning the command can't be found. Check that it's a real absolute path, not the /absolute/path/to/... placeholder, and that the program exists: with "command": "uv" this also happens when uv isn't installed at all. In that case use the venv variant above.

A local stdio server works in Claude Code and the desktop app, not in claude.ai in a browser or on mobile. Those would need it hosted as a remote HTTPS connector.

Environment variables

Var

Default

Purpose

EBAY_CLIENT_ID / EBAY_CLIENT_SECRET

required

Production keyset

EBAY_POSTAL_CODE

unset

Accurate shipping estimates, sort=distance, local-pickup search

EBAY_MARKETPLACE

EBAY_US

e.g. EBAY_GB, EBAY_DE

EBAY_COUNTRY

US

Country paired with the postal code

Example prompts

  • "Find a used waxed cotton jacket in size L under $150. Check the contact sheet, then inspect the best few for wear, torn linings and broken zips, and zoom on the tags to confirm the brand and estimate its age."

  • "Here's a photo of a jacket I like (photo.jpg). Find similar ones on eBay in men's size L."

  • "Find a used mechanical keyboard under $80 with free shipping. Check the contact sheet, then look through the photos of the best few for missing keycaps, yellowing or worn legends, and compare them."

  • "Show me listings similar to https://www.ebay.com/itm/123456789012 but cheaper."

eBay terms: how this stays compliant

  • Official API, your keys. eBay's User Agreement (effective Feb 20 2026) prohibits scrapers and LLM-driven bots accessing eBay without eBay's express permission. The developer program and API License Agreement are that permission. This server never scrapes ebay.com pages.

  • No purchasing paths. The code calls only Browse search/searchByImage/getItem and Taxonomy lookups. There are no Order, Offer/bidding, or Sell endpoints. Buying happens with you on ebay.com.

  • No Restricted APIs. The API License restricts feeding "Restricted APIs" (market trends, pricing insights, AI-generated content, e.g. Marketplace Insights / sold-price data) into third-party AI tools. None are used. Don't add sold-listing tools without eBay's written consent.

  • No training, no persistence. Data is used only to answer your query. There's a 10-minute in-memory item cache; nothing is written to disk.

  • Not legal advice. Re-read the API License Agreement if you extend this.

Testing

.venv/bin/python tests/test_mocked.py (or uv run python tests/test_mocked.py) drives every tool through a real MCP client session against a mocked eBay API: filter construction, auth/token caching, contact sheets, photo paging, zoom, image search, variation listings, and an assertion that no non-GET call except token and searchByImage is ever made. It writes sample images to tests/out/ (git-ignored).

Known limits

  • searchByImage is marked experimental by eBay: quality varies, and adding category_id helps a lot.

  • Aspect filters need exactly one category id (an eBay rule).

  • Some listings only have low-resolution photos; zoom reports the source size.

Available Tools

7 tools
get_ebay_category_aspectsB

List the item-specific aspects for a category (e.g. Size, Size Type, Chest Size, Inseam, Brand; or Voltage, Phase, Horsepower) and common values, for use in search aspects filters.

NameRequiredDescriptionDefault
max_valuesNo
category_idYes

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are supplied, so the description must carry the behavioral load; 'List' correctly signals a read-only lookup and the examples clarify the payload shape. It does not disclose whether max_values caps values per aspect or overall, whether results are cached or rate-limited, or how large a category's aspect set can be.

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?

A single front-loaded sentence with the resource and purpose stated first; the parenthetical examples are somewhat long but they meaningfully illustrate what an 'aspect' is, so they earn their place.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and the read-only nature is implied. However, with no annotations and zero schema coverage, the undocumented max_values parameter leaves a real gap an agent must guess at.

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

Parameters2/5

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

Schema description coverage is 0% for two parameters, and the description compensates only partially: '(e.g. ... for a category)' implies category_id identifies the category, but max_values is never mentioned, leaving unclear whether it limits values per aspect or total values returned.

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

Purpose4/5

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

States a specific verb and resource: lists item-specific aspects and their common values for a category, with concrete examples (Size, Inseam, Voltage, Phase) and the downstream purpose ('for use in search aspects filters'). It is clearly distinguishable from siblings like suggest_ebay_categories, though it never names or contrasts with them explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: the phrase 'for use in search aspects filters' hints that this should be called before search_ebay to build aspect filters, but there is no explicit when-to-use, no when-not-to-use, and no named alternative for discovering categories versus aspects.

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

get_ebay_itemA

Full listing details: price, condition notes, item specifics (size, measurements, brand, model, MPN...), seller description, shipping, returns, location, variations, photo count. item: RESTful id (v1|...|0), numeric legacy id, or an ebay.com/itm/ URL.

NameRequiredDescriptionDefault
itemYes
description_charsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden; it enumerates what is returned, which signals a read-only listing fetch. It says nothing about permissions, authentication, rate limits, or whether the call works for ended/removed listings — behavioral gaps that matter without annotations.

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?

Two tight sentences with the payload contents front-loaded and the identifier syntax immediately after. Minor waste in the parenthetical field list (size, measurements, brand, model, MPN), which largely restates what the output schema already exposes.

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

Completeness3/5

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

Return-shape detail is redundant given an output schema, and the description omits the one genuinely non-obvious control (`description_chars` truncation) plus any failure modes for invalid or ended item ids. Adequate to call correctly for the common case, but incomplete for the schema it ships with.

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?

With 0% schema coverage, the description does valuable work by explaining that `item` accepts a RESTful id (v1|...|0), a numeric legacy id, or an ebay.com/itm/ URL. However, the second parameter `description_chars` (default 4000) is never mentioned anywhere, leaving a real truncation behavior undocumented.

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?

States a specific verb+resource ('Full listing details' for a single item) and the second sentence clarifies the identifier type, making it clearly distinct from search_ebay (discovery) and get_ebay_item_photos (media subset). An agent can route to it without opening the schema.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: 'full listing details' suggests fetching one known listing, in contrast to the search siblings. There is no explicit when-to-use/when-not guidance and no mention that a search step is typically required to obtain the item id.

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

get_ebay_item_photosB

Download a listing's photos and return them as images for visual inspection. Photos are numbered from 0 (0 = main photo). Page with start; max_px 512-1600.

NameRequiredDescriptionDefault
itemYes
startNo
max_pxNo
max_photosNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose useful behavior: photos are returned as images, indexing is 0-based with 0 as the main photo, paging is via start, and max_px is bounded to 512-1600. It says nothing about how many photos a listing may have, failure modes, or request costs.

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?

Two short sentences, front-loaded with the purpose followed by operational hints. The telegraphic "Page with start" phrasing is slightly clipped but wastes no words.

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

Completeness3/5

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

An output schema exists, so return-value explanation is not required, and the image-return behavior is covered. However, the required item parameter and max_photos remain unexplained, and there is no route to the closely related zoom tool, leaving gaps for a 4-parameter tool with zero annotation coverage.

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 0%, so the description must compensate for four undocumented parameters. It explains start (paging) and adds a real constraint for max_px (512-1600, beyond the default-1024 schema), but never explains what the required item identifier is or what max_photos controls.

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

Purpose4/5

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

The description names a specific verb and resource ("Download a listing's photos") and states the result form ("return them as images for visual inspection"). It does not distinguish itself from the sibling zoom_ebay_photo, which also deals with eBay photos, so sibling differentiation is only partial.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance and no mention of alternatives such as zoom_ebay_photo or search_ebay_by_image. The phrase "for visual inspection" hints at the intent, but an agent must infer the selection criteria itself.

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

search_ebayB

Keyword search of active eBay listings, returning numbered results and a thumbnail contact sheet.

aspects: item-specific filters such as {"Size": "M", "Brand": "Patagonia|Arc'teryx"} ('|' = OR); requires category_id. Use show_refinements=True to discover valid aspect names/values. buying_options: defaults to fixed_price + auction (eBay alone would return only Buy It Now). local_pickup_radius_miles: only items offering local pickup within this radius of the server's EBAY_POSTAL_CODE (useful for heavy equipment). limit: 1-50 recommended (contact sheet gets unwieldy above ~30).

NameRequiredDescriptionDefault
sortNobest_match
limitNo
queryNo
offsetNo
aspectsNo
conditionNo
max_priceNo
min_priceNo
category_idNo
contact_sheetNo
free_shippingNo
buying_optionsNo
show_refinementsNo
item_location_countryNo
local_pickup_radius_milesNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It does disclose two non-obvious behaviors: buying_options defaults to fixed_price + auction (deviating from eBay's Buy It Now default), and local_pickup_radius_miles is measured from the server's EBAY_POSTAL_CODE. It says nothing about pagination via offset, what show_refinements returns, rate limits, or auth/error behavior, which is a meaningful gap for a 15-parameter tool.

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 core capability is front-loaded in one sentence and the rest is scoped to individual parameters with no filler. Minor inefficiency: sort's 'distance' enum and offset pagination are never tied into the surrounding guidance, so the notes are not fully integrated.

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

Completeness3/5

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

An output schema exists, so return values needn't be spelled out, and the size/format tips are appropriate for a large search tool. Still, for a 15-parameter search tool with no annotations, the description leaves pagination, sort/location interaction, and tool-selection versus siblings unaddressed.

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 coverage is 0% with 15 parameters, so the description must compensate, and it only covers aspects (including the '|' = OR syntax and category_id dependency), buying_options, local_pickup_radius_miles, show_refinements, and limit. The other parameters (sort, condition, price bounds, item_location_country, offset, contact_sheet, free_shipping) get no explanation, though most are self-descriptive by name.

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

Purpose4/5

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

States a specific verb and resource ('Keyword search of active eBay listings') plus the result shape (numbered results, thumbnail contact sheet). The word 'keyword' implicitly separates it from the sibling search_ebay_by_image, but no sibling is named explicitly, so it stops short of a 5.

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

Usage Guidelines3/5

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

Gives real in-tool guidance: aspects require category_id, use show_refinements=True to discover valid names/values, limit is best kept 1-50. It does not say when to pick this tool over search_ebay_by_image or suggest_ebay_categories, nor any when-not conditions, so usage is implied rather than routed.

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

search_ebay_by_imageA

Visual-similarity search (eBay's experimental searchByImage). Give exactly one source: image_path (local file), image_url, or similar_to_item (item id/URL; uses its main photo). Adding category_id greatly improves relevance. Results come with a contact sheet.

NameRequiredDescriptionDefault
sortNobest_match
limitNo
offsetNo
aspectsNo
conditionNo
image_urlNo
max_priceNo
min_priceNo
image_pathNo
category_idNo
contact_sheetNo
buying_optionsNo
similar_to_itemNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden and delivers real behavioral facts: the API is experimental, the source inputs are mutually exclusive (one and only one), and results include a contact sheet. It omits operational details such as rate limits, cost, or what happens if multiple sources are supplied.

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?

Three tight sentences with the core constraint front-loaded and zero filler; the parenthetical notes earn their place by clarifying input formats. Slightly dense for a 13-parameter tool, but nothing is wasted.

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

Completeness3/5

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

The output schema covers return values and the description covers the source-selection rule, which is the main complexity. However, for a 13-parameter tool with zero schema documentation, the filtering and pagination parameters are left entirely unexplained, which is a meaningful gap for an agent composing a query.

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 0% across 13 parameters, so the description must compensate, and it does for the most important ones: image_path (local file), image_url, similar_to_item (item id or URL, uses main photo), and category_id's relevance impact. The remaining filters — aspects, condition, buying_options, min/max_price, sort, limit, offset, contact_sheet — get no explanation beyond their names, and "aspects" in particular is opaque.

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?

"Visual-similarity search (eBay's experimental searchByImage)" states a specific verb and a distinct resource, and the visual-similarity framing inherently separates it from the keyword-based sibling search_ebay. An agent can pick this tool without opening the schema.

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

Usage Guidelines4/5

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

The description gives the critical selection rule — supply exactly one of image_path, image_url, or similar_to_item — and a quality tip (category_id greatly improves relevance). It stops short of explicitly naming when to prefer this over search_ebay or get_ebay_item_photos, so there is no full when-not guidance.

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

suggest_ebay_categoriesA

Suggest eBay category ids for a description (e.g. 'men's waxed cotton jacket', 'hydraulic gear pump'). Use the id as category_id in searches and aspect filters.

NameRequiredDescriptionDefault
queryYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the burden; "suggest" implies a non-mutating lookup, but that is only implied. It does not state how many suggestions come back, whether results are ranked or confidence-scored, or whether authentication is required. The presence of an output schema excuses it from explaining return values, keeping this at a middling score.

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 sentences, front-loaded with the purpose and followed by the downstream instruction; there is no filler and no redundancy.

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?

For a one-parameter lookup tool with an output schema, the description covers what the tool does, what to pass in, and what to do with the result. Only the shape of the returned suggestions and any reliability caveats are left implicit.

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

Parameters4/5

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

The single query parameter has 0% schema description coverage, and the two bracketed examples ("men's waxed cotton jacket", "hydraulic gear pump") do real work here, showing the input is a free-form natural-language product description rather than a category name or ID. It still does not mention constraints such as length limits or language.

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

Purpose4/5

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

Names a specific verb and resource ("suggest eBay category ids") and clarifies the input with two concrete examples, so the agent can tell it is a lookup-style categorizer rather than one of the search_ebay retrieve tools. It stops short of naming a sibling explicitly, which would earn a 5.

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

Usage Guidelines4/5

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

"Use the id as category_id in searches and aspect filters" tells the agent both the downstream purpose and the workflow it plugs into (search_ebay, get_ebay_category_aspects). No explicit when-not guidance or prerequisites are given, but the usage context is clear.

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

zoom_ebay_photoA

Crop one listing photo at full resolution (eBay's largest, 1600px) to read tags, labels, nameplates, serial plates, or inspect a flaw. box = [x0, y0, x1, y1] as fractions of the photo (e.g. [0.5, 0.0, 1.0, 0.5] = top-right quarter).

NameRequiredDescriptionDefault
boxYes
itemYes
max_pxNo
photo_indexYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full behavioral burden and does disclose the resolution ceiling and cropping semantics. It omits prerequisites (must the item/photos be fetched first?) and says nothing about what the crop returns or whether max_px overrides the stated 1600px full-resolution behavior.

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 sentences, zero waste: the action and motivation come first, then the box syntax with a concrete example. Every phrase earns its place and the hard-to-guess detail is front-loaded.

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?

The output schema exists, so return values needn't be described, and the box semantics are fully covered. Gaps remain around how item and photo_index are sourced and what max_px does relative to the 1600px claim, which matters for a four-parameter tool with no annotations.

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 0% across four parameters, so the description must compensate. It does an excellent job on the hardest parameter, defining box as fractional [x0,y0,x1,y1] with a worked example, but leaves item, photo_index, and max_px entirely unexplained, including the potential tension between max_px's default of 1400 and the advertised 1600px full resolution.

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

Purpose4/5

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

The description gives a specific verb and resource ("Crop one listing photo") plus an explicit resolution ceiling (1600px), so it is unmistakable what the tool does. It does not name the sibling it pairs with (get_ebay_item_photos), leaving the agent to infer which call supplies the photo to crop.

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

Usage Guidelines4/5

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

It clearly states the situations that call for zooming: reading tags, labels, nameplates, serial plates, or inspecting a flaw. There is no explicit when-not guidance and no named alternative, so it stops short of a full routing rule.

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. 7 tool updatesv0.1.0
    • First observedget_ebay_category_aspects
    • First observedget_ebay_item
    • First observedget_ebay_item_photos
    • First observedsearch_ebay
    • First observedsearch_ebay_by_image
    • First observedsuggest_ebay_categories
    • First observedzoom_ebay_photo

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation4/5

Keyword search vs. visual-similarity search are clearly separated, as are item metadata, photo download, and photo zoom. The only mild overlap is between get_ebay_item (which returns photo count), get_ebay_item_photos, and zoom_ebay_photo, but the granularity levels are described well enough to choose correctly. suggest_ebay_categories vs. get_ebay_category_aspects is a clean split (discover id vs. discover filters for an id).

Naming Consistency4/5

All tools use snake_case with a consistent verb_ebay_noun shape (get_ebay_item, zoom_ebay_photo, suggest_ebay_categories, get_ebay_category_aspects). Minor deviations: search_ebay puts the object last and search_ebay_by_image adds a prepositional suffix. Still highly predictable and readable.

Tool Count5/5

Seven tools covering search, visual search, detail retrieval, media inspection, and category/aspect discovery—each earns its place in the research workflow. No obvious redundancy or padding.

Completeness4/5

The find-inspect-verify loop is fully covered: discover categories/aspects → search (keyword or image) → pull item details → download and zoom photos. Notable gap: no access to sold/completed listings or seller feedback, which limits price valuation and seller vetting, though agents can work around it with external sources.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search eBay listings, track item prices over time, and identify deals below market value using eBay's APIs. It provides tools for category browsing and retrieving detailed information for specific listings.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to search products, view item details, track and place bids, make Buy It Now purchases, view order history, and track shipments on eBay via browser automation with Playwright.
    7
    3 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to search eBay listings, analyze price distributions, find deals, and generate market research overviews via the Model Context Protocol.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Read-only eBay search and listing lookup via the official Browse API, with filters for price, condition, buying format, shipping, and deals.
    4
    MIT