facebook-ads-mcp-server
[](https://archestra.ai/mcp-catalog/gomarble-aifacebook-ads-mcp-server) Python-based implementation.
Documentation
Facebook/Meta Ads MCP Server
This project provides an MCP server acting as an interface to the Meta Ads, enabling programmatic access to Meta Ads data and management features.
Your browser does not support the video tag.
Easy One-Click Setup
For a simpler setup experience, we offer ready-to-use installers:
๐ Download installer - https://gomarble.ai/mcp
Join our community for help and updates
๐ Slack Community - AI in Ads
Try Google ads mcp server also
๐ Google Ads MCP - Google Ads MCP
What It Does
- Installs and configures the MCP server locally
- Automatically handles environment setup
- Prompts for Meta token authentication during the process which is optional
- If Meta access token is not provided then connect to GoMarble's server to create the token on your behalf
Important Disclaimer
This setup does not require you to manually obtain a Meta 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.
Setup
Prerequisites
- Python 3.10+
- Dependencies listed in `requirements.txt`
1. (Optional but Recommended) Create and Activate a Virtual Environment:
python3 -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`Using a virtual environment helps manage project dependencies cleanly[[Source]](https://docs.python.org/3/tutorial/venv.html).
2. Install Dependencies:
pip install -r requirements.txt3. Obtain Meta Access Token: Secure a Meta User Access Token with the necessary permissions (e.g., `ads_read`). You can generate this through the Meta Developer portal. Follow this link.
Usage with MCP Clients (e.g., Cursor, Claude Desktop)
To integrate this server with an MCP-compatible client, add a configuration(Claude) similar to the following. Replace `YOUR_META_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_META_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_META_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.)*
Debugging the Server
Execute `server.py`, providing the access token via the `--fb-token` argument.
python server.py --fb-token YOUR_META_ACCESS_TOKENAvailable MCP Tools
This MCP server provides tools for interacting with META 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 Meta 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.)*
Dependencies
License
This project is licensed under the MIT License.
Installing via Smithery
To install Facebook Ads Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @gomarble-ai/facebook-ads-mcp-server --client claudeFrequently asked questions
What is facebook-ads-mcp-server?
facebook-ads-mcp-server is [](https://archestra.ai/mcp-catalog/gomarble-aifacebook-ads-mcp-server) Python-based implementation.
How do I install facebook-ads-mcp-server?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is facebook-ads-mcp-server open source?
Yes โ it is hosted on GitHub at https://github.com/gomarble-ai/facebook-ads-mcp-server and has 171 stars.
Related MCP tools
MCP Server implementation for Ableton Live OSC control Python-based implementation.
MCP server to manage Facebook and Instagram Ads (Meta Ads) Python-based implementation.
Damn Vulnerable MCP Server Python-based implementation. Trusted by 1200+ developers. Trusted by 1200+ developers. Trusted by 1200+ developers.
A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases Python-based implementation. Trusted by 900+ developers.
Query MCP enables end-to-end management of Supabase via chat interface: read & write query executions, management API support, automatic migration versioning...
Model Context Protocol with Neo4j Python-based implementation. Trusted by 700+ developers. Trusted by 700+ developers. Trusted by 700+ developers.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP