universal-mcp-applications 0.1.27rc2__tar.gz → 0.1.28__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 (297) hide show
  1. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/PKG-INFO +1 -1
  2. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/pyproject.toml +1 -1
  3. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/scripts/run_docgen.py +1 -1
  4. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/tests/test_applications.py +2 -2
  5. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_gemini/app.py +3 -3
  6. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/onedrive/README.md +4 -4
  7. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/onedrive/app.py +23 -23
  8. universal_mcp_applications-0.1.28/src/universal_mcp/applications/scraper/app.py +175 -0
  9. universal_mcp_applications-0.1.28/src/universal_mcp/applications/sharepoint/README.md +19 -0
  10. universal_mcp_applications-0.1.28/src/universal_mcp/applications/sharepoint/app.py +338 -0
  11. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/unipile/app.py +27 -336
  12. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/uv.lock +1 -1
  13. universal_mcp_applications-0.1.27rc2/src/universal_mcp/applications/scraper/app.py +0 -407
  14. universal_mcp_applications-0.1.27rc2/src/universal_mcp/applications/sharepoint/README.md +0 -17
  15. universal_mcp_applications-0.1.27rc2/src/universal_mcp/applications/sharepoint/app.py +0 -225
  16. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/.gitignore +0 -0
  17. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/GEMINI.md +0 -0
  18. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/LICENSE +0 -0
  19. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/README.md +0 -0
  20. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/bump_and_release.sh +0 -0
  21. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/scripts/docgen.py +0 -0
  22. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/scripts/prompts.py +0 -0
  23. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/scripts/readme.py +0 -0
  24. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/BEST_PRACTICES.md +0 -0
  25. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/ahrefs/README.md +0 -0
  26. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/ahrefs/__init__.py +0 -0
  27. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/ahrefs/app.py +0 -0
  28. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/airtable/README.md +0 -0
  29. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/airtable/__init__.py +0 -0
  30. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/airtable/app.py +0 -0
  31. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/apollo/README.md +0 -0
  32. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/apollo/__init__.py +0 -0
  33. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/apollo/app.py +0 -0
  34. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/asana/README.md +0 -0
  35. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/asana/__init__.py +0 -0
  36. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/asana/app.py +0 -0
  37. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/aws_s3/README.md +0 -0
  38. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/aws_s3/__init__.py +0 -0
  39. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/aws_s3/app.py +0 -0
  40. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/bill/README.md +0 -0
  41. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/bill/__init__.py +0 -0
  42. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/bill/app.py +0 -0
  43. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/box/README.md +0 -0
  44. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/box/__init__.py +0 -0
  45. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/box/app.py +0 -0
  46. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/braze/README.md +0 -0
  47. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/braze/__init__.py +0 -0
  48. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/braze/app.py +0 -0
  49. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/browser_use/README.md +0 -0
  50. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/browser_use/__init__.py +0 -0
  51. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/browser_use/app.py +0 -0
  52. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/cal_com_v2/README.md +0 -0
  53. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/cal_com_v2/__init__.py +0 -0
  54. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/cal_com_v2/app.py +0 -0
  55. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/calendly/README.md +0 -0
  56. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/calendly/__init__.py +0 -0
  57. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/calendly/app.py +0 -0
  58. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/canva/README.md +0 -0
  59. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/canva/__init__.py +0 -0
  60. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/canva/app.py +0 -0
  61. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/clickup/README.md +0 -0
  62. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/clickup/__init__.py +0 -0
  63. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/clickup/app.py +0 -0
  64. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/coda/README.md +0 -0
  65. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/coda/__init__.py +0 -0
  66. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/coda/app.py +0 -0
  67. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/confluence/README.md +0 -0
  68. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/confluence/__init__.py +0 -0
  69. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/confluence/app.py +0 -0
  70. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/contentful/README.md +0 -0
  71. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/contentful/__init__.py +0 -0
  72. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/contentful/app.py +0 -0
  73. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/crustdata/README.md +0 -0
  74. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/crustdata/__init__.py +0 -0
  75. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/crustdata/app.py +0 -0
  76. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/dialpad/README.md +0 -0
  77. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/dialpad/__init__.py +0 -0
  78. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/dialpad/app.py +0 -0
  79. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/digitalocean/README.md +0 -0
  80. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/digitalocean/__init__.py +0 -0
  81. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/digitalocean/app.py +0 -0
  82. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/domain_checker/README.md +0 -0
  83. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/domain_checker/__init__.py +0 -0
  84. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/domain_checker/app.py +0 -0
  85. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/e2b/README.md +0 -0
  86. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/e2b/__init__.py +0 -0
  87. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/e2b/app.py +0 -0
  88. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/elevenlabs/README.md +0 -0
  89. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/elevenlabs/__init__.py +0 -0
  90. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/elevenlabs/app.py +0 -0
  91. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/exa/README.md +0 -0
  92. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/exa/__init__.py +0 -0
  93. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/exa/app.py +0 -0
  94. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/falai/README.md +0 -0
  95. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/falai/__init__.py +0 -0
  96. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/falai/app.py +0 -0
  97. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/figma/README.md +0 -0
  98. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/figma/__init__.py +0 -0
  99. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/figma/app.py +0 -0
  100. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/file_system/README.md +0 -0
  101. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/file_system/__init__.py +0 -0
  102. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/file_system/app.py +0 -0
  103. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/firecrawl/README.md +0 -0
  104. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/firecrawl/__init__.py +0 -0
  105. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/firecrawl/app.py +0 -0
  106. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/fireflies/README.md +0 -0
  107. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/fireflies/__init__.py +0 -0
  108. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/fireflies/app.py +0 -0
  109. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/fpl/README.md +0 -0
  110. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/fpl/__init__.py +0 -0
  111. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/fpl/app.py +0 -0
  112. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/fpl/utils/api.py +0 -0
  113. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/fpl/utils/fixtures.py +0 -0
  114. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/fpl/utils/helper.py +0 -0
  115. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/fpl/utils/league_utils.py +0 -0
  116. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/fpl/utils/position_utils.py +0 -0
  117. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/ghost_content/README.md +0 -0
  118. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/ghost_content/__init__.py +0 -0
  119. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/ghost_content/app.py +0 -0
  120. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/github/README.md +0 -0
  121. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/github/__init__.py +0 -0
  122. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/github/app.py +0 -0
  123. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/gong/README.md +0 -0
  124. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/gong/__init__.py +0 -0
  125. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/gong/app.py +0 -0
  126. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_calendar/README.md +0 -0
  127. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_calendar/__init__.py +0 -0
  128. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_calendar/app.py +0 -0
  129. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_docs/README.md +0 -0
  130. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_docs/__init__.py +0 -0
  131. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_docs/app.py +0 -0
  132. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_drive/README.md +0 -0
  133. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_drive/__init__.py +0 -0
  134. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_drive/app.py +0 -0
  135. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_gemini/README.md +0 -0
  136. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_gemini/__init__.py +0 -0
  137. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_mail/README.md +0 -0
  138. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_mail/__init__.py +0 -0
  139. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_mail/app.py +0 -0
  140. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_searchconsole/README.md +0 -0
  141. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_searchconsole/__init__.py +0 -0
  142. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_searchconsole/app.py +0 -0
  143. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_sheet/README.md +0 -0
  144. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_sheet/__init__.py +0 -0
  145. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_sheet/app.py +0 -0
  146. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/google_sheet/helper.py +0 -0
  147. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/hashnode/README.md +0 -0
  148. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/hashnode/__init__.py +0 -0
  149. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/hashnode/app.py +0 -0
  150. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/heygen/README.md +0 -0
  151. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/heygen/__init__.py +0 -0
  152. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/heygen/app.py +0 -0
  153. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/http_tools/README.md +0 -0
  154. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/http_tools/__init__.py +0 -0
  155. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/http_tools/app.py +0 -0
  156. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/hubspot/README.md +0 -0
  157. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/hubspot/__init__.py +0 -0
  158. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/hubspot/api_segments/__init__.py +0 -0
  159. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/hubspot/api_segments/api_segment_base.py +0 -0
  160. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/hubspot/api_segments/crm_api.py +0 -0
  161. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/hubspot/api_segments/marketing_api.py +0 -0
  162. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/hubspot/app.py +0 -0
  163. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/jira/README.md +0 -0
  164. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/jira/__init__.py +0 -0
  165. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/jira/app.py +0 -0
  166. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/klaviyo/README.md +0 -0
  167. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/klaviyo/__init__.py +0 -0
  168. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/klaviyo/app.py +0 -0
  169. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/linkedin/README.md +0 -0
  170. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/linkedin/__init__.py +0 -0
  171. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/linkedin/app.py +0 -0
  172. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/mailchimp/README.md +0 -0
  173. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/mailchimp/__init__.py +0 -0
  174. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/mailchimp/app.py +0 -0
  175. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/markitdown/README.md +0 -0
  176. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/markitdown/__init__.py +0 -0
  177. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/markitdown/app.py +0 -0
  178. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/miro/README.md +0 -0
  179. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/miro/__init__.py +0 -0
  180. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/miro/app.py +0 -0
  181. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/ms_teams/README.md +0 -0
  182. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/ms_teams/__init__.py +0 -0
  183. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/ms_teams/app.py +0 -0
  184. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/neon/README.md +0 -0
  185. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/neon/__init__.py +0 -0
  186. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/neon/app.py +0 -0
  187. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/notion/README.md +0 -0
  188. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/notion/__init__.py +0 -0
  189. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/notion/app.py +0 -0
  190. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/onedrive/__init__.py +0 -0
  191. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/openai/README.md +0 -0
  192. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/openai/__init__.py +0 -0
  193. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/openai/app.py +0 -0
  194. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/outlook/README.md +0 -0
  195. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/outlook/__init__.py +0 -0
  196. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/outlook/app.py +0 -0
  197. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/perplexity/README.md +0 -0
  198. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/perplexity/__init__.py +0 -0
  199. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/perplexity/app.py +0 -0
  200. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/pipedrive/README.md +0 -0
  201. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/pipedrive/__init__.py +0 -0
  202. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/pipedrive/app.py +0 -0
  203. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/posthog/README.md +0 -0
  204. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/posthog/__init__.py +0 -0
  205. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/posthog/app.py +0 -0
  206. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/reddit/README.md +0 -0
  207. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/reddit/__init__.py +0 -0
  208. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/reddit/app.py +0 -0
  209. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/resend/README.md +0 -0
  210. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/resend/__init__.py +0 -0
  211. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/resend/app.py +0 -0
  212. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/retell/README.md +0 -0
  213. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/retell/__init__.py +0 -0
  214. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/retell/app.py +0 -0
  215. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/rocketlane/README.md +0 -0
  216. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/rocketlane/__init__.py +0 -0
  217. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/rocketlane/app.py +0 -0
  218. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/scraper/README.md +0 -0
  219. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/scraper/__init__.py +0 -0
  220. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/semanticscholar/README.md +0 -0
  221. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/semanticscholar/__init__.py +0 -0
  222. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/semanticscholar/app.py +0 -0
  223. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/semrush/README.md +0 -0
  224. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/semrush/__init__.py +0 -0
  225. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/semrush/app.py +0 -0
  226. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/sendgrid/README.md +0 -0
  227. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/sendgrid/__init__.py +0 -0
  228. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/sendgrid/app.py +0 -0
  229. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/sentry/README.md +0 -0
  230. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/sentry/__init__.py +0 -0
  231. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/sentry/app.py +0 -0
  232. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/serpapi/README.md +0 -0
  233. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/serpapi/__init__.py +0 -0
  234. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/serpapi/app.py +0 -0
  235. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/sharepoint/__init__.py +0 -0
  236. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/shopify/README.md +0 -0
  237. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/shopify/__init__.py +0 -0
  238. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/shopify/app.py +0 -0
  239. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/shortcut/README.md +0 -0
  240. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/shortcut/__init__.py +0 -0
  241. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/shortcut/app.py +0 -0
  242. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/slack/README.md +0 -0
  243. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/slack/__init__.py +0 -0
  244. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/slack/app.py +0 -0
  245. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/spotify/README.md +0 -0
  246. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/spotify/__init__.py +0 -0
  247. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/spotify/app.py +0 -0
  248. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/supabase/README.md +0 -0
  249. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/supabase/__init__.py +0 -0
  250. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/supabase/app.py +0 -0
  251. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/tavily/README.md +0 -0
  252. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/tavily/__init__.py +0 -0
  253. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/tavily/app.py +0 -0
  254. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/trello/README.md +0 -0
  255. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/trello/__init__.py +0 -0
  256. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/trello/app.py +0 -0
  257. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twilio/README.md +0 -0
  258. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twilio/__init__.py +0 -0
  259. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twilio/app.py +0 -0
  260. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/README.md +0 -0
  261. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/__init__.py +0 -0
  262. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/__init__.py +0 -0
  263. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/api_segment_base.py +0 -0
  264. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/compliance_api.py +0 -0
  265. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +0 -0
  266. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/dm_events_api.py +0 -0
  267. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/likes_api.py +0 -0
  268. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/lists_api.py +0 -0
  269. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/openapi_json_api.py +0 -0
  270. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/spaces_api.py +0 -0
  271. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/trends_api.py +0 -0
  272. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/tweets_api.py +0 -0
  273. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/usage_api.py +0 -0
  274. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/api_segments/users_api.py +0 -0
  275. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/twitter/app.py +0 -0
  276. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/unipile/README.md +0 -0
  277. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/unipile/__init__.py +0 -0
  278. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/whatsapp/README.md +0 -0
  279. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/whatsapp/__init__.py +0 -0
  280. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/whatsapp/app.py +0 -0
  281. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/whatsapp/audio.py +0 -0
  282. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/whatsapp/whatsapp.py +0 -0
  283. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/whatsapp_business/README.md +0 -0
  284. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/whatsapp_business/__init__.py +0 -0
  285. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/whatsapp_business/app.py +0 -0
  286. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/wrike/README.md +0 -0
  287. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/wrike/__init__.py +0 -0
  288. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/wrike/app.py +0 -0
  289. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/yahoo_finance/README.md +0 -0
  290. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/yahoo_finance/__init__.py +0 -0
  291. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/yahoo_finance/app.py +0 -0
  292. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/youtube/README.md +0 -0
  293. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/youtube/__init__.py +0 -0
  294. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/youtube/app.py +0 -0
  295. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/zenquotes/README.md +0 -0
  296. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/src/universal_mcp/applications/zenquotes/__init__.py +0 -0
  297. {universal_mcp_applications-0.1.27rc2 → universal_mcp_applications-0.1.28}/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.27rc2
3
+ Version: 0.1.28
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
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "universal-mcp-applications"
9
- version = "0.1.27-rc2"
9
+ version = "0.1.28"
10
10
  description = "A Universal MCP Application: universal_mcp_applications"
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.11"
@@ -2,7 +2,7 @@ import os
2
2
  import subprocess
3
3
 
4
4
  APPS = [
5
- "onedrive"
5
+ "scraper",
6
6
  ]
7
7
 
8
8
 
@@ -70,10 +70,10 @@ ALL_APPS = [
70
70
  "sendgrid",
71
71
  "sentry",
72
72
  "serpapi",
73
- "sharepoint", # not seeded
73
+ "sharepoint",
74
74
  "shopify",
75
75
  "shortcut",
76
- "slack", # not seeded
76
+ "slack",
77
77
  "spotify", # not seeded
78
78
  "supabase",
79
79
  "tavily",
@@ -62,9 +62,9 @@ class GoogleGeminiApp(APIApplication):
62
62
  async def generate_image(
63
63
  self,
64
64
  prompt: Annotated[str, "The prompt to generate image from"],
65
- images: Annotated[list[str], "The reference images path"] | None = None,
65
+ images: Annotated[list[str], "The reference image URLs"] | None = None,
66
66
  model: str = "gemini-2.5-flash-image-preview",
67
- ) -> list:
67
+ ) -> dict:
68
68
  """
69
69
  Generates an image based on a text prompt and an optional reference image using the Google Gemini model.
70
70
  This tool is ideal for creating visual content or modifying existing images based on natural language descriptions.
@@ -72,7 +72,7 @@ class GoogleGeminiApp(APIApplication):
72
72
 
73
73
  Args:
74
74
  prompt (str): The descriptive text prompt to guide the image generation. For example: "A futuristic city at sunset with flying cars."
75
- images (list[str], optional): An optional list of URL to a reference image. These images will be used as a basis for the generation.
75
+ images (list[str], optional): An optional list of URLs to reference images. These images will be used as a basis for the generation.
76
76
  model (str, optional): The Gemini model to use for image generation. Defaults to "gemini-2.5-flash-image-preview".
77
77
 
78
78
  Returns:
@@ -1,10 +1,10 @@
1
- # OneDriveApp MCP Server
1
+ # OnedriveApp MCP Server
2
2
 
3
- An MCP Server for the OneDriveApp API.
3
+ An MCP Server for the OnedriveApp API.
4
4
 
5
5
  ## 🛠️ Tool List
6
6
 
7
- This is automatically generated from OpenAPI schema for the OneDriveApp API.
7
+ This is automatically generated from OpenAPI schema for the OnedriveApp API.
8
8
 
9
9
 
10
10
  | Tool | Description |
@@ -21,4 +21,4 @@ This is automatically generated from OpenAPI schema for the OneDriveApp API.
21
21
  | `list_files` | Retrieves a list of files within a specified OneDrive folder, defaulting to the root. Unlike `_list_drive_items` which fetches all items, this function filters the results to exclusively return items identified as files, excluding any subdirectories. |
22
22
  | `create_folder_and_list` | Performs a composite action: creates a new folder, then lists all items (files and folders) within that parent directory. This confirms creation by returning the parent's updated contents, distinct from `create_folder` which only returns the new folder's metadata. |
23
23
  | `upload_text_file` | Creates and uploads a new file to OneDrive directly from a string of text content. Unlike `upload_file`, which requires a local file path, this function is specifically for creating a text file from in-memory string data, with a customizable name and destination folder. |
24
- | `get_document_content` | Retrieves the content of a file specified by its ID. It automatically detects if the file is text or binary; text content is returned as a string, while binary content is returned base64-encoded. This differs from `download_file`, which only provides a URL. |
24
+ | `get_document_content` | Retrieves the content of a specific file by its item ID and returns it directly as base64-encoded data. This function is distinct from `download_file`, which only provides a temporary URL for the content, and from `get_item_metadata`, which returns file attributes without the content itself. The function fetches the content by following the file's pre-authenticated download URL. |
@@ -2,6 +2,7 @@ import base64
2
2
  import os
3
3
  from typing import Any
4
4
 
5
+ from loguru import logger
5
6
  from universal_mcp.applications.application import APIApplication
6
7
  from universal_mcp.integrations import Integration
7
8
 
@@ -271,13 +272,17 @@ class OnedriveApp(APIApplication):
271
272
 
272
273
  def get_document_content(self, item_id: str) -> dict[str, Any]:
273
274
  """
274
- Retrieves the content of a file specified by its ID. It automatically detects if the file is text or binary; text content is returned as a string, while binary content is returned base64-encoded. This differs from `download_file`, which only provides a URL.
275
+ Retrieves the content of a specific file by its item ID and returns it directly as base64-encoded data. This function is distinct from `download_file`, which only provides a temporary URL for the content, and from `get_item_metadata`, which returns file attributes without the content itself. The function fetches the content by following the file's pre-authenticated download URL.
275
276
 
276
277
  Args:
277
278
  item_id (str): The ID of the file.
278
279
 
279
280
  Returns:
280
- A dictionary containing the file content. For text files, content is string. For binary, it's base64 encoded.
281
+ dict[str, Any]: A dictionary containing the file details:
282
+ - 'type' (str): The general type of the file (e.g., "image", "audio", "video", "file").
283
+ - 'data' (str): The base64 encoded content of the file.
284
+ - 'mime_type' (str): The MIME type of the file.
285
+ - 'file_name' (str): The name of the file.
281
286
 
282
287
  Tags:
283
288
  get, content, read, file, important
@@ -290,34 +295,29 @@ class OnedriveApp(APIApplication):
290
295
  if not file_metadata:
291
296
  raise ValueError(f"Item with ID '{item_id}' is not a file.")
292
297
 
293
- file_mime_type = file_metadata.get("mimeType", "")
298
+ file_mime_type = file_metadata.get("mimeType", "application/octet-stream")
299
+ file_name = metadata.get("name")
294
300
 
295
- url = f"{self.base_url}/me/drive/items/{item_id}/content"
296
- response = self._get(url)
297
-
298
- if response.status_code >= 400:
299
- # Try to handle as JSON error response from Graph API
300
- return self._handle_response(response)
301
+ download_url = metadata.get("@microsoft.graph.downloadUrl")
302
+ if not download_url:
303
+ logger.error(f"Could not find @microsoft.graph.downloadUrl in metadata for item {item_id}")
304
+ raise ValueError("Could not retrieve download URL for the item.")
301
305
 
302
- content = response.content
306
+ response = self._get(download_url)
303
307
 
304
- is_text = file_mime_type.startswith("text/") or any(t in file_mime_type for t in ["json", "xml", "csv", "javascript", "html"])
308
+ response.raise_for_status()
305
309
 
306
- content_dict = {}
307
- if is_text:
308
- try:
309
- content_dict["content"] = content.decode("utf-8")
310
- except UnicodeDecodeError:
311
- is_text = False
310
+ content = response.content
312
311
 
313
- if not is_text:
314
- content_dict["content_base64"] = base64.b64encode(content).decode("ascii")
312
+ attachment_type = file_mime_type.split("/")[0] if "/" in file_mime_type else "file"
313
+ if attachment_type not in ["image", "audio", "video", "text"]:
314
+ attachment_type = "file"
315
315
 
316
316
  return {
317
- "name": metadata.get("name"),
318
- "content_type": "text" if is_text else "binary",
319
- **content_dict,
320
- "size": len(content),
317
+ "type": attachment_type,
318
+ "data": content,
319
+ "mime_type": file_mime_type,
320
+ "file_name": file_name,
321
321
  }
322
322
 
323
323
  def list_tools(self):
@@ -0,0 +1,175 @@
1
+ from dotenv import load_dotenv
2
+
3
+ load_dotenv()
4
+
5
+ from typing import Any, Literal
6
+
7
+ from loguru import logger
8
+ from universal_mcp.applications.application import APIApplication
9
+ from universal_mcp.integrations import Integration
10
+
11
+ from universal_mcp.applications.unipile import UnipileApp
12
+
13
+
14
+ class ScraperApp(APIApplication):
15
+ """
16
+ Application for interacting with LinkedIn API.
17
+ Provides a simplified interface for LinkedIn search operations.
18
+ """
19
+
20
+ def __init__(self, integration: Integration, **kwargs: Any) -> None:
21
+ super().__init__(name="scraper", integration=integration, **kwargs)
22
+ if self.integration:
23
+ credentials = self.integration.get_credentials()
24
+ self.account_id = credentials.get("account_id")
25
+ self._unipile_app = UnipileApp(integration=self.integration)
26
+ else:
27
+ logger.warning("Integration not found")
28
+ self.account_id = None
29
+ self._unipile_app = None
30
+
31
+ def linkedin_search(
32
+ self,
33
+ category: Literal["people", "companies", "posts", "jobs"],
34
+ cursor: str | None = None,
35
+ limit: int | None = None,
36
+ keywords: str | None = None,
37
+ date_posted: str | None = None,
38
+ sort_by: str | None = None,
39
+ minimum_salary_value: int | None = None,
40
+ ) -> dict[str, Any]:
41
+ """
42
+ Performs a general LinkedIn search for posts, people, companies, or jobs using keywords and various filters. This function provides broad, keyword-based discovery across the platform, distinct from other methods that retrieve content from a specific user or company profile. It supports pagination and filtering criteria.
43
+
44
+ Args:
45
+ category: Type of search to perform - "people", "companies", "posts", or "jobs".
46
+ cursor: Pagination cursor for the next page of entries.
47
+ limit: Number of items to return (up to 50 for Classic search).
48
+ keywords: Keywords to search for.
49
+ date_posted: Filter by when the post was posted (posts only).
50
+ sort_by: How to sort the results (for posts and jobs).
51
+ minimum_salary_value: The minimum salary to filter for (jobs only).
52
+
53
+ Returns:
54
+ A dictionary containing search results and pagination details.
55
+
56
+ Raises:
57
+ httpx.HTTPError: If the API request fails.
58
+
59
+ Tags:
60
+ linkedin, search, posts, people, companies, api, scrapper, important
61
+ """
62
+ return self._unipile_app.search(
63
+ account_id=self.account_id,
64
+ category=category,
65
+ cursor=cursor,
66
+ limit=limit,
67
+ keywords=keywords,
68
+ date_posted=date_posted,
69
+ sort_by=sort_by,
70
+ minimum_salary_value=minimum_salary_value,
71
+ )
72
+
73
+ def linkedin_list_profile_posts(
74
+ self,
75
+ identifier: str,
76
+ cursor: str | None = None,
77
+ limit: int | None = None,
78
+ ) -> dict[str, Any]:
79
+ """
80
+ Fetches a paginated list of all posts from a specific user or company profile using their unique identifier. This function retrieves content directly from a single profile, unlike the broader, keyword-based `linkedin_search` which searches across the entire LinkedIn platform.
81
+
82
+ Args:
83
+ identifier: The entity's provider internal ID (LinkedIn ID).starts with ACo for users, while for companies it's a series of numbers. You can get it in the results of linkedin_search.
84
+ cursor: Pagination cursor for the next page of entries.
85
+ limit: Number of items to return (1-100, though spec allows up to 250).
86
+
87
+ Returns:
88
+ A dictionary containing a list of post objects and pagination details.
89
+
90
+ Raises:
91
+ httpx.HTTPError: If the API request fails.
92
+
93
+ Tags:
94
+ linkedin, post, list, user_posts, company_posts, content, api, important
95
+ """
96
+
97
+ return self._unipile_app.list_profile_posts(
98
+ identifier=identifier,
99
+ account_id=self.account_id,
100
+ cursor=cursor,
101
+ limit=limit,
102
+ )
103
+
104
+ def linkedin_retrieve_profile(
105
+ self,
106
+ identifier: str,
107
+ ) -> dict[str, Any]:
108
+ """
109
+ Retrieves a specific LinkedIn user's profile using their unique identifier (e.g., public username). Unlike other methods that list posts or comments, this function focuses on fetching the user's core profile data by delegating the request to the integrated Unipile application.
110
+
111
+ Args:
112
+ identifier: Use the id from linkedin_search results. It starts with ACo for users and is a series of numbers for companies.
113
+
114
+ Returns:
115
+ A dictionary containing the user's profile details.
116
+
117
+ Raises:
118
+ httpx.HTTPError: If the API request fails.
119
+
120
+ Tags:
121
+ linkedin, user, profile, retrieve, get, api, important
122
+ """
123
+
124
+ return self._unipile_app.retrieve_user_profile(
125
+ identifier=identifier,
126
+ account_id=self.account_id,
127
+ )
128
+
129
+ def linkedin_list_post_comments(
130
+ self,
131
+ post_id: str,
132
+ comment_id: str | None = None,
133
+ cursor: str | None = None,
134
+ limit: int | None = None,
135
+ ) -> dict[str, Any]:
136
+ """
137
+ Fetches a paginated list of comments for a specified LinkedIn post. Providing a `comment_id` retrieves replies to that specific comment instead of top-level ones. This function exclusively targets post interactions, differentiating it from others that list posts or retrieve entire profiles.
138
+
139
+ Args:
140
+ post_id: The social ID of the post. Example urn:li:ugcPost:7386500271624896512
141
+ comment_id: If provided, retrieves replies to this comment ID instead of top-level comments.
142
+ cursor: Pagination cursor.
143
+ limit: Number of comments to return.
144
+
145
+ Returns:
146
+ A dictionary containing a list of comment objects and pagination details.
147
+
148
+ Raises:
149
+ httpx.HTTPError: If the API request fails.
150
+
151
+ Tags:
152
+ linkedin, post, comment, list, content, api, important
153
+ """
154
+
155
+ return self._unipile_app.list_post_comments(
156
+ post_id=post_id,
157
+ account_id=self.account_id,
158
+ comment_id=comment_id,
159
+ cursor=cursor,
160
+ limit=limit,
161
+ )
162
+
163
+ def list_tools(self):
164
+ """
165
+ Returns a list of available tools/functions in this application.
166
+
167
+ Returns:
168
+ A list of functions that can be used as tools.
169
+ """
170
+ return [
171
+ self.linkedin_search,
172
+ self.linkedin_list_profile_posts,
173
+ self.linkedin_retrieve_profile,
174
+ self.linkedin_list_post_comments,
175
+ ]
@@ -0,0 +1,19 @@
1
+ # SharePoint Application
2
+
3
+ This application provides tools for interacting with the Microsoft SharePoint API via Microsoft Graph. It allows you to manage files, folders, and retrieve information about your SharePoint drive.
4
+
5
+ ## Available Tools
6
+
7
+ - `get_my_profile`: Fetches the profile for the currently authenticated user.
8
+ - `get_drive_info`: Fetches high-level information about the user's SharePoint drive.
9
+ - `search_files`: Searches for files and folders in the user's SharePoint.
10
+ - `get_item_metadata`: Fetches metadata for a specific file or folder.
11
+ - `create_folder`: Creates a new folder.
12
+ - `delete_item`: Deletes a file or folder.
13
+ - `download_file`: Retrieves a download URL for a file.
14
+ - `upload_file`: Uploads a local file.
15
+ - `list_folders`: Lists all folders in a specified directory.
16
+ - `list_files`: Lists all files in a specified directory.
17
+ - `create_folder_and_list`: Creates a folder and then lists the contents of the parent directory.
18
+ - `upload_text_file`: Uploads content from a string to a new text file.
19
+ - `get_document_content`: Retrieves the content of a file.