MCP server acting as an interface to the Facebook Ads, enabling programmatic access to Facebook Ads data and management features.
This project provides an MCP server acting as an interface to the Facebook Ads, enabling programmatic access to Facebook Ads data and management features.
claude_demo.mp4
For a simpler setup experience, we offer ready-to-use installers:
This setup does not require you to manually obtain a Facebook Developer Access Token.
Instead, it connects securely to GoMarble's server to create the token on your behalf. GoMarble does not store your token — it is saved locally on your machine for use with the MCP server.
requirements.txt
venv\Scripts\activate
ads_read
). You can generate this through the Facebook Developer portal. Follow this link.To integrate this server with an MCP-compatible client, add a configuration(Claude) similar to the following. Replace YOUR_FACEBOOK_ACCESS_TOKEN
with your actual token and adjust the path to server.py
if necessary.
{ "mcpServers": { "fb-ads-mcp-server": { "command": "python", "args": [ "/path/to/your/fb-ads-mcp-server/server.py", "--fb-token", "YOUR_FACEBOOK_ACCESS_TOKEN" ] // If using a virtual environment, you might need to specify the python executable within the venv: // "command": "/path/to/your/fb-ads-mcp-server/venv/bin/python", // "args": [ // "/path/to/your/fb-ads-mcp-server/server.py", // "--fb-token", // "YOUR_FACEBOOK_ACCESS_TOKEN" // ] } } }
Restart the MCP Client app after making the update in the configuration.
(Note: On Windows, you might need to adjust the command structure or use cmd /k
depending on your setup.)
Execute server.py
, providing the access token via the --fb-token
argument.
python server.py --fb-token YOUR_FACEBOOK_ACCESS_TOKEN
This MCP server provides tools for interacting with Facebook Ads objects and data:
Tool Name | Description |
---|---|
Account & Object Read | |
list_ad_accounts | Lists ad accounts linked to the token. |
get_details_of_ad_account | Retrieves details for a specific ad account. |
get_campaign_by_id | Retrieves details for a specific campaign. |
get_adset_by_id | Retrieves details for a specific ad set. |
get_ad_by_id | Retrieves details for a specific ad. |
get_ad_creative_by_id | Retrieves details for a specific ad creative. |
get_adsets_by_ids | Retrieves details for multiple ad sets by their IDs. |
Fetching Collections | |
get_campaigns_by_adaccount | Retrieves campaigns within an ad account. |
get_adsets_by_adaccount | Retrieves ad sets within an ad account. |
get_ads_by_adaccount | Retrieves ads within an ad account. |
get_adsets_by_campaign | Retrieves ad sets within a campaign. |
get_ads_by_campaign | Retrieves ads within a campaign. |
get_ads_by_adset | Retrieves ads within an ad set. |
get_ad_creatives_by_ad_id | Retrieves creatives associated with an ad. |
Insights & Performance Data | |
get_adaccount_insights | Retrieves performance insights for an ad account. |
get_campaign_insights | Retrieves performance insights for a campaign. |
get_adset_insights | Retrieves performance insights for an ad set. |
get_ad_insights | Retrieves performance insights for an ad. |
fetch_pagination_url | Fetches data from a pagination URL (e.g., from insights). |
Activity/Change History | |
get_activities_by_adaccount | Retrieves change history for an ad account. |
get_activities_by_adset | Retrieves change history for an ad set. |
(Note: Most tools support additional parameters like fields
, filtering
, limit
, pagination, date ranges, etc. Refer to the detailed docstrings within server.py
for the full list and description of arguments for each tool.)
(Note: If your Facebook access token expires, you'll need to generate a new one and update the configuration file of the MCP Client with new token to continue using the tools.)
This project is licensed under the MIT License.
To install Facebook Ads Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @gomarble-ai/facebook-ads-mcp-server --client claude
Channel management and messaging capabilities
Connect to any function, any language, across network boundaries using AgentRPC.
Generate high-quality text-to-speech and text-to-voice outputs using the DAISYS platform.
Create and publish unlimited podcast shows and episodes with ELEMENT.FM
The official ElevenLabs MCP server
Network access with the ability to run commands like ping, traceroute, mtr, http, dns resolve.
Human-in-the-loop platform - Allow AI agents and automations to send requests for approval to your gotoHuman inbox.
AI personal assistant for email Inbox Zero
Integrates the LINE Messaging API to connect an AI Agent to the LINE Official Account.
Make your AI agent speak every language on the planet, using Lingo.dev Localization Engine.