meta-ads-mcp 1.0.11__tar.gz → 1.0.17__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. meta_ads_mcp-1.0.17/.github/workflows/publish-mcp.yml +32 -0
  2. meta_ads_mcp-1.0.17/.github/workflows/publish.yml +114 -0
  3. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/PKG-INFO +47 -27
  4. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/README.md +45 -25
  5. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/STREAMABLE_HTTP_SETUP.md +10 -0
  6. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/__init__.py +1 -1
  7. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/ads.py +69 -75
  8. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/api.py +3 -2
  9. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/authentication.py +2 -1
  10. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/campaigns.py +35 -1
  11. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/duplication.py +2 -2
  12. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/pyproject.toml +2 -2
  13. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/server.json +1 -1
  14. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_account_info_access_fix.py +7 -7
  15. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_budget_update.py +2 -2
  16. meta_ads_mcp-1.0.17/tests/test_campaign_objective_filter.py +518 -0
  17. meta_ads_mcp-1.0.17/tests/test_create_ad_creative_simple.py +127 -0
  18. meta_ads_mcp-1.0.17/tests/test_create_simple_creative_e2e.py +49 -0
  19. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_dsa_beneficiary.py +23 -23
  20. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_dsa_integration.py +14 -14
  21. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_duplication.py +1 -1
  22. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_duplication_regression.py +1 -1
  23. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_dynamic_creatives.py +12 -14
  24. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_estimate_audience_size.py +1 -1
  25. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_get_account_pages.py +8 -8
  26. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_insights_actions_and_values_e2e.py +1 -1
  27. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_insights_pagination.py +1 -1
  28. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_mobile_app_adset_creation.py +1 -1
  29. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_targeting.py +2 -2
  30. meta_ads_mcp-1.0.11/.github/workflows/publish-mcp.yml +0 -70
  31. meta_ads_mcp-1.0.11/.github/workflows/publish.yml +0 -39
  32. meta_ads_mcp-1.0.11/CUSTOM_META_APP.md +0 -110
  33. meta_ads_mcp-1.0.11/LOCAL_INSTALLATION.md +0 -489
  34. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/.github/workflows/test.yml +0 -0
  35. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/.gitignore +0 -0
  36. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/Dockerfile +0 -0
  37. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/LICENSE +0 -0
  38. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/META_API_NOTES.md +0 -0
  39. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/RELEASE.md +0 -0
  40. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/examples/README.md +0 -0
  41. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/examples/example_http_client.py +0 -0
  42. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/future_improvements.md +0 -0
  43. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/images/meta-ads-example.png +0 -0
  44. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_auth.sh +0 -0
  45. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/__main__.py +0 -0
  46. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/__init__.py +0 -0
  47. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/accounts.py +0 -0
  48. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/ads_library.py +0 -0
  49. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/adsets.py +0 -0
  50. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/auth.py +0 -0
  51. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/budget_schedules.py +0 -0
  52. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/callback_server.py +0 -0
  53. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/http_auth_integration.py +0 -0
  54. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/insights.py +0 -0
  55. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/openai_deep_research.py +0 -0
  56. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/pipeboard_auth.py +0 -0
  57. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/reports.py +0 -0
  58. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/resources.py +0 -0
  59. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/server.py +0 -0
  60. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/targeting.py +0 -0
  61. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/utils.py +0 -0
  62. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/requirements.txt +0 -0
  63. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/setup.py +0 -0
  64. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/smithery.yaml +0 -0
  65. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/README.md +0 -0
  66. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/README_REGRESSION_TESTS.md +0 -0
  67. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/__init__.py +0 -0
  68. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/conftest.py +0 -0
  69. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/e2e_account_info_search_issue.py +0 -0
  70. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_account_search.py +0 -0
  71. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_budget_update_e2e.py +0 -0
  72. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_estimate_audience_size_e2e.py +0 -0
  73. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_get_ad_creatives_fix.py +0 -0
  74. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_get_ad_image_quality_improvements.py +0 -0
  75. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_get_ad_image_regression.py +0 -0
  76. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_http_transport.py +0 -0
  77. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_integration_openai_mcp.py +0 -0
  78. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_is_dynamic_creative_adset.py +0 -0
  79. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_mobile_app_adset_issue.py +0 -0
  80. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_openai.py +0 -0
  81. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_openai_mcp_deep_research.py +0 -0
  82. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_page_discovery.py +0 -0
  83. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_page_discovery_integration.py +0 -0
  84. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_targeting_search_e2e.py +0 -0
  85. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_update_ad_creative_id.py +0 -0
  86. {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_upload_ad_image.py +0 -0
@@ -0,0 +1,32 @@
1
+ name: Publish to MCP Registry (manual)
2
+
3
+ on:
4
+ # This workflow is kept for manual runs only. The normal release flow
5
+ # is handled by the consolidated release workflow.
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ publish:
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ id-token: write
13
+ contents: read
14
+
15
+ steps:
16
+ - name: Checkout code
17
+ uses: actions/checkout@v4
18
+
19
+ - name: Install MCP Publisher
20
+ run: |
21
+ curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.1.0/mcp-publisher_1.1.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
22
+
23
+ - name: Login to MCP Registry (DNS auth)
24
+ run: |
25
+ echo "${{ secrets.MCP_PRIVATE_KEY }}" > temp_key.pem
26
+ PRIVATE_KEY_HEX=$(openssl pkey -in temp_key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n')
27
+ ./mcp-publisher login dns --domain pipeboard.co --private-key "$PRIVATE_KEY_HEX"
28
+ rm -f temp_key.pem
29
+
30
+ - name: Publish to MCP Registry
31
+ run: ./mcp-publisher publish
32
+
@@ -0,0 +1,114 @@
1
+ name: "Release: Test, PyPI, MCP"
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ # Allow manual triggering for testing
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ test_and_build:
11
+ name: Test and Build (pre-release gate)
12
+ runs-on: ubuntu-latest
13
+ permissions:
14
+ contents: read
15
+
16
+ steps:
17
+ - name: Check out code
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Set up Python
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: "3.12"
24
+
25
+ - name: Install uv
26
+ uses: astral-sh/setup-uv@v5
27
+
28
+ - name: Install dependencies
29
+ run: |
30
+ uv sync --all-extras --dev
31
+
32
+ - name: Run tests
33
+ run: |
34
+ uv run pytest -q
35
+
36
+ - name: Build wheel and sdist
37
+ run: |
38
+ uv build
39
+
40
+ - name: Validate server.json against schema
41
+ run: |
42
+ uv run python - <<'PY'
43
+ import json, sys, urllib.request
44
+ from jsonschema import validate
45
+ from jsonschema.exceptions import ValidationError
46
+ server = json.load(open('server.json'))
47
+ schema_url = server.get('$schema')
48
+ with urllib.request.urlopen(schema_url) as r:
49
+ schema = json.load(r)
50
+ try:
51
+ validate(instance=server, schema=schema)
52
+ except ValidationError as e:
53
+ print('Schema validation failed:', e, file=sys.stderr)
54
+ sys.exit(1)
55
+ print('server.json is valid')
56
+ PY
57
+
58
+ publish_pypi:
59
+ name: Publish to PyPI
60
+ needs: test_and_build
61
+ runs-on: ubuntu-latest
62
+ environment: release
63
+ permissions:
64
+ id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
65
+ contents: read
66
+
67
+ steps:
68
+ - name: Check out code
69
+ uses: actions/checkout@v4
70
+
71
+ - name: Set up Python
72
+ uses: actions/setup-python@v5
73
+ with:
74
+ python-version: "3.10"
75
+
76
+ - name: Install build dependencies
77
+ run: |
78
+ python -m pip install --upgrade pip
79
+ pip install build
80
+
81
+ - name: Build package
82
+ run: python -m build
83
+
84
+ - name: Publish to PyPI
85
+ uses: pypa/gh-action-pypi-publish@release/v1
86
+ with:
87
+ verbose: true
88
+
89
+ publish_mcp:
90
+ name: Publish to MCP Registry
91
+ needs: publish_pypi
92
+ runs-on: ubuntu-latest
93
+ permissions:
94
+ id-token: write
95
+ contents: read
96
+
97
+ steps:
98
+ - name: Check out code
99
+ uses: actions/checkout@v4
100
+
101
+ - name: Install MCP Publisher
102
+ run: |
103
+ curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.1.0/mcp-publisher_1.1.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
104
+
105
+ - name: Login to MCP Registry (DNS auth)
106
+ run: |
107
+ # Extract private key using official MCP publisher method
108
+ echo "${{ secrets.MCP_PRIVATE_KEY }}" > temp_key.pem
109
+ PRIVATE_KEY_HEX=$(openssl pkey -in temp_key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n')
110
+ ./mcp-publisher login dns --domain pipeboard.co --private-key "$PRIVATE_KEY_HEX"
111
+ rm -f temp_key.pem
112
+
113
+ - name: Publish to MCP Registry
114
+ run: ./mcp-publisher publish
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meta-ads-mcp
3
- Version: 1.0.11
4
- Summary: Model Context Protocol (MCP) server for interacting with Meta Ads API
3
+ Version: 1.0.17
4
+ Summary: Model Context Protocol (MCP) server for Meta Ads - Use Remote MCP at pipeboard.co for easiest setup
5
5
  Project-URL: Homepage, https://github.com/pipeboard-co/meta-ads-mcp
6
6
  Project-URL: Bug Tracker, https://github.com/pipeboard-co/meta-ads-mcp/issues
7
7
  Author-email: Yves Junqueira <yves.junqueira@gmail.com>
@@ -25,13 +25,15 @@ Description-Content-Type: text/markdown
25
25
 
26
26
  # Meta Ads MCP
27
27
 
28
- A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for interacting with Meta Ads API. This tool enables AI models to access, analyze, and manage Meta advertising campaigns through a standardized interface, allowing LLMs to retrieve performance data, visualize ad creatives, and provide strategic insights for Facebook, Instagram, and other Meta platforms.
28
+ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for interacting with Meta Ads. Analyze, manage and optimize Meta advertising campaigns through an AI interface. Use an LLM to retrieve performance data, visualize ad creatives, and provide strategic insights for your ads on Facebook, Instagram, and other Meta platforms.
29
29
 
30
30
  > **DISCLAIMER:** This is an unofficial third-party tool and is not associated with, endorsed by, or affiliated with Meta in any way. This project is maintained independently and uses Meta's public APIs according to their terms of service. Meta, Facebook, Instagram, and other Meta brand names are trademarks of their respective owners.
31
31
 
32
32
  [![Meta Ads MCP Server Demo](https://github.com/user-attachments/assets/3e605cee-d289-414b-814c-6299e7f3383e)](https://github.com/user-attachments/assets/3e605cee-d289-414b-814c-6299e7f3383e)
33
33
 
34
- <!-- mcp-name: io.github.pipeboard-co/meta-ads-mcp -->
34
+ [![MCP Badge](https://lobehub.com/badge/mcp/nictuku-meta-ads-mcp)](https://lobehub.com/mcp/nictuku-meta-ads-mcp)
35
+
36
+ mcp-name: co.pipeboard/meta-ads-mcp
35
37
 
36
38
  ## Community & Support
37
39
 
@@ -66,6 +68,16 @@ The fastest and most reliable way to get started is to **[🚀 Get started with
66
68
 
67
69
  That's it! You can now ask Claude to analyze your Meta ad campaigns, get performance insights, and manage your advertising.
68
70
 
71
+ #### Advanced: Direct Token Authentication (Claude)
72
+
73
+ For direct token-based authentication without the interactive flow, use this URL format when adding the integration:
74
+
75
+ ```
76
+ https://mcp.pipeboard.co/meta-ads-mcp?token=YOUR_PIPEBOARD_TOKEN
77
+ ```
78
+
79
+ Get your token at [pipeboard.co/api-tokens](https://pipeboard.co/api-tokens).
80
+
69
81
  ### For Cursor Users
70
82
 
71
83
  Add the following to your `~/.cursor/mcp.json`. Once you enable the remote MCP, click on "Needs login" to finish the login process.
@@ -81,31 +93,45 @@ Add the following to your `~/.cursor/mcp.json`. Once you enable the remote MCP,
81
93
  }
82
94
  ```
83
95
 
96
+ #### Advanced: Direct Token Authentication (Cursor)
97
+
98
+ If you prefer to authenticate without the interactive login flow, you can include your Pipeboard API token directly in the URL:
99
+
100
+ ```json
101
+ {
102
+ "mcpServers": {
103
+ "meta-ads-remote": {
104
+ "url": "https://mcp.pipeboard.co/meta-ads-mcp?token=YOUR_PIPEBOARD_TOKEN"
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
110
+ Get your token at [pipeboard.co/api-tokens](https://pipeboard.co/api-tokens).
111
+
84
112
  ### For Other MCP Clients
85
113
 
86
114
  Use the Remote MCP URL: `https://mcp.pipeboard.co/meta-ads-mcp`
87
115
 
88
116
  **[📖 Get detailed setup instructions for your AI client here](https://pipeboard.co)**
89
117
 
90
- ## Local Installation (Technical Users Only)
118
+ #### Advanced: Direct Token Authentication (Other Clients)
91
119
 
92
- If you're a developer or need to customize the installation, you can run Meta Ads MCP locally. **Most marketers should use the Remote MCP above instead!** For complete technical setup instructions, see our **[Local Installation Guide](LOCAL_INSTALLATION.md)**.
120
+ For MCP clients that support token-based authentication, you can append your Pipeboard API token to the URL:
93
121
 
94
- Meta Ads MCP also supports **streamable HTTP transport**, allowing you to run it as a standalone HTTP API for web applications and custom integrations. See **[Streamable HTTP Setup Guide](STREAMABLE_HTTP_SETUP.md)** for complete instructions.
122
+ ```
123
+ https://mcp.pipeboard.co/meta-ads-mcp?token=YOUR_PIPEBOARD_TOKEN
124
+ ```
95
125
 
96
- ### Quick Local Setup
126
+ This bypasses the interactive login flow and authenticates immediately. Get your token at [pipeboard.co/api-tokens](https://pipeboard.co/api-tokens).
97
127
 
98
- ```bash
99
- # Install via uvx (recommended)
100
- uvx meta-ads-mcp
128
+ ## Local Installation (Advanced Technical Users Only)
101
129
 
102
- # Set your Pipeboard token
103
- export PIPEBOARD_API_TOKEN=your_pipeboard_token
130
+ 🚀 **We strongly recommend using [Remote MCP](https://pipeboard.co) instead** - it's faster, more reliable, and requires no technical setup.
104
131
 
105
- # Add to your MCP client configuration
106
- ```
132
+ For developers who need to self-host, the package is available via pip. Local installations require creating your own Meta Developer App and implementing the complete OAuth flow. See the source repository for technical details.
107
133
 
108
- For detailed step-by-step instructions, authentication setup, debugging, and troubleshooting, visit **[LOCAL_INSTALLATION.md](LOCAL_INSTALLATION.md)**.
134
+ Meta Ads MCP also supports **streamable HTTP transport**, allowing you to run it as a standalone HTTP API for web applications and custom integrations. See **[Streamable HTTP Setup Guide](STREAMABLE_HTTP_SETUP.md)** for complete instructions.
109
135
 
110
136
  ## Features
111
137
 
@@ -128,9 +154,9 @@ For detailed step-by-step instructions, authentication setup, debugging, and tro
128
154
 
129
155
  **[✨ Get started with Remote MCP here](https://pipeboard.co)** - no technical setup required! Just connect your Facebook Ads account and start asking AI to analyze your campaigns.
130
156
 
131
- ### Local Installation (Technical Users)
157
+ ### Local Installation (Advanced Technical Users)
132
158
 
133
- For local installation configuration, authentication options, and advanced technical setup, see our **[Local Installation Guide](LOCAL_INSTALLATION.md)**.
159
+ For advanced users who need to self-host, the package can be installed from source. Local installations require creating your own Meta Developer App. **We recommend using [Remote MCP](https://pipeboard.co) for a simpler experience.**
134
160
 
135
161
  ### Available MCP Tools
136
162
 
@@ -456,7 +482,7 @@ The only restriction is that you cannot offer this as a competing hosted service
456
482
  Meta Ads MCP follows security best practices with secure token management and automatic authentication handling.
457
483
 
458
484
  - **Remote MCP**: All authentication is handled securely in the cloud - no local token storage required
459
- - **Local Installation**: Tokens are cached securely on your local machine - see [Local Installation Guide](LOCAL_INSTALLATION.md) for details
485
+ - **Local Installation**: Tokens are cached securely on your local machine
460
486
 
461
487
  ## Testing
462
488
 
@@ -468,7 +494,7 @@ Test your Meta Ads MCP connection with any MCP client:
468
494
  2. **Check Account Details**: Use `mcp_meta_ads_get_account_info` with your account ID
469
495
  3. **List Campaigns**: Try `mcp_meta_ads_get_campaigns` to see your ad campaigns
470
496
 
471
- For detailed local installation testing, see [Local Installation Guide](LOCAL_INSTALLATION.md).
497
+ For detailed local installation testing, see the source repository.
472
498
 
473
499
  ## Troubleshooting
474
500
 
@@ -478,10 +504,4 @@ The easiest way to avoid any setup issues is to **[🎯 use our Remote MCP inste
478
504
 
479
505
  ### Local Installation Issues
480
506
 
481
- For comprehensive troubleshooting, debugging, and local installation issues, see our **[Local Installation Guide](LOCAL_INSTALLATION.md)** which includes:
482
-
483
- - Authentication troubleshooting
484
- - Installation issues and solutions
485
- - API error resolution
486
- - Debug logs and diagnostic commands
487
- - Performance optimization tips
507
+ For local installation issues, refer to the source repository. **For the easiest experience, we recommend using [Remote MCP](https://pipeboard.co) instead.**
@@ -1,12 +1,14 @@
1
1
  # Meta Ads MCP
2
2
 
3
- A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for interacting with Meta Ads API. This tool enables AI models to access, analyze, and manage Meta advertising campaigns through a standardized interface, allowing LLMs to retrieve performance data, visualize ad creatives, and provide strategic insights for Facebook, Instagram, and other Meta platforms.
3
+ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for interacting with Meta Ads. Analyze, manage and optimize Meta advertising campaigns through an AI interface. Use an LLM to retrieve performance data, visualize ad creatives, and provide strategic insights for your ads on Facebook, Instagram, and other Meta platforms.
4
4
 
5
5
  > **DISCLAIMER:** This is an unofficial third-party tool and is not associated with, endorsed by, or affiliated with Meta in any way. This project is maintained independently and uses Meta's public APIs according to their terms of service. Meta, Facebook, Instagram, and other Meta brand names are trademarks of their respective owners.
6
6
 
7
7
  [![Meta Ads MCP Server Demo](https://github.com/user-attachments/assets/3e605cee-d289-414b-814c-6299e7f3383e)](https://github.com/user-attachments/assets/3e605cee-d289-414b-814c-6299e7f3383e)
8
8
 
9
- <!-- mcp-name: io.github.pipeboard-co/meta-ads-mcp -->
9
+ [![MCP Badge](https://lobehub.com/badge/mcp/nictuku-meta-ads-mcp)](https://lobehub.com/mcp/nictuku-meta-ads-mcp)
10
+
11
+ mcp-name: co.pipeboard/meta-ads-mcp
10
12
 
11
13
  ## Community & Support
12
14
 
@@ -41,6 +43,16 @@ The fastest and most reliable way to get started is to **[🚀 Get started with
41
43
 
42
44
  That's it! You can now ask Claude to analyze your Meta ad campaigns, get performance insights, and manage your advertising.
43
45
 
46
+ #### Advanced: Direct Token Authentication (Claude)
47
+
48
+ For direct token-based authentication without the interactive flow, use this URL format when adding the integration:
49
+
50
+ ```
51
+ https://mcp.pipeboard.co/meta-ads-mcp?token=YOUR_PIPEBOARD_TOKEN
52
+ ```
53
+
54
+ Get your token at [pipeboard.co/api-tokens](https://pipeboard.co/api-tokens).
55
+
44
56
  ### For Cursor Users
45
57
 
46
58
  Add the following to your `~/.cursor/mcp.json`. Once you enable the remote MCP, click on "Needs login" to finish the login process.
@@ -56,31 +68,45 @@ Add the following to your `~/.cursor/mcp.json`. Once you enable the remote MCP,
56
68
  }
57
69
  ```
58
70
 
71
+ #### Advanced: Direct Token Authentication (Cursor)
72
+
73
+ If you prefer to authenticate without the interactive login flow, you can include your Pipeboard API token directly in the URL:
74
+
75
+ ```json
76
+ {
77
+ "mcpServers": {
78
+ "meta-ads-remote": {
79
+ "url": "https://mcp.pipeboard.co/meta-ads-mcp?token=YOUR_PIPEBOARD_TOKEN"
80
+ }
81
+ }
82
+ }
83
+ ```
84
+
85
+ Get your token at [pipeboard.co/api-tokens](https://pipeboard.co/api-tokens).
86
+
59
87
  ### For Other MCP Clients
60
88
 
61
89
  Use the Remote MCP URL: `https://mcp.pipeboard.co/meta-ads-mcp`
62
90
 
63
91
  **[📖 Get detailed setup instructions for your AI client here](https://pipeboard.co)**
64
92
 
65
- ## Local Installation (Technical Users Only)
93
+ #### Advanced: Direct Token Authentication (Other Clients)
66
94
 
67
- If you're a developer or need to customize the installation, you can run Meta Ads MCP locally. **Most marketers should use the Remote MCP above instead!** For complete technical setup instructions, see our **[Local Installation Guide](LOCAL_INSTALLATION.md)**.
95
+ For MCP clients that support token-based authentication, you can append your Pipeboard API token to the URL:
68
96
 
69
- Meta Ads MCP also supports **streamable HTTP transport**, allowing you to run it as a standalone HTTP API for web applications and custom integrations. See **[Streamable HTTP Setup Guide](STREAMABLE_HTTP_SETUP.md)** for complete instructions.
97
+ ```
98
+ https://mcp.pipeboard.co/meta-ads-mcp?token=YOUR_PIPEBOARD_TOKEN
99
+ ```
70
100
 
71
- ### Quick Local Setup
101
+ This bypasses the interactive login flow and authenticates immediately. Get your token at [pipeboard.co/api-tokens](https://pipeboard.co/api-tokens).
72
102
 
73
- ```bash
74
- # Install via uvx (recommended)
75
- uvx meta-ads-mcp
103
+ ## Local Installation (Advanced Technical Users Only)
76
104
 
77
- # Set your Pipeboard token
78
- export PIPEBOARD_API_TOKEN=your_pipeboard_token
105
+ 🚀 **We strongly recommend using [Remote MCP](https://pipeboard.co) instead** - it's faster, more reliable, and requires no technical setup.
79
106
 
80
- # Add to your MCP client configuration
81
- ```
107
+ For developers who need to self-host, the package is available via pip. Local installations require creating your own Meta Developer App and implementing the complete OAuth flow. See the source repository for technical details.
82
108
 
83
- For detailed step-by-step instructions, authentication setup, debugging, and troubleshooting, visit **[LOCAL_INSTALLATION.md](LOCAL_INSTALLATION.md)**.
109
+ Meta Ads MCP also supports **streamable HTTP transport**, allowing you to run it as a standalone HTTP API for web applications and custom integrations. See **[Streamable HTTP Setup Guide](STREAMABLE_HTTP_SETUP.md)** for complete instructions.
84
110
 
85
111
  ## Features
86
112
 
@@ -103,9 +129,9 @@ For detailed step-by-step instructions, authentication setup, debugging, and tro
103
129
 
104
130
  **[✨ Get started with Remote MCP here](https://pipeboard.co)** - no technical setup required! Just connect your Facebook Ads account and start asking AI to analyze your campaigns.
105
131
 
106
- ### Local Installation (Technical Users)
132
+ ### Local Installation (Advanced Technical Users)
107
133
 
108
- For local installation configuration, authentication options, and advanced technical setup, see our **[Local Installation Guide](LOCAL_INSTALLATION.md)**.
134
+ For advanced users who need to self-host, the package can be installed from source. Local installations require creating your own Meta Developer App. **We recommend using [Remote MCP](https://pipeboard.co) for a simpler experience.**
109
135
 
110
136
  ### Available MCP Tools
111
137
 
@@ -431,7 +457,7 @@ The only restriction is that you cannot offer this as a competing hosted service
431
457
  Meta Ads MCP follows security best practices with secure token management and automatic authentication handling.
432
458
 
433
459
  - **Remote MCP**: All authentication is handled securely in the cloud - no local token storage required
434
- - **Local Installation**: Tokens are cached securely on your local machine - see [Local Installation Guide](LOCAL_INSTALLATION.md) for details
460
+ - **Local Installation**: Tokens are cached securely on your local machine
435
461
 
436
462
  ## Testing
437
463
 
@@ -443,7 +469,7 @@ Test your Meta Ads MCP connection with any MCP client:
443
469
  2. **Check Account Details**: Use `mcp_meta_ads_get_account_info` with your account ID
444
470
  3. **List Campaigns**: Try `mcp_meta_ads_get_campaigns` to see your ad campaigns
445
471
 
446
- For detailed local installation testing, see [Local Installation Guide](LOCAL_INSTALLATION.md).
472
+ For detailed local installation testing, see the source repository.
447
473
 
448
474
  ## Troubleshooting
449
475
 
@@ -453,10 +479,4 @@ The easiest way to avoid any setup issues is to **[🎯 use our Remote MCP inste
453
479
 
454
480
  ### Local Installation Issues
455
481
 
456
- For comprehensive troubleshooting, debugging, and local installation issues, see our **[Local Installation Guide](LOCAL_INSTALLATION.md)** which includes:
457
-
458
- - Authentication troubleshooting
459
- - Installation issues and solutions
460
- - API error resolution
461
- - Debug logs and diagnostic commands
462
- - Performance optimization tips
482
+ For local installation issues, refer to the source repository. **For the easiest experience, we recommend using [Remote MCP](https://pipeboard.co) instead.**
@@ -83,6 +83,16 @@ curl -H "Authorization: Bearer your_pipeboard_token" \
83
83
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
84
84
  ```
85
85
 
86
+ #### Remote MCP: Token in URL
87
+
88
+ When using the hosted Remote MCP at `https://mcp.pipeboard.co/meta-ads-mcp`, you can alternatively authenticate by including the token as a URL parameter:
89
+
90
+ ```
91
+ https://mcp.pipeboard.co/meta-ads-mcp?token=YOUR_PIPEBOARD_TOKEN
92
+ ```
93
+
94
+ This is particularly useful for MCP clients that don't support interactive authentication flows.
95
+
86
96
  ### Alternative Method: Direct Meta Token
87
97
 
88
98
  If you have a Meta Developer App, you can use a direct access token via the `X-META-ACCESS-TOKEN` header. This is less common.
@@ -6,7 +6,7 @@ This package provides a Meta Ads MCP integration
6
6
 
7
7
  from meta_ads_mcp.core.server import main
8
8
 
9
- __version__ = "1.0.11"
9
+ __version__ = "1.0.17"
10
10
 
11
11
  __all__ = [
12
12
  'get_ad_accounts',