meta-ads-mcp 0.4.8__tar.gz → 0.4.9__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 (52) hide show
  1. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/PKG-INFO +1 -1
  2. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/__init__.py +1 -1
  3. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/ads.py +2 -6
  4. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/pyproject.toml +1 -1
  5. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/.github/workflows/publish.yml +0 -0
  6. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/.github/workflows/test.yml +0 -0
  7. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/.gitignore +0 -0
  8. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/CUSTOM_META_APP.md +0 -0
  9. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/Dockerfile +0 -0
  10. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/LICENSE +0 -0
  11. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/LOCAL_INSTALLATION.md +0 -0
  12. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/META_API_NOTES.md +0 -0
  13. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/README.md +0 -0
  14. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/RELEASE.md +0 -0
  15. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/STREAMABLE_HTTP_SETUP.md +0 -0
  16. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/examples/README.md +0 -0
  17. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/examples/example_http_client.py +0 -0
  18. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/future_improvements.md +0 -0
  19. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/images/meta-ads-example.png +0 -0
  20. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_auth.sh +0 -0
  21. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/__main__.py +0 -0
  22. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/__init__.py +0 -0
  23. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/accounts.py +0 -0
  24. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/ads_library.py +0 -0
  25. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/adsets.py +0 -0
  26. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/api.py +0 -0
  27. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/auth.py +0 -0
  28. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/authentication.py +0 -0
  29. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/budget_schedules.py +0 -0
  30. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/callback_server.py +0 -0
  31. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/campaigns.py +0 -0
  32. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/duplication.py +0 -0
  33. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/http_auth_integration.py +0 -0
  34. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/insights.py +0 -0
  35. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/pipeboard_auth.py +0 -0
  36. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/reports.py +0 -0
  37. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/resources.py +0 -0
  38. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/server.py +0 -0
  39. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/meta_ads_mcp/core/utils.py +0 -0
  40. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/requirements.txt +0 -0
  41. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/setup.py +0 -0
  42. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/smithery.yaml +0 -0
  43. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/tests/README.md +0 -0
  44. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/tests/README_REGRESSION_TESTS.md +0 -0
  45. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/tests/__init__.py +0 -0
  46. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/tests/conftest.py +0 -0
  47. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/tests/test_duplication.py +0 -0
  48. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/tests/test_duplication_regression.py +0 -0
  49. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/tests/test_get_ad_creatives_fix.py +0 -0
  50. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/tests/test_get_ad_image_regression.py +0 -0
  51. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/tests/test_http_transport.py +0 -0
  52. {meta_ads_mcp-0.4.8 → meta_ads_mcp-0.4.9}/tests/test_openai.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meta-ads-mcp
3
- Version: 0.4.8
3
+ Version: 0.4.9
4
4
  Summary: Model Context Protocol (MCP) plugin for interacting with Meta Ads API
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 +7,7 @@ with the Claude LLM.
7
7
 
8
8
  from meta_ads_mcp.core.server import main
9
9
 
10
- __version__ = "0.4.8"
10
+ __version__ = "0.4.9"
11
11
 
12
12
  __all__ = [
13
13
  'get_ad_accounts',
@@ -252,9 +252,7 @@ async def get_ad_image(access_token: str = None, ad_id: str = None) -> Image:
252
252
  # If no hashes found, try to extract from the first creative we found in the API
253
253
  # Get creative for ad to try to extract hash
254
254
  creative_json = await get_ad_creatives(access_token=access_token, ad_id=ad_id)
255
- # The result is wrapped by @meta_api_tool, so we need to extract the data
256
- creative_wrapper = json.loads(creative_json)
257
- creative_data = json.loads(creative_wrapper["data"])
255
+ creative_data = json.loads(creative_json)
258
256
 
259
257
  # Try to extract hash from data array
260
258
  if "data" in creative_data and creative_data["data"]:
@@ -393,9 +391,7 @@ async def save_ad_image_locally(access_token: str = None, ad_id: str = None, out
393
391
  if not image_hashes:
394
392
  # Fallback attempt (as in get_ad_image)
395
393
  creative_json = await get_ad_creatives(ad_id=ad_id, access_token=access_token) # Ensure ad_id is passed correctly
396
- # The result is wrapped by @meta_api_tool, so we need to extract the data
397
- creative_wrapper = json.loads(creative_json)
398
- creative_data_list = json.loads(creative_wrapper["data"])
394
+ creative_data_list = json.loads(creative_json)
399
395
  if 'data' in creative_data_list and creative_data_list['data']:
400
396
  first_creative = creative_data_list['data'][0]
401
397
  if 'object_story_spec' in first_creative and 'link_data' in first_creative['object_story_spec'] and 'image_hash' in first_creative['object_story_spec']['link_data']:
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "meta-ads-mcp"
7
- version = "0.4.8"
7
+ version = "0.4.9"
8
8
  description = "Model Context Protocol (MCP) plugin for interacting with Meta Ads API"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes