Facebook Marketplace MCP: listing search
Facebook Marketplace MCP Server
A local MCP server that searches Facebook Marketplace using a Chrome session, shows a listing and watches saved searches for new ones
- 492 ★ on the repository
- Last commit
Broad access
Why this level
- The server reads the cookies of your Chrome with an open Facebook session
- The author warns about violating Facebook's terms and about a CAPTCHA or an account flag
Install
- Works in
Manual install
claude mcp add facebook-marketplace -- node /path/to/facebook-marketplace-mcp/dist/index.jsFirst git clone, npm install and npm run build. Needs macOS, Chrome with a Facebook login and Node.js 20+.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The server reads the cookies of your Chrome with an open Facebook session
- The author warns about violating Facebook's terms and about a CAPTCHA or an account flag
This is third-party code. Review the repository files before installing.
What it does
The server replays the requests the Facebook web client sends to Marketplace and uses no automated browser at runtime. For sign-in it takes the cookies of your Chrome with an active Facebook session, so no password goes to the server. There are six tools. search_listings searches by text, center coordinates and radius, with price and category filters. get_listing returns the full data of one listing. monitor_search saves a search, check_monitors shows what is new, and list_monitors and delete_monitor manage the list. The server limits itself to three requests a minute with random jitter so it does not draw attention. That is why a search takes a few seconds. Facebook rotates its query identifiers on deploys, and they are refreshed with the npm run capture-queries script.
Who it is for. For developers and buyers who track listings in their own Facebook account and are ready to build the server from source.
Good fit when
- You want to find a used item near a point on the map and filter by price and radius in kilometers
- You want to save a search and later ask the agent what is new
- You need the full data of one listing by its identifier
- You are studying how the web client talks to the Marketplace GraphQL and want a working TypeScript example
Not a fit when
- The platform is not macOS: automatic cookie extraction uses the macOS keychain
- You cannot break the Facebook terms of service: the author states that automation violates them
- You need to post listings or message sellers: the server is read-only
- You need stability: the server breaks when Facebook changes query identifiers
Example request
Find a bicycle under 300 dollars on Marketplace within 20 km of these coordinates and save the search so I can check for new listingsMCP
- Transport
- stdio
- Authentication
- not required
Environment variables
CHROME_PROFILE- Name of the Chrome profile directory, Default by default
Limitations
- Works only on macOS with Google Chrome installed and a live Facebook login, and needs Node.js 20 or newer.
- Automating Facebook violates its terms of service, and frequent requests can trigger a CAPTCHA or flag the account.
- You build the server yourself: git clone, npm install, npm run build. The repository states no license.
- Facebook is blocked in Russia, so Marketplace availability depends on your connection; this card gives no advice on access.
How to disable. Run claude mcp remove facebook-marketplace, then delete the cloned folder. Saved monitors live in the project's storage and go away with it.
FAQ
How do I connect Facebook Marketplace MCP to Claude Code?
After building, run claude mcp add facebook-marketplace -- node /path/to/facebook-marketplace-mcp/dist/index.js. Another Chrome profile is set with the CHROME_PROFILE environment variable.
What if search stops working?
Facebook rotates doc_id values from time to time. Install playwright, run npx playwright install chromium and npm run capture-queries, then update the values in src/facebook/queries.ts.
Where does the server get access to Facebook?
From the cookies of your Chrome with an active session. Automatic reading works on macOS through the Keychain.
Can this server message sellers or post listings?
No. The server only reads: search, listing view and monitors. It has no messaging or listing creation.
How often does the server call Facebook?
It limits itself to three requests a minute with random pauses, so a search takes a few seconds. The default radius is 50 km and the default result limit is 20.
Discussion
No questions or reviews yet.
Related
MCP serversMCP servers for marketplace search via Apify
Marketplaces MCP Servers
Three MCP servers that search products on Wildberries, Ozon and Yandex Market through Apify actors, with caching and compact output for agent context
Airbnb MCP
mcp-server-airbnb
Airbnb MCP server: an agent searches stays by city, dates, guests and price and opens a listing with its amenities and house rules
An MCP server that drives your already open Chrome and stops to ask you about a 2FA code, a CAPTCHA, or a choice only you can make
A unified search MCP server: one interface to Tavily, Brave, Kagi, Exa, Linkup, Firecrawl and GitHub search
A Chrome extension with an MCP server: the agent drives your everyday browser with its sessions, tabs, bookmarks and history
Hyperbrowser MCP
Hyperbrowser MCP Server
The official MCP server for Hyperbrowser cloud browsers: page scraping and crawling, structured data, Bing search and three browser agents
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Facebook Marketplace MCP: listing search (this entry) | no | not required | 492 | |
| Facebook MCP | no | API key | 11 | a remote HasData service for public Facebook pages, with no listing search |
| avito-mcp-ru | no | OAuth | 3 | Avito classifieds, a different service |
README in short
The README explains the principle: the web client sends every Marketplace request as a POST to /api/graphql/ with a doc_id and variables, and the server replays them with your cookies. The author compares the approach to pypush for iMessage. Then come requirements, installation, connection to Claude Code, parameter tables for every tool, the CHROME_PROFILE variable, how to refresh query identifiers, self-imposed rate limiting and a list of limitations.