Facebook Ads MCP Server
Tisik79/MCP-Facebook · 13 stars · TypeScript
MCP server MCP server pro zadávání a vyhodnocování reklamních kampaní na Facebooku pomocí Claude AI
Install
The repo has no one-line install. Follow its README.
Files
Facebook Ads MCP Server
🇨🇿 Česká verze
MCP server for managing Facebook ads straight from Claude AI. No manual token hunting — sign in with Facebook once and you're done.
Features
- Campaign management (create, update, delete)
- Ad sets and individual ads
- Analytics and insights
- Custom and lookalike audiences
- Page posts
- Automatic token management (page tokens are permanent)
Installation
Requirements
- Node.js 18+
- Claude Desktop
1. Clone the repository
git clone https://github.com/Tisik79/MCP-Facebook.git cd MCP-Facebook npm install npm run build
2. Add to Claude Desktop
Open the Claude Desktop config file:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add:
{
"mcpServers": {
"facebook-ads": {
"command": "node",
"args": ["/PATH/TO/MCP-Facebook/dist/index.js"]
}
}
}
3. First run — 5-minute setup
On first start, a wizard walks you through creating your own Facebook App:
Steps:
1. Click "Create App"
2. Choose type: "Business"
3. Enter any name (e.g. "My Ads")
4. After creation, go to Settings → Basic
5. Copy the App ID and App Secret
6. Add the "Facebook Login" product and set:
Valid OAuth Redirect URIs: http://localhost:3456/auth/callback
7. In Basic settings, add "localhost" to App Domains
After entering the App ID and Secret, a browser opens automatically → sign in with Facebook → done.
Re-login / adding pages
node dist/index.js login
Usage in Claude
"Show my active campaigns"
"Create a campaign for MyBrand with a $20 daily budget"
"How did my ads perform last month?"
"Post an update to page XY"
Available Tools
| Tool | Description |
|---|---|
connect_facebook_account / set_facebook_token |
Sign in via OAuth / store a token from Graph API Explorer |
list_connected_accounts / set_active_account |
Show connected pages & accounts / switch the active one |
facebook_setup_help |
Step-by-step connection guide |
get_campaigns |
List campaigns |
create_campaign |
Create a new campaign |
update_campaign |
Update a campaign (incl. bidStrategy) — read-after-write |
get_campaign_details |
Campaign detail (budget, bid_strategy, spend today) |
delete_campaign |
Delete a campaign |
get_campaign_insights |
Campaign analytics |
get_adset_insights / get_ad_insights |
Ad set / ad level analytics |
get_adsets |
List ad sets |
create_ad_set |
Create an ad set (incl. lead fields promotedObject / destinationType) |
update_adset |
Update an ad set (name / status) — real write + read-after-write verification |
get_ads |
List ads (filtered via adSetId/campaignId edge + status) |
get_ad |
Ad detail incl. creative (link, CTA, copy, video/image) |
upload_ad_media |
Upload an image (image_hash) or video (video_id) |
create_adcreative |
Create a creative from object_story_spec |
create_ad |
Create an ad (defaults to PAUSED) |
update_ad |
Update an ad (name/status/creative) — read-after-write |
delete_ad |
Delete an ad |
create_lead_form |
Create an instant lead form on a page |
get_lead_forms |
List lead forms (id, name, status, leads_count) |
get_pixels |
Account pixels (id, name) for promoted_object |
create_pixel / update_pixel / get_pixel |
Pixel management (detail incl. last_fired_time) |
get_pixel_stats |
Pixel event statistics (verify events are flowing) |
search_interests / get_interest_suggestions |
Interest search & suggestions for targeting |
search_behaviors |
Behavior categories for targeting |
search_geo_locations |
Geo keys (region/city/zip) for targeting.geo_locations |
estimate_audience_size |
Audience size estimate for a given targeting spec |
send_conversion_event / send_conversion_events_batch |
Conversions API — server-side events (auto SHA-256 PII hashing) |
get_custom_conversions / get_custom_conversion |
List / detail of custom conversions |
create_custom_conversion / update_custom_conversion / delete_custom_conversion |
Custom conversions (custom_conversion_id for lead campaigns) |
get_offline_conversion_sets / create_offline_conversion_set / upload_offline_conversions |
Offline conversions from your CRM |
update_adcreative |
Update a creative (name/status — content is immutable) |
get_audiences |
Custom audiences |
create_custom_audience |
Create an audience |
create_lookalike_audience |
Lookalike audience |
create_post |
Page post |
create_video_post |
Video page post (resumable upload, unpublished by default) |
The scope of the targeting/conversion tool set was inspired by Draivix/aidvertaiser (David Strejc, MIT) — thanks!
Lead Campaigns (OUTCOME_LEADS)
Lead collection has two paths; both require promotedObject + destinationType on the ad set:
- Website conversions —
optimizationGoal=OFFSITE_CONVERSIONS,destinationType=WEBSITE,promotedObject={ pixel_id, custom_event_type: "LEAD" }(find your Pixel ID viaget_pixels). - Instant form —
optimizationGoal=LEAD_GENERATION,destinationType=ON_AD,promotedObject={ page_id }, creative withcall_to_action.value.lead_gen_form_id(create the form viacreate_lead_form).
Without promotedObject + destinationType, Meta returns "Invalid parameter". For accounts
with campaign-level budget (CBO), do not set a budget on the ad set — it inherits from the
campaign. If the campaign uses a cap bid strategy (LOWEST_COST_WITH_BID_CAP), the ad set
requires bidAmount; otherwise set the campaign to bidStrategy=LOWEST_COST_WITHOUT_CAP.
License
MIT
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 13
- Language
- TypeScript
- Last push
- 2026-07-06
- Forks
- 7
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k