About FindA.Sale
FindA.Sale is a public, read-only MCP server for finding sales and items listed on FindA.Sale. It supports searches across local sales, auctions, flea markets, resale shops and sale items.
Key features
- 01Search sales and sale items
- 02Retrieve sale and item records
- 03List cities and sale categories
- 04Find trending and upcoming sales
- 05Locate an item for sale
- 06Read-only public data access
Use cases
- 01Find yard or garage sales in a city
- 02Search items available at local sales
- 03Check which sales are starting soon
- 04Explore trending sales and categories
MCP support
Exposes FindA.Sale's public sales and item data through read-only MCP tools, including search, record lookup, city and category listings, and trending or upcoming sales.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.finda.sale/mcpclaude mcp add --transport http sale-finda-findasale https://mcp.finda.sale/mcp{"mcpServers":{"sale-finda-findasale":{"type":"http","url":"https://mcp.finda.sale/mcp"}}}Open in Cursor{"servers":{"sale-finda-findasale":{"type":"http","url":"https://mcp.finda.sale/mcp"}}}Open in VS Code{"mcpServers":{"sale-finda-findasale":{"type":"http","url":"https://mcp.finda.sale/mcp"}}}{"mcpServers":{"sale-finda-findasale":{"serverUrl":"https://mcp.finda.sale/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://mcp.finda.sale/mcphttps://mcp.finda.sale/sseTools
Details
From the project READMEFindA.Sale MCP Server
Public, read-only Model Context Protocol server for finding sales and items on FindA.Sale.
Built on the official TypeScript MCP SDK v2 (@modelcontextprotocol/server 2.3.x, MCP spec 2026-07-28).
Production: https://mcp.finda.sale (Railway service findasale, project keen-wisdom, root directory packages/mcp-server, Dockerfile.production, auto-deploys on pushes to main that touch packages/mcp-server/**).
Endpoints
| Path | Purpose |
|---|---|
POST /mcp | Streamable HTTP transport, stateless. Serves 2026-07-28 clients and 2025-era clients (stateless fallback). GET/DELETE answer 405. |
GET /sse + POST /messages?sessionId=… | Legacy HTTP+SSE transport (deprecated in the spec, kept for existing clients) via @modelcontextprotocol/server-legacy/sse. |
POST /messages (no sessionId) | Sessionless JSON-RPC shim kept from v1: initialize, ping, tools/list, tools/call. |
GET /mcp/server-card | MCP Server Card (application/mcp-server-card+json). Alias: /.well-known/mcp/server-card.json. |
GET /.well-known/ai-catalog.json | AI Catalog linking the Server Card. |
GET /.well-known/mcp.json | Informal manifest (also mirrored at finda.sale/.well-known/mcp.json). |
GET /health | Railway health check. |
Tools
All ten tools are read-only (readOnlyHint: true, destructiveHint: false, idempotentHint: true).
Schemas live next to each tool in src/tools/*.ts (zod v4); handlers in src/handlers.ts.
search_sales, get_sale, search_items, get_item, list_cities, list_sale_types,
list_categories, get_trending_sales, get_sales_starting_soon, find_item_for_sale.
Privacy and safety rules
- The backend is always called anonymously (no auth header is ever sent or forwarded), so its public-viewer rules apply: DRAFT/CANCELLED/deleted sales 404, early-access and Legendary items stay embargoed, street addresses are withheld.
- Every response is rebuilt from an allow-list in
src/lib/publicShape.ts. Street address, entrance pin, approach notes, organizer phone/address/user id, payment processor ids and scrape metadata are never returned. Coordinates are rounded to 2 decimals (about 1 km). - Backend errors are mapped to short generic messages.
Rate limits and caching
- Per IP: 120 MCP HTTP requests per minute (
RATE_LIMIT_MAX_REQUESTS), plus per-tool limits (10 to 40 per minute) insrc/lib/rateLimiter.ts. - Legacy SSE: at most 10 open sessions per IP and 300 total; sessions close after 1 hour.
- Backend GET responses are cached in memory (60 s for searches, 10 min for cities/categories, 30 min for sale summaries used by city-filtered item search).
Configuration
See .env.example: BACKEND_URL, PORT (3003), MCP_PUBLIC_ORIGIN, RATE_LIMIT_MAX_REQUESTS, NODE_ENV.
Local run
npm install
npm run build
BACKEND_URL=https://api.finda.sale PORT=3003 npm start
Try it with the MCP Inspector (npx @modelcontextprotocol/inspector) against http://localhost:3003/mcp.
Registry
Official MCP Registry name: sale.finda/findasale (DNS-authenticated namespace for finda.sale).
Submission steps: claude_docs/operations/mcp-registry-submission-2026-10-23.md.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.