meta-ads-mcp 0.2.3__tar.gz → 0.2.5__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-0.2.5/META_API_NOTES.md +28 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/PKG-INFO +76 -42
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/README.md +75 -41
- meta_ads_mcp-0.2.5/future_improvements.md +11 -0
- meta_ads_mcp-0.2.5/images/meta-ads-example.png +0 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta-ads-mcp +0 -1
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/__init__.py +21 -3
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/api.py +360 -273
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/__init__.py +1 -2
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/accounts.py +3 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/ads.py +5 -0
- meta_ads_mcp-0.2.5/meta_ads_mcp/core/adsets.py +169 -0
- meta_ads_mcp-0.2.5/meta_ads_mcp/core/api.py +264 -0
- meta_ads_mcp-0.2.5/meta_ads_mcp/core/auth.py +1693 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/authentication.py +20 -4
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/campaigns.py +4 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/insights.py +4 -1
- meta_ads_mcp-0.2.5/meta_ads_mcp/core/server.py +84 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/utils.py +53 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/pyproject.toml +1 -1
- meta_ads_mcp-0.2.3/future_improvements.md +0 -59
- meta_ads_mcp-0.2.3/meta_ads_mcp/core/adsets.py +0 -115
- meta_ads_mcp-0.2.3/meta_ads_mcp/core/api.py +0 -211
- meta_ads_mcp-0.2.3/meta_ads_mcp/core/auth.py +0 -416
- meta_ads_mcp-0.2.3/meta_ads_mcp/core/server.py +0 -56
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/.gitignore +0 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/__main__.py +0 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/resources.py +0 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/requirements.txt +0 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/setup.py +0 -0
- {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/test_meta_ads_auth.py +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Meta Ads API Notes and Limitations
|
|
2
|
+
|
|
3
|
+
## Frequency Cap Visibility
|
|
4
|
+
The Meta Marketing API has some limitations regarding frequency cap visibility:
|
|
5
|
+
|
|
6
|
+
1. **Optimization Goal Dependency**: Frequency cap settings (`frequency_control_specs`) are only visible in API responses for ad sets where the optimization goal is set to REACH. For other optimization goals (like LINK_CLICKS, CONVERSIONS, etc.), the frequency caps will still work but won't be visible through the API.
|
|
7
|
+
|
|
8
|
+
2. **Verifying Frequency Caps**: Since frequency caps may not be directly visible, you can verify they're working by monitoring:
|
|
9
|
+
- The frequency metric in ad insights
|
|
10
|
+
- The ratio between reach and impressions over time
|
|
11
|
+
- The actual frequency cap behavior in the Meta Ads Manager UI
|
|
12
|
+
|
|
13
|
+
## Other API Behaviors to Note
|
|
14
|
+
|
|
15
|
+
1. **Field Visibility**: Some fields may not appear in API responses even when explicitly requested. This doesn't necessarily mean the field isn't set - it may just not be visible through the API.
|
|
16
|
+
|
|
17
|
+
2. **Response Filtering**: The API may filter out empty or default values from responses to reduce payload size. If a field is missing from a response, it might mean:
|
|
18
|
+
- The field is not set
|
|
19
|
+
- The field has a default value
|
|
20
|
+
- The field is not applicable for the current configuration
|
|
21
|
+
|
|
22
|
+
3. **Best Practices**:
|
|
23
|
+
- Always verify important changes through both the API and Meta Ads Manager UI
|
|
24
|
+
- Use insights and metrics to confirm behavioral changes when direct field access is limited
|
|
25
|
+
- Consider the optimization goal when setting up features like frequency caps
|
|
26
|
+
|
|
27
|
+
## Updates and Changes
|
|
28
|
+
Meta frequently updates their API behavior. These notes will be updated as we discover new limitations or changes in the API's behavior.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: meta-ads-mcp
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
4
4
|
Summary: Model Calling Protocol (MCP) plugin for interacting with Meta Ads API
|
|
5
5
|
Project-URL: Homepage, https://github.com/nictuku/meta-ads-mcp
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/nictuku/meta-ads-mcp/issues
|
|
@@ -21,16 +21,26 @@ Description-Content-Type: text/markdown
|
|
|
21
21
|
|
|
22
22
|
# Meta Ads MCP
|
|
23
23
|
|
|
24
|
-
A [Model
|
|
24
|
+
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.
|
|
25
|
+
|
|
26
|
+
> **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.
|
|
27
|
+
|
|
28
|
+
Screenhot: using an LLM to understand your ad performance.
|
|
29
|
+
|
|
30
|
+

|
|
25
31
|
|
|
26
32
|
## Features
|
|
27
33
|
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
+
- **AI-Powered Campaign Analysis**: Let your favorite LLM analyze your campaigns and provide actionable insights on performance
|
|
35
|
+
- **Strategic Recommendations**: Receive data-backed suggestions for optimizing ad spend, targeting, and creative content
|
|
36
|
+
- **Automated Monitoring**: Ask any MCP-compatible LLM to track performance metrics and alert you about significant changes
|
|
37
|
+
- **Budget Optimization**: Get recommendations for reallocating budget to better-performing ad sets
|
|
38
|
+
- **Creative Improvement**: Receive feedback on ad copy, imagery, and calls-to-action
|
|
39
|
+
- **Campaign Management**: Request changes to campaigns, ad sets, and ads (all changes require explicit confirmation)
|
|
40
|
+
- **Cross-Platform Integration**: Works with Facebook, Instagram, and all Meta ad platforms
|
|
41
|
+
- **Universal LLM Support**: Compatible with any MCP client including Claude Desktop, Cursor, Cherry Studio, and more
|
|
42
|
+
- **Simple Authentication**: Easy setup with secure OAuth authentication
|
|
43
|
+
- **Cross-Platform Support**: Works on Windows, macOS, and Linux
|
|
34
44
|
|
|
35
45
|
## Installation
|
|
36
46
|
|
|
@@ -39,7 +49,7 @@ A [Model Calling Protocol (MCP)](https://github.com/anthropics/anthropic-tools)
|
|
|
39
49
|
When using uv no specific installation is needed. We can use uvx to directly run meta-ads-mcp:
|
|
40
50
|
|
|
41
51
|
```bash
|
|
42
|
-
uvx meta-ads-mcp
|
|
52
|
+
uvx meta-ads-mcp --app-id YOUR_META_ADS_APP_ID
|
|
43
53
|
```
|
|
44
54
|
|
|
45
55
|
If you want to install the package:
|
|
@@ -79,7 +89,7 @@ Add this to your `claude_desktop_config.json` to integrate with Claude in Cursor
|
|
|
79
89
|
"mcpServers": {
|
|
80
90
|
"meta-ads": {
|
|
81
91
|
"command": "uvx",
|
|
82
|
-
"args": ["meta-ads-mcp"]
|
|
92
|
+
"args": ["meta-ads-mcp", "--app-id", "YOUR_META_ADS_APP_ID"]
|
|
83
93
|
}
|
|
84
94
|
}
|
|
85
95
|
```
|
|
@@ -195,14 +205,7 @@ Add this to your `claude_desktop_config.json` to integrate with Claude in Cursor
|
|
|
195
205
|
- `ad_id`: Meta Ads ad ID (optional, used if url is not provided)
|
|
196
206
|
- Returns: Diagnostic information about image download attempts
|
|
197
207
|
|
|
198
|
-
14. `
|
|
199
|
-
- Try to save an ad image by using the Marketing API's attachment endpoints
|
|
200
|
-
- Inputs:
|
|
201
|
-
- `access_token` (optional): Meta API access token (will use cached token if not provided)
|
|
202
|
-
- `ad_id`: Meta Ads ad ID
|
|
203
|
-
- Returns: Results of attempts to save the ad image
|
|
204
|
-
|
|
205
|
-
15. `mcp_meta_ads_get_login_link`
|
|
208
|
+
14. `mcp_meta_ads_get_login_link`
|
|
206
209
|
- Get a clickable login link for Meta Ads authentication
|
|
207
210
|
- Inputs:
|
|
208
211
|
- `access_token` (optional): Meta API access token (will use cached token if not provided)
|
|
@@ -227,42 +230,73 @@ The Meta Ads MCP uses the OAuth 2.0 flow designed for desktop apps. When authent
|
|
|
227
230
|
3. Ask you to authorize the app
|
|
228
231
|
4. Redirect back to the local server to extract and store the token securely
|
|
229
232
|
|
|
230
|
-
|
|
233
|
+
## Troubleshooting and Logging
|
|
234
|
+
|
|
235
|
+
The Meta Ads MCP includes a comprehensive logging system to help troubleshoot issues:
|
|
236
|
+
|
|
237
|
+
### Log Location
|
|
238
|
+
|
|
239
|
+
Log files are stored in a platform-specific location:
|
|
240
|
+
|
|
241
|
+
- **macOS**: `~/Library/Application Support/meta-ads-mcp/meta_ads_debug.log`
|
|
242
|
+
- **Windows**: `%APPDATA%\meta-ads-mcp\meta_ads_debug.log`
|
|
243
|
+
- **Linux**: `~/.config/meta-ads-mcp/meta_ads_debug.log`
|
|
231
244
|
|
|
232
|
-
|
|
245
|
+
### Common Issues
|
|
233
246
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
When using the Meta Ads MCP through an LLM interface (like Claude), simply use any Meta Ads function. If you're not authenticated, the system will automatically provide a clickable Markdown link to complete the authentication flow.
|
|
247
|
+
#### App ID Issues
|
|
237
248
|
|
|
238
|
-
|
|
239
|
-
[Click here to authenticate with Meta Ads API](https://www.facebook.com/dialog/oauth?...)
|
|
240
|
-
```
|
|
249
|
+
If you encounter errors like `(#200) Provide valid app ID`, check the following:
|
|
241
250
|
|
|
242
|
-
|
|
251
|
+
1. Ensure you've set up a Meta Developer App correctly
|
|
252
|
+
2. Verify that you're passing the correct App ID using one of these methods:
|
|
253
|
+
- Set the `META_APP_ID` environment variable: `export META_APP_ID=your_app_id`
|
|
254
|
+
- Pass it as a command-line argument: `meta-ads-mcp --app-id your_app_id`
|
|
243
255
|
|
|
244
|
-
|
|
256
|
+
#### Authentication Errors
|
|
245
257
|
|
|
246
|
-
|
|
258
|
+
Authentication errors can be tracked in the log file. Check for:
|
|
259
|
+
- Token expiration issues
|
|
260
|
+
- App permission problems
|
|
261
|
+
- Connection errors
|
|
247
262
|
|
|
248
|
-
|
|
249
|
-
uvx meta-ads-mcp --login --app-id YOUR_APP_ID
|
|
250
|
-
```
|
|
263
|
+
### Debugging Command
|
|
251
264
|
|
|
252
|
-
|
|
265
|
+
For specific image download issues, use the built-in diagnostic tool:
|
|
266
|
+
|
|
267
|
+
```python
|
|
268
|
+
# Using direct tool call
|
|
269
|
+
mcp_meta_ads_debug_image_download(ad_id="your_ad_id")
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
This will give you detailed information about the download process and potential issues.
|
|
273
|
+
|
|
274
|
+
## Running with Different App IDs
|
|
275
|
+
|
|
276
|
+
If you need to use different Meta App IDs for different purposes:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# Using environment variable
|
|
280
|
+
export META_APP_ID=your_app_id
|
|
281
|
+
uvx meta-ads-mcp
|
|
282
|
+
|
|
283
|
+
# Or using command line argument
|
|
284
|
+
uvx meta-ads-mcp --app-id=your_app_id
|
|
285
|
+
```
|
|
253
286
|
|
|
254
|
-
|
|
255
|
-
- Windows: `%APPDATA%\meta-ads-mcp\token_cache.json`
|
|
256
|
-
- macOS: `~/Library/Application Support/meta-ads-mcp/token_cache.json`
|
|
257
|
-
- Linux: `~/.config/meta-ads-mcp/token_cache.json`
|
|
287
|
+
## Privacy and Security
|
|
258
288
|
|
|
259
|
-
|
|
289
|
+
The Meta Ads MCP follows security best practices:
|
|
260
290
|
|
|
261
|
-
|
|
291
|
+
1. Tokens are cached in a platform-specific secure location:
|
|
292
|
+
- Windows: `%APPDATA%\meta-ads-mcp\token_cache.json`
|
|
293
|
+
- macOS: `~/Library/Application Support/meta-ads-mcp/token_cache.json`
|
|
294
|
+
- Linux: `~/.config/meta-ads-mcp/token_cache.json`
|
|
262
295
|
|
|
263
|
-
You
|
|
296
|
+
2. You do not need to provide your access token for each command; it will be automatically retrieved from the cache.
|
|
264
297
|
|
|
265
|
-
|
|
298
|
+
3. You can set the following environment variables instead of passing them as arguments:
|
|
299
|
+
- `META_APP_ID`: Your Meta App ID (Client ID)
|
|
266
300
|
|
|
267
301
|
## Testing
|
|
268
302
|
|
|
@@ -326,4 +360,4 @@ You can check the current version of the package:
|
|
|
326
360
|
```python
|
|
327
361
|
import meta_ads_mcp
|
|
328
362
|
print(meta_ads_mcp.__version__)
|
|
329
|
-
```
|
|
363
|
+
```
|
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
# Meta Ads MCP
|
|
2
2
|
|
|
3
|
-
A [Model
|
|
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.
|
|
4
|
+
|
|
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
|
+
|
|
7
|
+
Screenhot: using an LLM to understand your ad performance.
|
|
8
|
+
|
|
9
|
+

|
|
4
10
|
|
|
5
11
|
## Features
|
|
6
12
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
+
- **AI-Powered Campaign Analysis**: Let your favorite LLM analyze your campaigns and provide actionable insights on performance
|
|
14
|
+
- **Strategic Recommendations**: Receive data-backed suggestions for optimizing ad spend, targeting, and creative content
|
|
15
|
+
- **Automated Monitoring**: Ask any MCP-compatible LLM to track performance metrics and alert you about significant changes
|
|
16
|
+
- **Budget Optimization**: Get recommendations for reallocating budget to better-performing ad sets
|
|
17
|
+
- **Creative Improvement**: Receive feedback on ad copy, imagery, and calls-to-action
|
|
18
|
+
- **Campaign Management**: Request changes to campaigns, ad sets, and ads (all changes require explicit confirmation)
|
|
19
|
+
- **Cross-Platform Integration**: Works with Facebook, Instagram, and all Meta ad platforms
|
|
20
|
+
- **Universal LLM Support**: Compatible with any MCP client including Claude Desktop, Cursor, Cherry Studio, and more
|
|
21
|
+
- **Simple Authentication**: Easy setup with secure OAuth authentication
|
|
22
|
+
- **Cross-Platform Support**: Works on Windows, macOS, and Linux
|
|
13
23
|
|
|
14
24
|
## Installation
|
|
15
25
|
|
|
@@ -18,7 +28,7 @@ A [Model Calling Protocol (MCP)](https://github.com/anthropics/anthropic-tools)
|
|
|
18
28
|
When using uv no specific installation is needed. We can use uvx to directly run meta-ads-mcp:
|
|
19
29
|
|
|
20
30
|
```bash
|
|
21
|
-
uvx meta-ads-mcp
|
|
31
|
+
uvx meta-ads-mcp --app-id YOUR_META_ADS_APP_ID
|
|
22
32
|
```
|
|
23
33
|
|
|
24
34
|
If you want to install the package:
|
|
@@ -58,7 +68,7 @@ Add this to your `claude_desktop_config.json` to integrate with Claude in Cursor
|
|
|
58
68
|
"mcpServers": {
|
|
59
69
|
"meta-ads": {
|
|
60
70
|
"command": "uvx",
|
|
61
|
-
"args": ["meta-ads-mcp"]
|
|
71
|
+
"args": ["meta-ads-mcp", "--app-id", "YOUR_META_ADS_APP_ID"]
|
|
62
72
|
}
|
|
63
73
|
}
|
|
64
74
|
```
|
|
@@ -174,14 +184,7 @@ Add this to your `claude_desktop_config.json` to integrate with Claude in Cursor
|
|
|
174
184
|
- `ad_id`: Meta Ads ad ID (optional, used if url is not provided)
|
|
175
185
|
- Returns: Diagnostic information about image download attempts
|
|
176
186
|
|
|
177
|
-
14. `
|
|
178
|
-
- Try to save an ad image by using the Marketing API's attachment endpoints
|
|
179
|
-
- Inputs:
|
|
180
|
-
- `access_token` (optional): Meta API access token (will use cached token if not provided)
|
|
181
|
-
- `ad_id`: Meta Ads ad ID
|
|
182
|
-
- Returns: Results of attempts to save the ad image
|
|
183
|
-
|
|
184
|
-
15. `mcp_meta_ads_get_login_link`
|
|
187
|
+
14. `mcp_meta_ads_get_login_link`
|
|
185
188
|
- Get a clickable login link for Meta Ads authentication
|
|
186
189
|
- Inputs:
|
|
187
190
|
- `access_token` (optional): Meta API access token (will use cached token if not provided)
|
|
@@ -206,42 +209,73 @@ The Meta Ads MCP uses the OAuth 2.0 flow designed for desktop apps. When authent
|
|
|
206
209
|
3. Ask you to authorize the app
|
|
207
210
|
4. Redirect back to the local server to extract and store the token securely
|
|
208
211
|
|
|
209
|
-
|
|
212
|
+
## Troubleshooting and Logging
|
|
213
|
+
|
|
214
|
+
The Meta Ads MCP includes a comprehensive logging system to help troubleshoot issues:
|
|
215
|
+
|
|
216
|
+
### Log Location
|
|
217
|
+
|
|
218
|
+
Log files are stored in a platform-specific location:
|
|
219
|
+
|
|
220
|
+
- **macOS**: `~/Library/Application Support/meta-ads-mcp/meta_ads_debug.log`
|
|
221
|
+
- **Windows**: `%APPDATA%\meta-ads-mcp\meta_ads_debug.log`
|
|
222
|
+
- **Linux**: `~/.config/meta-ads-mcp/meta_ads_debug.log`
|
|
210
223
|
|
|
211
|
-
|
|
224
|
+
### Common Issues
|
|
212
225
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
When using the Meta Ads MCP through an LLM interface (like Claude), simply use any Meta Ads function. If you're not authenticated, the system will automatically provide a clickable Markdown link to complete the authentication flow.
|
|
226
|
+
#### App ID Issues
|
|
216
227
|
|
|
217
|
-
|
|
218
|
-
[Click here to authenticate with Meta Ads API](https://www.facebook.com/dialog/oauth?...)
|
|
219
|
-
```
|
|
228
|
+
If you encounter errors like `(#200) Provide valid app ID`, check the following:
|
|
220
229
|
|
|
221
|
-
|
|
230
|
+
1. Ensure you've set up a Meta Developer App correctly
|
|
231
|
+
2. Verify that you're passing the correct App ID using one of these methods:
|
|
232
|
+
- Set the `META_APP_ID` environment variable: `export META_APP_ID=your_app_id`
|
|
233
|
+
- Pass it as a command-line argument: `meta-ads-mcp --app-id your_app_id`
|
|
222
234
|
|
|
223
|
-
|
|
235
|
+
#### Authentication Errors
|
|
224
236
|
|
|
225
|
-
|
|
237
|
+
Authentication errors can be tracked in the log file. Check for:
|
|
238
|
+
- Token expiration issues
|
|
239
|
+
- App permission problems
|
|
240
|
+
- Connection errors
|
|
226
241
|
|
|
227
|
-
|
|
228
|
-
uvx meta-ads-mcp --login --app-id YOUR_APP_ID
|
|
229
|
-
```
|
|
242
|
+
### Debugging Command
|
|
230
243
|
|
|
231
|
-
|
|
244
|
+
For specific image download issues, use the built-in diagnostic tool:
|
|
245
|
+
|
|
246
|
+
```python
|
|
247
|
+
# Using direct tool call
|
|
248
|
+
mcp_meta_ads_debug_image_download(ad_id="your_ad_id")
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
This will give you detailed information about the download process and potential issues.
|
|
252
|
+
|
|
253
|
+
## Running with Different App IDs
|
|
254
|
+
|
|
255
|
+
If you need to use different Meta App IDs for different purposes:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
# Using environment variable
|
|
259
|
+
export META_APP_ID=your_app_id
|
|
260
|
+
uvx meta-ads-mcp
|
|
261
|
+
|
|
262
|
+
# Or using command line argument
|
|
263
|
+
uvx meta-ads-mcp --app-id=your_app_id
|
|
264
|
+
```
|
|
232
265
|
|
|
233
|
-
|
|
234
|
-
- Windows: `%APPDATA%\meta-ads-mcp\token_cache.json`
|
|
235
|
-
- macOS: `~/Library/Application Support/meta-ads-mcp/token_cache.json`
|
|
236
|
-
- Linux: `~/.config/meta-ads-mcp/token_cache.json`
|
|
266
|
+
## Privacy and Security
|
|
237
267
|
|
|
238
|
-
|
|
268
|
+
The Meta Ads MCP follows security best practices:
|
|
239
269
|
|
|
240
|
-
|
|
270
|
+
1. Tokens are cached in a platform-specific secure location:
|
|
271
|
+
- Windows: `%APPDATA%\meta-ads-mcp\token_cache.json`
|
|
272
|
+
- macOS: `~/Library/Application Support/meta-ads-mcp/token_cache.json`
|
|
273
|
+
- Linux: `~/.config/meta-ads-mcp/token_cache.json`
|
|
241
274
|
|
|
242
|
-
You
|
|
275
|
+
2. You do not need to provide your access token for each command; it will be automatically retrieved from the cache.
|
|
243
276
|
|
|
244
|
-
|
|
277
|
+
3. You can set the following environment variables instead of passing them as arguments:
|
|
278
|
+
- `META_APP_ID`: Your Meta App ID (Client ID)
|
|
245
279
|
|
|
246
280
|
## Testing
|
|
247
281
|
|
|
@@ -305,4 +339,4 @@ You can check the current version of the package:
|
|
|
305
339
|
```python
|
|
306
340
|
import meta_ads_mcp
|
|
307
341
|
print(meta_ads_mcp.__version__)
|
|
308
|
-
```
|
|
342
|
+
```
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Future Improvements for Meta Ads MCP
|
|
2
|
+
|
|
3
|
+
## Note about Meta Ads development work
|
|
4
|
+
|
|
5
|
+
If you update the MCP server code, please note that *I* have to restart the MCP server. After the server code is changed, ask me to restart it and then proceed with your testing after I confirm it's restarted.
|
|
6
|
+
|
|
7
|
+
## Access token should remain internal only
|
|
8
|
+
|
|
9
|
+
Don't share it ever with the LLM, only update the auth cache.
|
|
10
|
+
|
|
11
|
+
Future improvements can be added to this file as needed.
|
|
Binary file
|
|
@@ -7,9 +7,27 @@ with the Claude LLM.
|
|
|
7
7
|
|
|
8
8
|
from meta_ads_mcp.core.server import main
|
|
9
9
|
|
|
10
|
-
__version__ = "0.2.
|
|
10
|
+
__version__ = "0.2.5"
|
|
11
11
|
|
|
12
|
-
__all__ = [
|
|
12
|
+
__all__ = [
|
|
13
|
+
'get_ad_accounts',
|
|
14
|
+
'get_account_info',
|
|
15
|
+
'get_campaigns',
|
|
16
|
+
'get_campaign_details',
|
|
17
|
+
'create_campaign',
|
|
18
|
+
'get_adsets',
|
|
19
|
+
'get_adset_details',
|
|
20
|
+
'update_adset',
|
|
21
|
+
'get_ads',
|
|
22
|
+
'get_ad_details',
|
|
23
|
+
'get_ad_creatives',
|
|
24
|
+
'get_ad_image',
|
|
25
|
+
'get_insights',
|
|
26
|
+
'debug_image_download',
|
|
27
|
+
'get_login_link',
|
|
28
|
+
'login_cli',
|
|
29
|
+
'main'
|
|
30
|
+
]
|
|
13
31
|
|
|
14
32
|
# Import key functions to make them available at package level
|
|
15
33
|
from .core import (
|
|
@@ -27,9 +45,9 @@ from .core import (
|
|
|
27
45
|
get_ad_image,
|
|
28
46
|
get_insights,
|
|
29
47
|
debug_image_download,
|
|
30
|
-
save_ad_image_via_api,
|
|
31
48
|
get_login_link,
|
|
32
49
|
login_cli,
|
|
50
|
+
main
|
|
33
51
|
)
|
|
34
52
|
|
|
35
53
|
# Define a main function to be used as a package entry point
|