Current collected state Current
Observed since 20 Oct, 19:31 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
adiffy-meta-ads-mcp
Adiffy Meta Ads MCP Server — Model Context Protocol server for Meta Ads API
Model Context Protocol (MCP) server for Meta Ads API
Provides 29+ tools for managing Meta (Facebook/Instagram) advertising campaigns through any MCP-compatible client.
META_APP_ID, META_APP_SECRET)META_ACCESS_TOKEN)# Required
export META_APP_ID="your_meta_app_id"
export META_APP_SECRET="your_meta_app_secret"
export META_ACCESS_TOKEN="your_access_token"
# Optional
export META_ADS_ENABLE_REPORTS="1" # Enable report generation
export META_ADS_DISABLE_CALLBACK_SERVER="1" # Disable local OAuth server
export META_ADS_DISABLE_LOGIN_LINK="1" # Disable login link tool
# Install with pip
pip install -e .
# Or with uv
uv pip install -e .
# Default: stdio transport (for MCP clients like Claude Desktop)
adiffy-meta-ads-mcp
# HTTP transport (for web integrations)
adiffy-meta-ads-mcp --transport streamable-http --port 8080
# Login only
adiffy-meta-ads-mcp --login
docker build -t adiffy-meta-ads-mcp .
docker run -e META_APP_ID="..." -e META_APP_SECRET="..." -e META_ACCESS_TOKEN="..." adiffy-meta-ads-mcp
Add to your MCP client config (e.g., mcp_config.json):
{
"meta-ads": {
"command": "adiffy-meta-ads-mcp",
"env": {
"META_APP_ID": "your_app_id",
"META_APP_SECRET": "your_app_secret",
"META_ACCESS_TOKEN": "your_token"
}
}
}
| Tool | Description |
|---|---|
get_ad_accounts | List all accessible ad accounts |
get_account_info | Get details for a specific account |
get_campaigns | List campaigns with filtering |
get_campaign_details | Get campaign details and metrics |
create_campaign | Create a new campaign |
get_adsets | List ad sets with filtering |
get_adset_details | Get ad set details |
update_adset | Update ad set settings |
get_ads | List ads with filtering |
get_ad_details | Get ad details |
get_ad_creatives | Get creative details for ads |
get_creative_details | Get specific creative details |
get_ad_image | Download ad creative images |
update_ad | Update ad settings |
get_insights | Get performance insights |
search_interests | Search for targeting interests |
get_interest_suggestions | Get interest suggestions |
estimate_audience_size | Estimate target audience size |
search_behaviors | Search targeting behaviors |
search_demographics | Search demographics |
search_geo_locations | Search geographic locations |
create_budget_schedule | Create budget schedules |
get_login_link | Start OAuth authentication |
search | OpenAI deep research search |
fetch | OpenAI deep research fetch |
The server supports two authentication modes:
META_ACCESS_TOKEN environment variableMIT License — see LICENSE for details.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
httpxEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | httpx>=0.26.0 | runtime |
mcpEnvironment{
"extras": "cli",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | mcp[cli]==1.12.2 | runtime |
pathlibEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pathlib>=1.0.1 | runtime |
pillowEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pillow>=10.0.0 | runtime |
python-dateutilEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | python-dateutil>=2.8.2 | runtime |
python-dotenvEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | python-dotenv>=1.1.0 | runtime |
requestsEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | requests>=2.32.3 | runtime |
pytest-asyncioEnvironment{
"extras": "",
"marker": "extra == \"test\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pytest-asyncio>=1.0.0; extra == "test" | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"test\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pytest>=8.4.1; extra == "test" | runtime |
bdist_wheel · 76.62 KB · Python py3
sdist · 224.05 KB · Python source
Observed since 20 Oct, 19:31 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:87b4516d2bc1f85d321fe3d4d3c109dd77d24cabf4b1048887b2b6a0bcf4732d