Marketplace Finder MCP Server
Search Facebook Marketplace for listings with filters (query, city, price, radius, days listed, sort, max results) and retrieve full listing details and descriptions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Marketplace Finder MCP Serverfind me a used Herman Miller Aeron under $400 in Seattle, listed this week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Marketplace Finder — an MCP server that searches marketplaces in your own browser
One job: let a remote agent (e.g. claude.ai) search online marketplaces for an item — anything for sale, not just housing — through your logged-in browser, running on your machine.
How it fits together
claude.ai ──HTTPS──▶ tunnel (cloudflared/ngrok) ──▶ this server (your Mac)
│
▼
your logged-in Chromium (Playwright)
│
▼
Facebook Marketplaceclaude.ai can only reach an MCP server over HTTP, but Facebook Marketplace only shows real results to a real, logged-in browser. So this server runs locally (Streamable-HTTP transport), drives your persistent logged-in Chromium, and you expose it to claude.ai through a tunnel.
The agent gathers missing details from you in chat (budget, city, condition…) before it calls a tool — the tools just declare parameters.
Related MCP server: Chrome MCP Server
Tools the agent gets
search_facebook_marketplace—query,city,min_price,max_price,radius_km,days_listed,sort(best/newest/price_low/price_high/distance),max_results. Returns structured listings (title, price, location, url, photo, raw text) pulled straight off the results page.get_listing_details— full description / condition for one listing URL.
Setup — one command
Want the step-by-step + troubleshooting? See DEPLOY.md.
brew install cloudflared # if you don't have it yet
./finder install./finder install does everything, idempotently:
creates the virtualenv, installs deps, downloads Chromium,
opens a browser for your one-time Facebook login,
sets up a permanent Cloudflare tunnel to
https://mcp.<your-domain>/mcp(a named tunnel routed to a domain you manage in Cloudflare — the URL never changes), andinstalls launchd services so the server + tunnel auto-start at login and restart themselves if they crash. No terminals to babysit.
When it finishes it prints your permanent connector URL. Paste it once into claude.ai → Settings → Connectors → Add custom connector:
https://mcp.<your-domain>/mcpNow ask claude.ai things like "find me a used Herman Miller Aeron under $400 in Seattle, listed this week." It will ask for anything it's missing, then call the search tool, which runs in your browser.
Managing it
./finder status # health of server + tunnel, and your connector URL
./finder logs # tail the live logs
./finder restart # bounce both services
./finder login # re-log into Facebook when the session expires
./finder stop # /start, /uninstall also availableBecause the tunnel host is now stable, the server pins it via
MCP_ALLOWED_HOSTS — DNS-rebinding protection is back on (the old rotating
quick-tunnel URL couldn't do this).
Config (environment variables, all optional)
Var | Default | Meaning |
|
| bind address |
|
| port |
| (unset) | set it to lock the server with Google sign-in (the recommended gate that works with claude.ai). |
| (unset) | the matching Google OAuth client secret |
| (unset) | comma-separated allowlist of Google emails permitted to connect |
| (auto) | public base URL for OAuth metadata + the Google redirect; derived from your tunnel host when unset |
| (unset) | static |
| (unset) | comma-separated Host allow-list. Unset = DNS-rebinding protection off (needed so a rotating tunnel host isn't rejected with HTTP 421). Set it to pin specific hosts. |
|
| set |
|
| FB city slug used when a search omits one |
Locking it down (recommended)
Without a gate, anyone who learns your URL can drive your logged-in Facebook
session. ./finder install offers to lock the server to your Google
account. One-time setup in
Google Cloud — full
step-by-step (incl. the consent screen) is in DEPLOY.md:
OAuth consent screen → User type External, then Publish to Production (our scopes are non-sensitive, so no Google review). External + Production is what lets friends with any Gmail sign in.
Credentials → OAuth client ID, type Web application, with the Authorized redirect URI exactly
https://<your-host>/oauth/google/callback.Run
./finder install; paste the Client ID + secret and list the allowed email(s).
claude.ai then shows a Google sign-in when you add the connector; only the allowlisted account(s) get in. (Cloudflare Access does not work here — it breaks claude.ai web; see CLAUDE.md → "Auth".)
Sharing with friends: add their Gmail to MCP_ALLOWED_EMAILS in .finder.env
and ./finder restart, then send them the URL — they add it in their own
claude.ai and sign in. Remove the email + restart to revoke. (Their searches run
through your Facebook session on your Mac.) Details in docs/DEPLOY.md →
"Adding & removing friends".
First connect shows "Server not found"? It's a transient while the OAuth handshake finishes — just refresh. See docs/DEPLOY.md → Troubleshooting.
Notes & next steps
Facebook city slugs are short names like
vancouver,seattle,nyc,la,chicago. The agent passes one ascity.Session expiry: if Facebook starts showing a login wall, the tool says so — run
./finder login(re-auths FB, then restarts the service).Adding marketplaces (Craigslist, eBay, Kijiji…): add a new
@mcp.tool()insrc/server.pythat builds that site's search URL and reuses the same card-extraction pattern. Craigslist needs no login; it's scraped through the same real browser because it blocks datacenter IPs.Clarifying questions are handled by the agent today. If you later want the server to drive structured prompts, that's MCP "elicitation" — a tool can request input mid-call via
ctx.elicit(...); client support is still uneven.
This folder is self-contained and ready to move into its own repo.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wynnset/marketplace-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server