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.
- meta_ads_mcp-1.0.17/.github/workflows/publish-mcp.yml +32 -0
- meta_ads_mcp-1.0.17/.github/workflows/publish.yml +114 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/PKG-INFO +47 -27
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/README.md +45 -25
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/STREAMABLE_HTTP_SETUP.md +10 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/__init__.py +1 -1
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/ads.py +69 -75
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/api.py +3 -2
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/authentication.py +2 -1
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/campaigns.py +35 -1
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/duplication.py +2 -2
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/pyproject.toml +2 -2
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/server.json +1 -1
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_account_info_access_fix.py +7 -7
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_budget_update.py +2 -2
- meta_ads_mcp-1.0.17/tests/test_campaign_objective_filter.py +518 -0
- meta_ads_mcp-1.0.17/tests/test_create_ad_creative_simple.py +127 -0
- meta_ads_mcp-1.0.17/tests/test_create_simple_creative_e2e.py +49 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_dsa_beneficiary.py +23 -23
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_dsa_integration.py +14 -14
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_duplication.py +1 -1
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_duplication_regression.py +1 -1
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_dynamic_creatives.py +12 -14
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_estimate_audience_size.py +1 -1
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_get_account_pages.py +8 -8
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_insights_actions_and_values_e2e.py +1 -1
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_insights_pagination.py +1 -1
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_mobile_app_adset_creation.py +1 -1
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_targeting.py +2 -2
- meta_ads_mcp-1.0.11/.github/workflows/publish-mcp.yml +0 -70
- meta_ads_mcp-1.0.11/.github/workflows/publish.yml +0 -39
- meta_ads_mcp-1.0.11/CUSTOM_META_APP.md +0 -110
- meta_ads_mcp-1.0.11/LOCAL_INSTALLATION.md +0 -489
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/.github/workflows/test.yml +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/.gitignore +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/Dockerfile +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/LICENSE +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/META_API_NOTES.md +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/RELEASE.md +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/examples/README.md +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/examples/example_http_client.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/future_improvements.md +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/images/meta-ads-example.png +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_auth.sh +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/__main__.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/__init__.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/accounts.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/ads_library.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/adsets.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/auth.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/budget_schedules.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/callback_server.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/http_auth_integration.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/insights.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/openai_deep_research.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/pipeboard_auth.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/reports.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/resources.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/server.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/targeting.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/meta_ads_mcp/core/utils.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/requirements.txt +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/setup.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/smithery.yaml +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/README.md +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/README_REGRESSION_TESTS.md +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/__init__.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/conftest.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/e2e_account_info_search_issue.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_account_search.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_budget_update_e2e.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_estimate_audience_size_e2e.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_get_ad_creatives_fix.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_get_ad_image_quality_improvements.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_get_ad_image_regression.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_http_transport.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_integration_openai_mcp.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_is_dynamic_creative_adset.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_mobile_app_adset_issue.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_openai.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_openai_mcp_deep_research.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_page_discovery.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_page_discovery_integration.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_targeting_search_e2e.py +0 -0
- {meta_ads_mcp-1.0.11 → meta_ads_mcp-1.0.17}/tests/test_update_ad_creative_id.py +0 -0
- {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.
|
|
4
|
-
Summary: Model Context Protocol (MCP) server for
|
|
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
|
|
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
|
[](https://github.com/user-attachments/assets/3e605cee-d289-414b-814c-6299e7f3383e)
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
[](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
|
-
|
|
118
|
+
#### Advanced: Direct Token Authentication (Other Clients)
|
|
91
119
|
|
|
92
|
-
|
|
120
|
+
For MCP clients that support token-based authentication, you can append your Pipeboard API token to the URL:
|
|
93
121
|
|
|
94
|
-
|
|
122
|
+
```
|
|
123
|
+
https://mcp.pipeboard.co/meta-ads-mcp?token=YOUR_PIPEBOARD_TOKEN
|
|
124
|
+
```
|
|
95
125
|
|
|
96
|
-
|
|
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
|
-
|
|
99
|
-
# Install via uvx (recommended)
|
|
100
|
-
uvx meta-ads-mcp
|
|
128
|
+
## Local Installation (Advanced Technical Users Only)
|
|
101
129
|
|
|
102
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
[](https://github.com/user-attachments/assets/3e605cee-d289-414b-814c-6299e7f3383e)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
[](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
|
-
|
|
93
|
+
#### Advanced: Direct Token Authentication (Other Clients)
|
|
66
94
|
|
|
67
|
-
|
|
95
|
+
For MCP clients that support token-based authentication, you can append your Pipeboard API token to the URL:
|
|
68
96
|
|
|
69
|
-
|
|
97
|
+
```
|
|
98
|
+
https://mcp.pipeboard.co/meta-ads-mcp?token=YOUR_PIPEBOARD_TOKEN
|
|
99
|
+
```
|
|
70
100
|
|
|
71
|
-
|
|
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
|
-
|
|
74
|
-
# Install via uvx (recommended)
|
|
75
|
-
uvx meta-ads-mcp
|
|
103
|
+
## Local Installation (Advanced Technical Users Only)
|
|
76
104
|
|
|
77
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|