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.
Files changed (31) hide show
  1. meta_ads_mcp-0.2.5/META_API_NOTES.md +28 -0
  2. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/PKG-INFO +76 -42
  3. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/README.md +75 -41
  4. meta_ads_mcp-0.2.5/future_improvements.md +11 -0
  5. meta_ads_mcp-0.2.5/images/meta-ads-example.png +0 -0
  6. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta-ads-mcp +0 -1
  7. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/__init__.py +21 -3
  8. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/api.py +360 -273
  9. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/__init__.py +1 -2
  10. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/accounts.py +3 -0
  11. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/ads.py +5 -0
  12. meta_ads_mcp-0.2.5/meta_ads_mcp/core/adsets.py +169 -0
  13. meta_ads_mcp-0.2.5/meta_ads_mcp/core/api.py +264 -0
  14. meta_ads_mcp-0.2.5/meta_ads_mcp/core/auth.py +1693 -0
  15. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/authentication.py +20 -4
  16. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/campaigns.py +4 -0
  17. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/insights.py +4 -1
  18. meta_ads_mcp-0.2.5/meta_ads_mcp/core/server.py +84 -0
  19. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/utils.py +53 -0
  20. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/pyproject.toml +1 -1
  21. meta_ads_mcp-0.2.3/future_improvements.md +0 -59
  22. meta_ads_mcp-0.2.3/meta_ads_mcp/core/adsets.py +0 -115
  23. meta_ads_mcp-0.2.3/meta_ads_mcp/core/api.py +0 -211
  24. meta_ads_mcp-0.2.3/meta_ads_mcp/core/auth.py +0 -416
  25. meta_ads_mcp-0.2.3/meta_ads_mcp/core/server.py +0 -56
  26. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/.gitignore +0 -0
  27. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/__main__.py +0 -0
  28. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/meta_ads_mcp/core/resources.py +0 -0
  29. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/requirements.txt +0 -0
  30. {meta_ads_mcp-0.2.3 → meta_ads_mcp-0.2.5}/setup.py +0 -0
  31. {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
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 Calling Protocol (MCP)](https://github.com/anthropics/anthropic-tools) plugin for interacting with Meta Ads API.
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
+ ![Meta Ads MCP in action: Visualize ad performance metrics and creative details directly in Claude or your favorite MCP client, with rich insights about campaign reach, engagement, and costs](./images/meta-ads-example.png)
25
31
 
26
32
  ## Features
27
33
 
28
- - Seamless authentication with Meta's Graph API for desktop applications
29
- - Automatic token caching across sessions
30
- - Cross-platform support (Windows, macOS, Linux)
31
- - Access to ad accounts, campaigns, ad sets, and ads
32
- - Image download and analysis capabilities
33
- - Performance insights
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. `mcp_meta_ads_save_ad_image_via_api`
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
- ### Authentication Methods
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
- There are two ways to authenticate with the Meta Ads API:
245
+ ### Common Issues
233
246
 
234
- 1. **LLM/MCP Interface Authentication** (Recommended)
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
- Just click the link, complete the authorization in your browser, and the token will be automatically captured and stored.
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
- 2. **Command Line Authentication**
256
+ #### Authentication Errors
245
257
 
246
- You can authenticate directly from the command line:
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
- ```bash
249
- uvx meta-ads-mcp --login --app-id YOUR_APP_ID
250
- ```
263
+ ### Debugging Command
251
264
 
252
- ### Token Caching
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
- Tokens are cached in a platform-specific secure location:
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
- You do not need to provide your access token for each command; it will be automatically retrieved from the cache.
289
+ The Meta Ads MCP follows security best practices:
260
290
 
261
- ## Environment Variables
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 can set the following environment variables instead of passing them as arguments:
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
- - `META_APP_ID`: Your Meta App ID (Client ID)
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 Calling Protocol (MCP)](https://github.com/anthropics/anthropic-tools) plugin for interacting with Meta Ads API.
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
+ ![Meta Ads MCP in action: Visualize ad performance metrics and creative details directly in Claude or your favorite MCP client, with rich insights about campaign reach, engagement, and costs](./images/meta-ads-example.png)
4
10
 
5
11
  ## Features
6
12
 
7
- - Seamless authentication with Meta's Graph API for desktop applications
8
- - Automatic token caching across sessions
9
- - Cross-platform support (Windows, macOS, Linux)
10
- - Access to ad accounts, campaigns, ad sets, and ads
11
- - Image download and analysis capabilities
12
- - Performance insights
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. `mcp_meta_ads_save_ad_image_via_api`
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
- ### Authentication Methods
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
- There are two ways to authenticate with the Meta Ads API:
224
+ ### Common Issues
212
225
 
213
- 1. **LLM/MCP Interface Authentication** (Recommended)
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
- Just click the link, complete the authorization in your browser, and the token will be automatically captured and stored.
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
- 2. **Command Line Authentication**
235
+ #### Authentication Errors
224
236
 
225
- You can authenticate directly from the command line:
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
- ```bash
228
- uvx meta-ads-mcp --login --app-id YOUR_APP_ID
229
- ```
242
+ ### Debugging Command
230
243
 
231
- ### Token Caching
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
- Tokens are cached in a platform-specific secure location:
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
- You do not need to provide your access token for each command; it will be automatically retrieved from the cache.
268
+ The Meta Ads MCP follows security best practices:
239
269
 
240
- ## Environment Variables
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 can set the following environment variables instead of passing them as arguments:
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
- - `META_APP_ID`: Your Meta App ID (Client ID)
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.
@@ -10,5 +10,4 @@ This script provides the command-line entry point for the Meta Ads MCP package.
10
10
  from meta_ads_mcp import main
11
11
 
12
12
  if __name__ == "__main__":
13
- print("RUNNING LOCAL SCRIPT VERSION OF META ADS MCP")
14
13
  main()
@@ -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.3"
10
+ __version__ = "0.2.5"
11
11
 
12
- __all__ = ["main"]
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