universal-mcp-applications 0.1.12__tar.gz → 0.1.13__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.

Potentially problematic release.


This version of universal-mcp-applications might be problematic. Click here for more details.

Files changed (279) hide show
  1. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/PKG-INFO +2 -2
  2. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/bump_and_release.sh +4 -3
  3. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/pyproject.toml +2 -2
  4. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_mail/app.py +47 -1
  5. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/uv.lock +2 -2
  6. universal_mcp_applications-0.1.12/test.py +0 -43
  7. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/.gitignore +0 -0
  8. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/LICENSE +0 -0
  9. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/README.md +0 -0
  10. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/examples/children_story_builder.py +0 -0
  11. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/tests/test_applications.py +0 -0
  12. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/ahrefs/README.md +0 -0
  13. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/ahrefs/__init__.py +0 -0
  14. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/ahrefs/app.py +0 -0
  15. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/airtable/README.md +0 -0
  16. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/airtable/__init__.py +0 -0
  17. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/airtable/app.py +0 -0
  18. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/apollo/README.md +0 -0
  19. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/apollo/__init__.py +0 -0
  20. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/apollo/app.py +0 -0
  21. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/asana/README.md +0 -0
  22. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/asana/__init__.py +0 -0
  23. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/asana/app.py +0 -0
  24. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/aws_s3/README.md +0 -0
  25. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/aws_s3/__init__.py +0 -0
  26. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/aws_s3/app.py +0 -0
  27. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/bill/README.md +0 -0
  28. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/bill/__init__.py +0 -0
  29. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/bill/app.py +0 -0
  30. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/box/README.md +0 -0
  31. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/box/__init__.py +0 -0
  32. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/box/app.py +0 -0
  33. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/braze/README.md +0 -0
  34. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/braze/__init__.py +0 -0
  35. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/braze/app.py +0 -0
  36. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/cal_com_v2/README.md +0 -0
  37. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/cal_com_v2/__init__.py +0 -0
  38. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/cal_com_v2/app.py +0 -0
  39. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/calendly/README.md +0 -0
  40. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/calendly/__init__.py +0 -0
  41. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/calendly/app.py +0 -0
  42. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/canva/README.md +0 -0
  43. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/canva/__init__.py +0 -0
  44. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/canva/app.py +0 -0
  45. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/clickup/README.md +0 -0
  46. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/clickup/__init__.py +0 -0
  47. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/clickup/app.py +0 -0
  48. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/coda/README.md +0 -0
  49. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/coda/__init__.py +0 -0
  50. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/coda/app.py +0 -0
  51. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/confluence/README.md +0 -0
  52. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/confluence/__init__.py +0 -0
  53. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/confluence/app.py +0 -0
  54. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/contentful/README.md +0 -0
  55. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/contentful/__init__.py +0 -0
  56. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/contentful/app.py +0 -0
  57. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/crustdata/README.md +0 -0
  58. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/crustdata/__init__.py +0 -0
  59. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/crustdata/app.py +0 -0
  60. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/dialpad/README.md +0 -0
  61. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/dialpad/__init__.py +0 -0
  62. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/dialpad/app.py +0 -0
  63. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/digitalocean/README.md +0 -0
  64. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/digitalocean/__init__.py +0 -0
  65. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/digitalocean/app.py +0 -0
  66. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/domain_checker/README.md +0 -0
  67. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/domain_checker/__init__.py +0 -0
  68. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/domain_checker/app.py +0 -0
  69. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/e2b/README.md +0 -0
  70. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/e2b/__init__.py +0 -0
  71. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/e2b/app.py +0 -0
  72. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/elevenlabs/README.md +0 -0
  73. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/elevenlabs/__init__.py +0 -0
  74. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/elevenlabs/app.py +0 -0
  75. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/exa/README.md +0 -0
  76. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/exa/__init__.py +0 -0
  77. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/exa/app.py +0 -0
  78. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/falai/README.md +0 -0
  79. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/falai/__init__.py +0 -0
  80. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/falai/app.py +0 -0
  81. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/figma/README.md +0 -0
  82. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/figma/__init__.py +0 -0
  83. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/figma/app.py +0 -0
  84. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/file_system/__init__.py +0 -0
  85. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/file_system/app.py +0 -0
  86. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/firecrawl/README.md +0 -0
  87. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/firecrawl/__init__.py +0 -0
  88. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/firecrawl/app.py +0 -0
  89. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/fireflies/README.md +0 -0
  90. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/fireflies/__init__.py +0 -0
  91. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/fireflies/app.py +0 -0
  92. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/fpl/README.md +0 -0
  93. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/fpl/__init__.py +0 -0
  94. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/fpl/app.py +0 -0
  95. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/fpl/utils/api.py +0 -0
  96. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/fpl/utils/fixtures.py +0 -0
  97. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/fpl/utils/helper.py +0 -0
  98. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/fpl/utils/league_utils.py +0 -0
  99. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/fpl/utils/position_utils.py +0 -0
  100. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/ghost_content/README.md +0 -0
  101. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/ghost_content/__init__.py +0 -0
  102. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/ghost_content/app.py +0 -0
  103. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/github/README.md +0 -0
  104. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/github/__init__.py +0 -0
  105. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/github/app.py +0 -0
  106. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/gong/README.md +0 -0
  107. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/gong/__init__.py +0 -0
  108. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/gong/app.py +0 -0
  109. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_calendar/README.md +0 -0
  110. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_calendar/__init__.py +0 -0
  111. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_calendar/app.py +0 -0
  112. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_docs/README.md +0 -0
  113. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_docs/__init__.py +0 -0
  114. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_docs/app.py +0 -0
  115. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_drive/README.md +0 -0
  116. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_drive/__init__.py +0 -0
  117. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_drive/app.py +0 -0
  118. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_gemini/README.md +0 -0
  119. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_gemini/__init__.py +0 -0
  120. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_gemini/app.py +0 -0
  121. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_mail/README.md +0 -0
  122. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_mail/__init__.py +0 -0
  123. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_searchconsole/README.md +0 -0
  124. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_searchconsole/__init__.py +0 -0
  125. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_searchconsole/app.py +0 -0
  126. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_sheet/README.md +0 -0
  127. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_sheet/__init__.py +0 -0
  128. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_sheet/app.py +0 -0
  129. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/google_sheet/helper.py +0 -0
  130. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/hashnode/README.md +0 -0
  131. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/hashnode/__init__.py +0 -0
  132. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/hashnode/app.py +0 -0
  133. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/heygen/README.md +0 -0
  134. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/heygen/__init__.py +0 -0
  135. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/heygen/app.py +0 -0
  136. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/http_tools/README.md +0 -0
  137. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/http_tools/__init__.py +0 -0
  138. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/http_tools/app.py +0 -0
  139. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/hubspot/README.md +0 -0
  140. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/hubspot/__init__.py +0 -0
  141. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/hubspot/app.py +0 -0
  142. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/jira/README.md +0 -0
  143. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/jira/__init__.py +0 -0
  144. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/jira/app.py +0 -0
  145. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/klaviyo/README.md +0 -0
  146. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/klaviyo/__init__.py +0 -0
  147. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/klaviyo/app.py +0 -0
  148. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/linkedin/README.md +0 -0
  149. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/linkedin/__init__.py +0 -0
  150. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/linkedin/app.py +0 -0
  151. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/mailchimp/README.md +0 -0
  152. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/mailchimp/__init__.py +0 -0
  153. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/mailchimp/app.py +0 -0
  154. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/markitdown/README.md +0 -0
  155. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/markitdown/__init__.py +0 -0
  156. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/markitdown/app.py +0 -0
  157. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/miro/README.md +0 -0
  158. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/miro/__init__.py +0 -0
  159. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/miro/app.py +0 -0
  160. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/ms_teams/README.md +0 -0
  161. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/ms_teams/__init__.py +0 -0
  162. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/ms_teams/app.py +0 -0
  163. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/neon/README.md +0 -0
  164. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/neon/__init__.py +0 -0
  165. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/neon/app.py +0 -0
  166. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/notion/README.md +0 -0
  167. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/notion/__init__.py +0 -0
  168. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/notion/app.py +0 -0
  169. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/openai/README.md +0 -0
  170. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/openai/__init__.py +0 -0
  171. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/openai/app.py +0 -0
  172. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/outlook/README.md +0 -0
  173. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/outlook/__init__.py +0 -0
  174. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/outlook/app.py +0 -0
  175. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/perplexity/README.md +0 -0
  176. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/perplexity/__init__.py +0 -0
  177. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/perplexity/app.py +0 -0
  178. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/pipedrive/README.md +0 -0
  179. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/pipedrive/__init__.py +0 -0
  180. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/pipedrive/app.py +0 -0
  181. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/posthog/README.md +0 -0
  182. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/posthog/__init__.py +0 -0
  183. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/posthog/app.py +0 -0
  184. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/reddit/README.md +0 -0
  185. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/reddit/__init__.py +0 -0
  186. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/reddit/app.py +0 -0
  187. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/replicate/README.md +0 -0
  188. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/replicate/__init__.py +0 -0
  189. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/replicate/app.py +0 -0
  190. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/resend/README.md +0 -0
  191. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/resend/__init__.py +0 -0
  192. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/resend/app.py +0 -0
  193. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/retell/README.md +0 -0
  194. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/retell/__init__.py +0 -0
  195. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/retell/app.py +0 -0
  196. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/rocketlane/README.md +0 -0
  197. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/rocketlane/__init__.py +0 -0
  198. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/rocketlane/app.py +0 -0
  199. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/scraper/README.md +0 -0
  200. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/scraper/__init__.py +0 -0
  201. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/scraper/app.py +0 -0
  202. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/semanticscholar/README.md +0 -0
  203. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/semanticscholar/__init__.py +0 -0
  204. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/semanticscholar/app.py +0 -0
  205. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/semrush/README.md +0 -0
  206. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/semrush/__init__.py +0 -0
  207. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/semrush/app.py +0 -0
  208. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/sendgrid/README.md +0 -0
  209. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/sendgrid/__init__.py +0 -0
  210. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/sendgrid/app.py +0 -0
  211. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/sentry/README.md +0 -0
  212. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/sentry/__init__.py +0 -0
  213. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/sentry/app.py +0 -0
  214. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/serpapi/README.md +0 -0
  215. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/serpapi/__init__.py +0 -0
  216. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/serpapi/app.py +0 -0
  217. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/sharepoint/README.md +0 -0
  218. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/sharepoint/__init__.py +0 -0
  219. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/sharepoint/app.py +0 -0
  220. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/shopify/README.md +0 -0
  221. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/shopify/__init__.py +0 -0
  222. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/shopify/app.py +0 -0
  223. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/shortcut/README.md +0 -0
  224. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/shortcut/__init__.py +0 -0
  225. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/shortcut/app.py +0 -0
  226. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/slack/README.md +0 -0
  227. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/slack/__init__.py +0 -0
  228. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/slack/app.py +0 -0
  229. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/spotify/README.md +0 -0
  230. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/spotify/__init__.py +0 -0
  231. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/spotify/app.py +0 -0
  232. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/supabase/README.md +0 -0
  233. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/supabase/__init__.py +0 -0
  234. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/supabase/app.py +0 -0
  235. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/tavily/README.md +0 -0
  236. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/tavily/__init__.py +0 -0
  237. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/tavily/app.py +0 -0
  238. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/trello/README.md +0 -0
  239. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/trello/__init__.py +0 -0
  240. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/trello/app.py +0 -0
  241. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twilio/README.md +0 -0
  242. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twilio/__init__.py +0 -0
  243. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twilio/app.py +0 -0
  244. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/README.md +0 -0
  245. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/__init__.py +0 -0
  246. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/__init__.py +0 -0
  247. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/api_segment_base.py +0 -0
  248. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/compliance_api.py +0 -0
  249. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +0 -0
  250. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/dm_events_api.py +0 -0
  251. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/likes_api.py +0 -0
  252. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/lists_api.py +0 -0
  253. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/openapi_json_api.py +0 -0
  254. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/spaces_api.py +0 -0
  255. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/trends_api.py +0 -0
  256. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/tweets_api.py +0 -0
  257. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/usage_api.py +0 -0
  258. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/api_segments/users_api.py +0 -0
  259. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/twitter/app.py +0 -0
  260. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/unipile/README.md +0 -0
  261. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/unipile/__init__.py +0 -0
  262. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/unipile/app.py +0 -0
  263. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/whatsapp/README.md +0 -0
  264. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/whatsapp/__init__.py +0 -0
  265. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/whatsapp/app.py +0 -0
  266. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/whatsapp/audio.py +0 -0
  267. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/whatsapp/whatsapp.py +0 -0
  268. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/whatsapp_business/README.md +0 -0
  269. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/whatsapp_business/__init__.py +0 -0
  270. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/whatsapp_business/app.py +0 -0
  271. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/wrike/README.md +0 -0
  272. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/wrike/__init__.py +0 -0
  273. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/wrike/app.py +0 -0
  274. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/youtube/README.md +0 -0
  275. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/youtube/__init__.py +0 -0
  276. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/youtube/app.py +0 -0
  277. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/zenquotes/README.md +0 -0
  278. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/zenquotes/__init__.py +0 -0
  279. {universal_mcp_applications-0.1.12 → universal_mcp_applications-0.1.13}/src/universal_mcp/applications/zenquotes/app.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: universal-mcp-applications
3
- Version: 0.1.12
3
+ Version: 0.1.13
4
4
  Summary: A Universal MCP Application: universal_mcp_applications
5
5
  Project-URL: Homepage, https://github.com/universal-mcp/applications
6
6
  Project-URL: Repository, https://github.com/universal-mcp/applications
@@ -22,7 +22,7 @@ Requires-Dist: google-genai>=1.33.0
22
22
  Requires-Dist: google-search-results>=2.4.2
23
23
  Requires-Dist: gql[all]>=3.5.2
24
24
  Requires-Dist: httpx-aiohttp>=0.1.8
25
- Requires-Dist: markitdown[audio-transcription,az-doc-intel,docx,outlook,pdf,pptx,xls,xlsx]==0.1.3
25
+ Requires-Dist: markitdown[audio-transcription,az-doc-intel,docx,outlook,pdf,pptx,xls,xlsx]>=0.1.3
26
26
  Requires-Dist: office365-rest-python-client>=2.6.2
27
27
  Requires-Dist: openai>=1.75.0
28
28
  Requires-Dist: pyairtable>=3.1.1
@@ -20,8 +20,9 @@ BRANCH=$(git branch --show-current)
20
20
  CURRENT_VERSION=$(grep -E '^version = "[0-9]+\.[0-9]+\.[0-9]+.*"' pyproject.toml | cut -d'"' -f2)
21
21
 
22
22
  # Split version into major, minor, patch
23
- IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
24
-
23
+ MAJOR=$(echo "$CURRENT_VERSION" | cut -d'.' -f1)
24
+ MINOR=$(echo "$CURRENT_VERSION" | cut -d'.' -f2)
25
+ PATCH=$(echo "$CURRENT_VERSION" | cut -d'.' -f3)
25
26
  # Remove any rc suffix from PATCH if it exists
26
27
  PATCH_NUM=$(echo $PATCH | sed 's/-rc[0-9]*//')
27
28
 
@@ -50,7 +51,7 @@ else
50
51
  fi
51
52
 
52
53
  # Update version in pyproject.toml
53
- sed -i '' "s/^version = ".*"/version = \"$NEW_VERSION\"/" pyproject.toml
54
+ sed -i "s/^version = \".*\"/version = \"$NEW_VERSION\"/" pyproject.toml
54
55
 
55
56
  echo "Version bumped from $CURRENT_VERSION to $NEW_VERSION"
56
57
 
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "universal-mcp-applications"
9
- version = "0.1.12"
9
+ version = "0.1.13"
10
10
  description = "A Universal MCP Application: universal_mcp_applications"
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.11"
@@ -30,7 +30,7 @@ dependencies = [
30
30
  "google-search-results>=2.4.2",
31
31
  "gql[all]>=3.5.2",
32
32
  "httpx-aiohttp>=0.1.8",
33
- "markitdown[audio-transcription,az-doc-intel,docx,outlook,pdf,pptx,xls,xlsx]==0.1.3",
33
+ "markitdown[audio-transcription,az-doc-intel,docx,outlook,pdf,pptx,xls,xlsx]>=0.1.3",
34
34
  "office365-rest-python-client>=2.6.2",
35
35
  "openai>=1.75.0",
36
36
  "pyairtable>=3.1.1",
@@ -230,7 +230,7 @@ class GoogleMailApp(APIApplication):
230
230
  A dictionary containing the cleaned message details (serializable as JSON)
231
231
 
232
232
  Tags:
233
- retrieve, email, format, api, gmail, message, important, body, content
233
+ retrieve, email, format, api, gmail, message, important, body, content, attachments
234
234
  """
235
235
  url = f"{self.base_api_url}/messages/{message_id}"
236
236
  response = self._get(url)
@@ -251,6 +251,9 @@ class GoogleMailApp(APIApplication):
251
251
  else:
252
252
  body_content = "No content available"
253
253
 
254
+ # Extract attachments
255
+ attachments = self._extract_attachments(raw_data.get("payload", {}))
256
+
254
257
  return {
255
258
  "message_id": message_id,
256
259
  "from_addr": headers.get("From", "Unknown sender"),
@@ -259,8 +262,11 @@ class GoogleMailApp(APIApplication):
259
262
  "subject": headers.get("Subject", "No subject"),
260
263
  "body_content": body_content,
261
264
  "thread_id": raw_data.get("threadId"),
265
+ "attachments": attachments,
262
266
  }
263
267
 
268
+
269
+
264
270
  def _extract_email_body(self, payload):
265
271
  """
266
272
  Extracts the email body content from the Gmail API payload.
@@ -315,6 +321,46 @@ class GoogleMailApp(APIApplication):
315
321
  logger.error(f"Error extracting email body: {str(e)}")
316
322
  return ""
317
323
 
324
+ def _extract_attachments(self, payload):
325
+ """
326
+ Extracts attachment information from the Gmail API payload.
327
+
328
+ Args:
329
+ payload: The payload section from Gmail API response
330
+
331
+ Returns:
332
+ list: List of attachment dictionaries with attachment_id, filename, mime_type, and size
333
+ """
334
+ attachments = []
335
+
336
+ try:
337
+ if payload.get("filename") and payload.get("body", {}).get("attachmentId"):
338
+ attachments.append({
339
+ "attachment_id": payload["body"]["attachmentId"],
340
+ "filename": payload["filename"],
341
+ "mime_type": payload.get("mimeType", ""),
342
+ "size": payload.get("body", {}).get("size", 0)
343
+ })
344
+
345
+ parts = payload.get("parts", [])
346
+ for part in parts:
347
+ if part.get("filename") and part.get("body", {}).get("attachmentId"):
348
+ attachments.append({
349
+ "attachment_id": part["body"]["attachmentId"],
350
+ "filename": part["filename"],
351
+ "mime_type": part.get("mimeType", ""),
352
+ "size": part.get("body", {}).get("size", 0)
353
+ })
354
+
355
+ elif part.get("parts"):
356
+ nested_attachments = self._extract_attachments(part)
357
+ attachments.extend(nested_attachments)
358
+
359
+ except Exception as e:
360
+ logger.error(f"Error extracting attachments: {str(e)}")
361
+
362
+ return attachments
363
+
318
364
  def _decode_base64(self, data):
319
365
  """
320
366
  Decodes base64 URL-safe encoded data from Gmail API.
@@ -4383,7 +4383,7 @@ wheels = [
4383
4383
 
4384
4384
  [[package]]
4385
4385
  name = "universal-mcp-applications"
4386
- version = "0.1.11"
4386
+ version = "0.1.12"
4387
4387
  source = { editable = "." }
4388
4388
  dependencies = [
4389
4389
  { name = "boto3" },
@@ -4433,7 +4433,7 @@ requires-dist = [
4433
4433
  { name = "google-search-results", specifier = ">=2.4.2" },
4434
4434
  { name = "gql", extras = ["all"], specifier = ">=3.5.2" },
4435
4435
  { name = "httpx-aiohttp", specifier = ">=0.1.8" },
4436
- { name = "markitdown", extras = ["audio-transcription", "az-doc-intel", "docx", "outlook", "pdf", "pptx", "xls", "xlsx"], specifier = "==0.1.3" },
4436
+ { name = "markitdown", extras = ["audio-transcription", "az-doc-intel", "docx", "outlook", "pdf", "pptx", "xls", "xlsx"], specifier = ">=0.1.3" },
4437
4437
  { name = "office365-rest-python-client", specifier = ">=2.6.2" },
4438
4438
  { name = "openai", specifier = ">=1.75.0" },
4439
4439
  { name = "pre-commit", marker = "extra == 'dev'" },
@@ -1,43 +0,0 @@
1
- from youtube_transcript_api import YouTubeTranscriptApi
2
-
3
- def get_captions(video_id: str) -> str:
4
- """
5
- Retrieves the captions text for a specified video ID on youtube
6
-
7
- Args:
8
- video_id: The unique identifier for the target video (required)
9
-
10
- Returns:
11
- String containing the complete transcript text without timestamps
12
-
13
- Raises:
14
- ValueError: Raised when required 'video_id' parameter is missing
15
- Exception: Raised when transcript cannot be retrieved (e.g., no captions available)
16
-
17
- Tags:
18
- retrieve, transcript, text, captions
19
- """
20
- if video_id is None:
21
- raise ValueError("Missing required parameter 'video_id'")
22
-
23
- try:
24
- api = YouTubeTranscriptApi()
25
- transcript = api.fetch(video_id)
26
-
27
- transcript_text = " ".join(
28
- [snippet.text for snippet in transcript.snippets]
29
- )
30
-
31
- return transcript_text
32
- except Exception as e:
33
- raise Exception(
34
- f"Failed to retrieve transcript for video {video_id}: {str(e)}"
35
- )
36
-
37
- def main():
38
- video_id = "Cr9B6yyLZSk" # Example video ID
39
- captions = get_captions(video_id)
40
- print(captions)
41
-
42
- if __name__ == "__main__":
43
- main()