Context7
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
eBay Browse API MCP server — buy-side listing search and price intelligence.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
EBAY_ENV, EBAY_PRD_APP_ID, EBAY_PRD_CERT_ID, EBAY_SBX_APP_ID, EBAY_SBX_CERT_IDค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"ebay": {
"command": "uvx",
"args": [
"ebay-mcp"
],
"env": {
"EBAY_ENV": "ใส่ค่าของคุณ",
"EBAY_PRD_APP_ID": "ใส่ค่าของคุณ",
"EBAY_PRD_CERT_ID": "ใส่ค่าของคุณ",
"EBAY_SBX_APP_ID": "ใส่ค่าของคุณ",
"EBAY_SBX_CERT_ID": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add ebay --env EBAY_ENV='ใส่ค่าของคุณ' --env EBAY_PRD_APP_ID='ใส่ค่าของคุณ' --env EBAY_PRD_CERT_ID='ใส่ค่าของคุณ' --env EBAY_SBX_APP_ID='ใส่ค่าของคุณ' --env EBAY_SBX_CERT_ID='ใส่ค่าของคุณ' -- uvx ebay-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"ebay": {
"command": "uvx",
"args": [
"ebay-mcp"
],
"env": {
"EBAY_ENV": "ใส่ค่าของคุณ",
"EBAY_PRD_APP_ID": "ใส่ค่าของคุณ",
"EBAY_PRD_CERT_ID": "ใส่ค่าของคุณ",
"EBAY_SBX_APP_ID": "ใส่ค่าของคุณ",
"EBAY_SBX_CERT_ID": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"ebay": {
"type": "stdio",
"command": "uvx",
"args": [
"ebay-mcp"
],
"env": {
"EBAY_ENV": "ใส่ค่าของคุณ",
"EBAY_PRD_APP_ID": "ใส่ค่าของคุณ",
"EBAY_PRD_CERT_ID": "ใส่ค่าของคุณ",
"EBAY_SBX_APP_ID": "ใส่ค่าของคุณ",
"EBAY_SBX_CERT_ID": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
EBAY_ENV envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub cunicopia-dev ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: EBAY_PRD_APP_ID, EBAY_PRD_CERT_ID, EBAY_SBX_APP_ID, EBAY_SBX_CERT_ID
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.0) เข้า registry 4 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Context7, Codebase Memory, Exa
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Give an AI agent real, live market prices — straight from the largest secondhand marketplace on the internet.
eBay is a continuously-updating ledger of what physical things actually cost right now. This wraps its Browse API as an MCP server with three tools, so an agent can search listings, pull a single item, and — the useful one — get an aggregated price landscape for anything: min, median, max, broken down by condition.
Python 3.12+ · MIT · MCP server · app-token auth, no user login
Setup is one free eBay app keyset — no user login, no OAuth consent screen to click through. Point an agent at it and ask "what does an RTX 5080 actually go for?" — one call back comes a grounded answer, split by condition, with the cheapest listings attached.
ebay_price_check: how the landscape is built| Tool | What it does |
|---|---|
| `ebay_price_check` | Aggregated price landscape for a query — count, min/median/max, a breakdown by condition, and the cheapest listings. The headline tool. |
| `ebay_search` | Listing search with sorting and filtering — returns clean {itemId, title, price, condition, seller, itemWebUrl} rows. |
| `ebay_get_item` | Full detail for one item by ID. |
// ebay_price_check · query: "RTX 5080", exclude: ["laptop", "notebook"]
{ "count": 47, "currency": "USD", "min": 899, "median": 1099, "max": 2200, "by_condition": { "New": { "count": 18, "min": 1099, "median": 1199, "max": 1634 }, "Used": { "count": 21, "min": 899, "median": 1050, "max": 1499 } }, "cheapest": [ { "price": 899, "condition": "Used", "title": "…", "itemWebUrl": "…" } ] }
Every tool flows through a single EbayBrowseClient, which owns the token and talks to eBay. There's one place credentials are read, one place a token is cached, one place HTTP happens — nothing to drift.
flowchart LR
Agent(["AI agent / Claude"]) subgraph server["ebay-mcp · stdio server"] Tools["ebay_search ebay_get_item ebay_price_check"] Client["EbayBrowseClient"] Cache[("OAuth token in-memory, auto-refresh")] end Cfg["~/.ebay-mcp.toml or env vars"] eBay["eBay Browse API"]
Agent -->|"MCP tool call"| Tools Tools -->|"search / get_item"| Client Client <-->|"reuse or mint token"| Cache Client -->|"Bearer token + query"| eBay eBay -->|"listings JSON"| Client Cfg -.->|"keyset + active env"| Client
The server is async; the client is plain synchronous requests, run in a thread (asyncio.to_thread) so a slow eBay call never blocks the event loop. ebay_price_check is the one tool that does more than pass through — it runs a search and then aggregates the result (see below).
eBay's Browse API uses an application token (the OAuth client-credentials grant) — no user is involved. The client mints one on first use, caches it in memory, and silently refreshes when it's about to expire. You never think about it.
sequenceDiagram
participant T as Tool call participant C as EbayBrowseClient participant O as eBay OAuth participant B as Browse API
T->>C: search("RTX 5080") alt token missing or expired C->>O: POST /identity/v1/oauth2/token Basic(app_id:cert_id), grant=client_credentials O-->>C: access_token + expires_in Note over C: cache until (expires_in − 60s) end C->>B: GET /item_summary/search Authorization: Bearer … B-->>C: listings JSON C-->>T: parsed results
The 60-second buffer means a token is treated as expired slightly early, so a call never races a token that dies mid-flight. Tokens live ~2 hours; in practice one fetch covers a long session.
ebay_price_check: how the landscape is builtThe other two tools are thin wrappers. This one is the reason the project exists: it turns a pile of raw listings into a number you can reason about.
flowchart LR
Q["query
(up to 50 listings)"] S --> F["drop excluded titles
min · median · max"] G --> H["cheapest N (the tail)"] A --> R(["{ count, min, median, max, by_condition, cheapest }"]) H --> R
exclude is what makes the number honest — a search for "RTX 5080" is full of laptops and prebuilt PCs, and exclude: ["laptop", "notebook", "prebuilt"] strips them so the median reflects the actual card. The by_condition split matters just as much: a "median" that blends new-in-box with used-and-abused is noise; split by condition and each tier tells the truth.
One honest limitation worth knowing: the Browse API returns **active asking
prices**, not completed sales. Treat the floor as "best currently advertised,"
not "what it sold for."
git clone https://github.com/cunicopia-dev/ebay-mcp
cd ebay-mcp python3.12 -m venv .venv && source .venv/bin/activate pip install -e .
You need a (free) eBay developer application keyset — see docs/SETUP.md for the five-minute walkthrough. Then wire it into your MCP client:
{
"mcpServers": { "ebay": { "command": "/path/to/ebay-mcp/.venv/bin/ebay-mcp" } } }
Credentials come from environment variables (highest priority) or a `~/.ebay-mcp.toml` file. The active env selects the keyset *and* the API base URL together — so production creds can never accidentally point at the sandbox, or vice versa.
flowchart TD
Start(["load_config()"]) --> Env{"EBAY_ENV / EBAY_*_APP_ID in environment?"} Env -->|"set"| UseEnv["take keyset from env vars"] Env -->|"unset"| Toml{"~/.ebay-mcp.toml present?"} Toml -->|"yes"| UseToml["take keyset from TOML"] Toml -->|"no"| Default["default env = production (error if creds missing)"] UseEnv --> Pick["env → keyset + base URL (locked together)"] UseToml --> Pick Default --> Pick
# ~/.ebay-mcp.toml (chmod 600)
env = "production"
[production] app_id = "YourApp-PRD-..." cert_id = "PRD-..."
[sandbox] app_id = "YourApp-SBX-..." cert_id = "SBX-..."
Check what's active any time — credentials are masked in the output:
ebay-mcp-config
Flip env between sandbox and production to switch environments — same code, different endpoints and keyset. The sandbox is good for proving the auth flow wires up; its inventory is sparse and seeded, so for real prices you want a production keyset.
src/ebay_mcp/
config.py # env + TOML loader; ebay-mcp-config CLI browse.py # EbayBrowseClient — OAuth cache + search / get_item server.py # MCP server: list_tools / call_tool / main tests/ # config precedence, aggregation, tool listing (no network) docs/SETUP.md # getting an eBay keyset
MIT