Skip to content

jdcodes1/facebook-marketplace-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Facebook Marketplace MCP Server

An MCP server that provides access to Facebook Marketplace via direct GraphQL API calls. No browser automation at runtime — speaks Facebook's internal protocol directly.

How It Works

Facebook's web client makes all Marketplace requests as POST /api/graphql/ with a doc_id (query hash) and variables. This server replays those requests using your existing Facebook session cookies from Chrome.

Think of it like pypush for iMessage — direct protocol, no browser.

Prerequisites

  • macOS (cookie extraction uses Keychain)
  • Google Chrome with an active Facebook login
  • Node.js 20+

Installation

git clone <this-repo>
cd facebook-marketplace-mcp
npm install
npm run build

Setup with Claude Code

claude mcp add facebook-marketplace -- node /path/to/facebook-marketplace-mcp/dist/index.js

Or add to your Claude Code config manually:

{
  "mcpServers": {
    "facebook-marketplace": {
      "command": "node",
      "args": ["/path/to/facebook-marketplace-mcp/dist/index.js"],
      "env": {
        "CHROME_PROFILE": "Default"
      }
    }
  }
}

Tools

search_listings

Search Marketplace by query, location, and filters.

Parameter Type Required Description
query string yes Search term
latitude number yes Latitude of search center
longitude number yes Longitude of search center
radius_km number no Search radius (default: 50)
min_price number no Min price in dollars
max_price number no Max price in dollars
category string no Category ID
limit number no Max results (default: 20)

get_listing

Get full details for a specific listing.

Parameter Type Required Description
listing_id string yes Marketplace listing ID

monitor_search

Save a search as a monitor to track new listings over time.

Parameter Type Required Description
name string yes Monitor name
query string yes Search term
latitude number yes Search center lat
longitude number yes Search center lng
radius_km number no Radius (default: 50)
min_price number no Min price
max_price number no Max price

check_monitors

Check monitors for new listings since last check.

Parameter Type Required Description
monitor_name string no Check specific monitor, or omit for all

list_monitors

List all saved monitors.

delete_monitor

Delete a saved monitor.

Configuration

Env Variable Default Description
CHROME_PROFILE Default Chrome profile directory name

Updating GraphQL Queries

Facebook rotates their doc_id values on deploys. If searches stop working:

npm install -D playwright
npx playwright install chromium
npm run capture-queries

This opens a browser, navigates Marketplace, and captures current query IDs. Update src/facebook/queries.ts with the new values.

Rate Limiting

The server self-rate-limits to 3 requests/minute with random jitter to avoid detection. This means searches take a few seconds.

Limitations

  • macOS only for automatic cookie extraction
  • Requires Chrome with active Facebook session
  • Facebook ToS — automating Facebook violates their Terms of Service
  • Fragiledoc_id values change on Facebook deploys
  • Rate limited — aggressive use may trigger CAPTCHAs or account flags
  • No write operations — search/read only, no messaging or listing creation

About

MCP server for searching Facebook Marketplace via Chrome session cookies

Resources

Stars

20 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors