Instagram & Facebook MCP server for Meta Marketing API v25 with secure token redaction, cursor pagination, and OSS tooling for campaigns, ad sets, ads, creatives, insights, and reports.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"meta-ads-armavita": {
"env": {
"META_ACCESS_TOKEN": "EA...",
"META_GRAPH_API_VERSION": "v25.0"
},
"command": "armavita-meta-ads-mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
armavita-meta-ads-mcp is a local Model Context Protocol server for Meta Ads. It is built for local MCP clients (Claude Code, Cursor, Codex) and supports:
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
uvx 'armavita-meta-ads-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked armavita-meta-ads-mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in marketing
DataForSEO API modelcontextprotocol server
一键同步文章到多个内容平台,支持今日头条、WordPress、知乎、简书、掘金、CSDN、typecho各大平台,一次发布,多平台同步发布。解放个人生产力
MCP server for the PostFast API — schedule and manage social media posts via AI tools
Google Ads MCP with MCC support: 35 tools for campaigns, keywords, reporting, GAQL.
MCP Security Weekly
Get CVE alerts and security updates for Armavita Meta Ads Mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Brought to you by ArmaVita.com
Need a custom implementation? Contact us.
armavita-meta-ads-mcp is a local Model Context Protocol server for Meta Ads.
It is built for local MCP clients (Claude Code, Cursor, Codex) and supports:
META_ACCESS_TOKEN)META_APP_ID + META_APP_SECRET)3.11+mcp[cli]==1.26.0v25.0 by default (META_GRAPH_API_VERSION override supported)Current contract version: 1.1.0.
From PyPI (once published):
pip install armavita-meta-ads-mcp
From source (recommended during development):
uv sync
armavita-meta-ads-mcp
Module entrypoint:
python -m armavita_meta_ads_mcp
Login flow:
armavita-meta-ads-mcp --login
Minimal MCP server registration (JSON format used by many clients):
{
"mcpServers": {
"meta-ads-armavita": {
"command": "armavita-meta-ads-mcp",
"env": {
"META_ACCESS_TOKEN": "EA...",
"META_GRAPH_API_VERSION": "v25.0"
}
}
}
}
OAuth mode (no direct token in config):
{
"mcpServers": {
"meta-ads-armavita": {
"command": "armavita-meta-ads-mcp",
"env": {
"META_APP_ID": "YOUR_APP_ID",
"META_APP_SECRET": "YOUR_APP_SECRET"
}
}
}
}
Then run once to complete login:
armavita-meta-ads-mcp --login
list_ad_accounts, read_ad_accountlist_campaigns, read_campaign, create_campaign, update_campaigncreate_campaign_budget_schedulelist_ad_sets, read_ad_set, create_ad_set, update_ad_setlist_ads, read_ad, list_ad_previews, create_ad, update_ad, list_ad_creatives, read_ad_creative, create_ad_creative, update_ad_creative, upload_ad_image_asset, read_ad_image, export_ad_image_file, search_pages, list_account_pageslist_insights, create_reportsearch_interests, suggest_interests, estimate_audience_size, search_behaviors, search_demographics, search_geo_locationsclone_campaign, clone_ad_set, clone_ad, clone_ad_creativesearch_ads_archivesearch_web_content, read_web_contentCursor-based pagination is supported on core list/read streams:
list_ad_accounts, list_campaigns, list_ad_sets, list_ads, list_insightslist_ad_creatives, search_interests, suggest_interests, search_behaviors, search_demographics, search_geo_locations, search_ads_archivepage_cursor with the paging.cursors.after value from the previous response.paging object.list_insights and create_report support either:
date_range as { "since": "YYYY-MM-DD", "until": "YYYY-MM-DD" }, ordate_range as a preset (for example last_30d, maximum).create_report.comparison_period uses the same format and validation as date_range.previous_30d is normalized to last_30d.action_breakdowns (and optional summary_action_breakdowns) instead of mixing action keys into breakdowns.paging.next URLs).