universal-mcp-applications 0.1.3__tar.gz → 0.1.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (278) hide show
  1. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/PKG-INFO +2 -1
  2. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/bump_and_release.sh +4 -3
  3. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/pyproject.toml +2 -1
  4. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/tests/test_applications.py +1 -0
  5. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_drive/app.py +1 -67
  6. universal_mcp_applications-0.1.5/src/universal_mcp/applications/scraper/README.md +15 -0
  7. universal_mcp_applications-0.1.5/src/universal_mcp/applications/scraper/__init__.py +1 -0
  8. universal_mcp_applications-0.1.5/src/universal_mcp/applications/scraper/app.py +190 -0
  9. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/uv.lock +171 -116
  10. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/.gitignore +0 -0
  11. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/LICENSE +0 -0
  12. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/README.md +0 -0
  13. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/examples/children_story_builder.py +0 -0
  14. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/ahrefs/README.md +0 -0
  15. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/ahrefs/__init__.py +0 -0
  16. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/ahrefs/app.py +0 -0
  17. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/airtable/README.md +0 -0
  18. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/airtable/__init__.py +0 -0
  19. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/airtable/app.py +0 -0
  20. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/apollo/README.md +0 -0
  21. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/apollo/__init__.py +0 -0
  22. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/apollo/app.py +0 -0
  23. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/asana/README.md +0 -0
  24. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/asana/__init__.py +0 -0
  25. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/asana/app.py +0 -0
  26. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/aws_s3/README.md +0 -0
  27. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/aws_s3/__init__.py +0 -0
  28. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/aws_s3/app.py +0 -0
  29. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/bill/README.md +0 -0
  30. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/bill/__init__.py +0 -0
  31. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/bill/app.py +0 -0
  32. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/box/README.md +0 -0
  33. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/box/__init__.py +0 -0
  34. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/box/app.py +0 -0
  35. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/braze/README.md +0 -0
  36. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/braze/__init__.py +0 -0
  37. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/braze/app.py +0 -0
  38. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/cal_com_v2/README.md +0 -0
  39. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/cal_com_v2/__init__.py +0 -0
  40. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/cal_com_v2/app.py +0 -0
  41. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/calendly/README.md +0 -0
  42. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/calendly/__init__.py +0 -0
  43. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/calendly/app.py +0 -0
  44. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/canva/README.md +0 -0
  45. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/canva/__init__.py +0 -0
  46. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/canva/app.py +0 -0
  47. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/clickup/README.md +0 -0
  48. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/clickup/__init__.py +0 -0
  49. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/clickup/app.py +0 -0
  50. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/coda/README.md +0 -0
  51. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/coda/__init__.py +0 -0
  52. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/coda/app.py +0 -0
  53. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/confluence/README.md +0 -0
  54. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/confluence/__init__.py +0 -0
  55. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/confluence/app.py +0 -0
  56. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/contentful/README.md +0 -0
  57. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/contentful/__init__.py +0 -0
  58. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/contentful/app.py +0 -0
  59. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/crustdata/README.md +0 -0
  60. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/crustdata/__init__.py +0 -0
  61. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/crustdata/app.py +0 -0
  62. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/dialpad/README.md +0 -0
  63. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/dialpad/__init__.py +0 -0
  64. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/dialpad/app.py +0 -0
  65. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/digitalocean/README.md +0 -0
  66. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/digitalocean/__init__.py +0 -0
  67. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/digitalocean/app.py +0 -0
  68. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/domain_checker/README.md +0 -0
  69. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/domain_checker/__init__.py +0 -0
  70. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/domain_checker/app.py +0 -0
  71. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/e2b/README.md +0 -0
  72. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/e2b/__init__.py +0 -0
  73. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/e2b/app.py +0 -0
  74. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/elevenlabs/README.md +0 -0
  75. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/elevenlabs/__init__.py +0 -0
  76. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/elevenlabs/app.py +0 -0
  77. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/exa/README.md +0 -0
  78. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/exa/__init__.py +0 -0
  79. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/exa/app.py +0 -0
  80. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/falai/README.md +0 -0
  81. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/falai/__init__.py +0 -0
  82. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/falai/app.py +0 -0
  83. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/figma/README.md +0 -0
  84. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/figma/__init__.py +0 -0
  85. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/figma/app.py +0 -0
  86. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/file_system/__init__.py +0 -0
  87. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/file_system/app.py +0 -0
  88. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/firecrawl/README.md +0 -0
  89. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/firecrawl/__init__.py +0 -0
  90. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/firecrawl/app.py +0 -0
  91. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/fireflies/README.md +0 -0
  92. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/fireflies/__init__.py +0 -0
  93. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/fireflies/app.py +0 -0
  94. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/fpl/README.md +0 -0
  95. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/fpl/__init__.py +0 -0
  96. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/fpl/app.py +0 -0
  97. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/fpl/utils/api.py +0 -0
  98. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/fpl/utils/fixtures.py +0 -0
  99. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/fpl/utils/helper.py +0 -0
  100. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/fpl/utils/league_utils.py +0 -0
  101. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/fpl/utils/position_utils.py +0 -0
  102. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/ghost_content/README.md +0 -0
  103. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/ghost_content/__init__.py +0 -0
  104. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/ghost_content/app.py +0 -0
  105. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/github/README.md +0 -0
  106. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/github/__init__.py +0 -0
  107. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/github/app.py +0 -0
  108. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/gong/README.md +0 -0
  109. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/gong/__init__.py +0 -0
  110. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/gong/app.py +0 -0
  111. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_calendar/README.md +0 -0
  112. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_calendar/__init__.py +0 -0
  113. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_calendar/app.py +0 -0
  114. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_docs/README.md +0 -0
  115. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_docs/__init__.py +0 -0
  116. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_docs/app.py +0 -0
  117. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_drive/README.md +0 -0
  118. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_drive/__init__.py +0 -0
  119. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_gemini/README.md +0 -0
  120. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_gemini/__init__.py +0 -0
  121. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_gemini/app.py +0 -0
  122. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_mail/README.md +0 -0
  123. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_mail/__init__.py +0 -0
  124. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_mail/app.py +0 -0
  125. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_searchconsole/README.md +0 -0
  126. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_searchconsole/__init__.py +0 -0
  127. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_searchconsole/app.py +0 -0
  128. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_sheet/README.md +0 -0
  129. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_sheet/__init__.py +0 -0
  130. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_sheet/app.py +0 -0
  131. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/google_sheet/helper.py +0 -0
  132. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/hashnode/README.md +0 -0
  133. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/hashnode/__init__.py +0 -0
  134. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/hashnode/app.py +0 -0
  135. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/heygen/README.md +0 -0
  136. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/heygen/__init__.py +0 -0
  137. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/heygen/app.py +0 -0
  138. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/http_tools/README.md +0 -0
  139. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/http_tools/__init__.py +0 -0
  140. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/http_tools/app.py +0 -0
  141. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/hubspot/README.md +0 -0
  142. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/hubspot/__init__.py +0 -0
  143. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/hubspot/app.py +0 -0
  144. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/jira/README.md +0 -0
  145. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/jira/__init__.py +0 -0
  146. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/jira/app.py +0 -0
  147. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/klaviyo/README.md +0 -0
  148. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/klaviyo/__init__.py +0 -0
  149. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/klaviyo/app.py +0 -0
  150. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/linkedin/README.md +0 -0
  151. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/linkedin/__init__.py +0 -0
  152. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/linkedin/app.py +0 -0
  153. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/mailchimp/README.md +0 -0
  154. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/mailchimp/__init__.py +0 -0
  155. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/mailchimp/app.py +0 -0
  156. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/markitdown/README.md +0 -0
  157. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/markitdown/__init__.py +0 -0
  158. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/markitdown/app.py +0 -0
  159. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/miro/README.md +0 -0
  160. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/miro/__init__.py +0 -0
  161. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/miro/app.py +0 -0
  162. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/ms_teams/README.md +0 -0
  163. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/ms_teams/__init__.py +0 -0
  164. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/ms_teams/app.py +0 -0
  165. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/neon/README.md +0 -0
  166. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/neon/__init__.py +0 -0
  167. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/neon/app.py +0 -0
  168. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/notion/README.md +0 -0
  169. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/notion/__init__.py +0 -0
  170. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/notion/app.py +0 -0
  171. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/openai/README.md +0 -0
  172. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/openai/__init__.py +0 -0
  173. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/openai/app.py +0 -0
  174. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/outlook/README.md +0 -0
  175. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/outlook/__init__.py +0 -0
  176. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/outlook/app.py +0 -0
  177. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/perplexity/README.md +0 -0
  178. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/perplexity/__init__.py +0 -0
  179. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/perplexity/app.py +0 -0
  180. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/pipedrive/README.md +0 -0
  181. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/pipedrive/__init__.py +0 -0
  182. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/pipedrive/app.py +0 -0
  183. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/posthog/README.md +0 -0
  184. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/posthog/__init__.py +0 -0
  185. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/posthog/app.py +0 -0
  186. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/reddit/README.md +0 -0
  187. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/reddit/__init__.py +0 -0
  188. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/reddit/app.py +0 -0
  189. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/replicate/README.md +0 -0
  190. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/replicate/__init__.py +0 -0
  191. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/replicate/app.py +0 -0
  192. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/resend/README.md +0 -0
  193. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/resend/__init__.py +0 -0
  194. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/resend/app.py +0 -0
  195. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/retell/README.md +0 -0
  196. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/retell/__init__.py +0 -0
  197. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/retell/app.py +0 -0
  198. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/rocketlane/README.md +0 -0
  199. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/rocketlane/__init__.py +0 -0
  200. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/rocketlane/app.py +0 -0
  201. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/semanticscholar/README.md +0 -0
  202. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/semanticscholar/__init__.py +0 -0
  203. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/semanticscholar/app.py +0 -0
  204. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/semrush/README.md +0 -0
  205. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/semrush/__init__.py +0 -0
  206. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/semrush/app.py +0 -0
  207. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/sendgrid/README.md +0 -0
  208. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/sendgrid/__init__.py +0 -0
  209. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/sendgrid/app.py +0 -0
  210. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/sentry/README.md +0 -0
  211. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/sentry/__init__.py +0 -0
  212. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/sentry/app.py +0 -0
  213. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/serpapi/README.md +0 -0
  214. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/serpapi/__init__.py +0 -0
  215. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/serpapi/app.py +0 -0
  216. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/sharepoint/README.md +0 -0
  217. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/sharepoint/__init__.py +0 -0
  218. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/sharepoint/app.py +0 -0
  219. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/shopify/README.md +0 -0
  220. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/shopify/__init__.py +0 -0
  221. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/shopify/app.py +0 -0
  222. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/shortcut/README.md +0 -0
  223. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/shortcut/__init__.py +0 -0
  224. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/shortcut/app.py +0 -0
  225. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/slack/README.md +0 -0
  226. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/slack/__init__.py +0 -0
  227. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/slack/app.py +0 -0
  228. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/spotify/README.md +0 -0
  229. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/spotify/__init__.py +0 -0
  230. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/spotify/app.py +0 -0
  231. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/supabase/README.md +0 -0
  232. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/supabase/__init__.py +0 -0
  233. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/supabase/app.py +0 -0
  234. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/tavily/README.md +0 -0
  235. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/tavily/__init__.py +0 -0
  236. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/tavily/app.py +0 -0
  237. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/trello/README.md +0 -0
  238. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/trello/__init__.py +0 -0
  239. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/trello/app.py +0 -0
  240. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twilio/README.md +0 -0
  241. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twilio/__init__.py +0 -0
  242. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twilio/app.py +0 -0
  243. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/README.md +0 -0
  244. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/__init__.py +0 -0
  245. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/__init__.py +0 -0
  246. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/api_segment_base.py +0 -0
  247. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/compliance_api.py +0 -0
  248. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +0 -0
  249. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/dm_events_api.py +0 -0
  250. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/likes_api.py +0 -0
  251. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/lists_api.py +0 -0
  252. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/openapi_json_api.py +0 -0
  253. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/spaces_api.py +0 -0
  254. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/trends_api.py +0 -0
  255. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/tweets_api.py +0 -0
  256. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/usage_api.py +0 -0
  257. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/api_segments/users_api.py +0 -0
  258. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/twitter/app.py +0 -0
  259. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/unipile/README.md +0 -0
  260. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/unipile/__init__.py +0 -0
  261. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/unipile/app.py +0 -0
  262. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/whatsapp/README.md +0 -0
  263. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/whatsapp/__init__.py +0 -0
  264. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/whatsapp/app.py +0 -0
  265. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/whatsapp/audio.py +0 -0
  266. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/whatsapp/whatsapp.py +0 -0
  267. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/whatsapp_business/README.md +0 -0
  268. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/whatsapp_business/__init__.py +0 -0
  269. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/whatsapp_business/app.py +0 -0
  270. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/wrike/README.md +0 -0
  271. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/wrike/__init__.py +0 -0
  272. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/wrike/app.py +0 -0
  273. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/youtube/README.md +0 -0
  274. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/youtube/__init__.py +0 -0
  275. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/youtube/app.py +0 -0
  276. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/zenquotes/README.md +0 -0
  277. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/src/universal_mcp/applications/zenquotes/__init__.py +0 -0
  278. {universal_mcp_applications-0.1.3 → universal_mcp_applications-0.1.5}/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.3
3
+ Version: 0.1.5
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
@@ -34,6 +34,7 @@ Requires-Dist: replicate>=1.0.6
34
34
  Requires-Dist: requests>=2.31.0
35
35
  Requires-Dist: resend>=2.10.0
36
36
  Requires-Dist: twilio>=9.8.0
37
+ Requires-Dist: universal-mcp-unipile>=0.1.13
37
38
  Requires-Dist: universal-mcp>=0.1.24rc17
38
39
  Provides-Extra: dev
39
40
  Requires-Dist: pre-commit; extra == 'dev'
@@ -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.3"
9
+ version = "0.1.5"
10
10
  description = "A Universal MCP Application: universal_mcp_applications"
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.11"
@@ -43,6 +43,7 @@ dependencies = [
43
43
  "resend>=2.10.0",
44
44
  "twilio>=9.8.0",
45
45
  "universal-mcp >= 0.1.24rc17",
46
+ "universal-mcp-unipile>=0.1.13",
46
47
  ]
47
48
 
48
49
  [project.license]
@@ -65,6 +65,7 @@ ALL_APPS = [
65
65
  "resend",
66
66
  "retell",
67
67
  "rocketlane",
68
+ "scraper",
68
69
  "semanticscholar",
69
70
  "semrush",
70
71
  "sendgrid",
@@ -4751,71 +4751,7 @@ class GoogleDriveApp(APIApplication):
4751
4751
  except ValueError:
4752
4752
  return None
4753
4753
 
4754
- def list_all_members_of_achannel(
4755
- self, channel: str | None = None
4756
- ) -> dict[str, Any]:
4757
- """
4758
- List all members of a channel
4759
-
4760
- Args:
4761
- channel (string): Specifies the channel for which to retrieve conversation members; must be a valid channel identifier. Example: '{{channelId}}'.
4762
-
4763
- Returns:
4764
- dict[str, Any]: Success Response
4765
-
4766
- Raises:
4767
- HTTPError: Raised when the API request fails (e.g., non-2XX status code).
4768
- JSONDecodeError: Raised if the response body cannot be parsed as JSON.
4769
-
4770
- Tags:
4771
- Google Drive API Use Cases, Share file access to a slack channel
4772
- """
4773
- url = f"{self.base_url}/api/conversations.members"
4774
- query_params = {k: v for k, v in [("channel", channel)] if v is not None}
4775
- response = self._get(url, params=query_params)
4776
- response.raise_for_status()
4777
- if (
4778
- response.status_code == 204
4779
- or not response.content
4780
- or not response.text.strip()
4781
- ):
4782
- return None
4783
- try:
4784
- return response.json()
4785
- except ValueError:
4786
- return None
4787
-
4788
- def fetch_user_email(self, user: str | None = None) -> dict[str, Any]:
4789
- """
4790
- Fetch User Email
4791
-
4792
- Args:
4793
- user (string): Specifies the user identifier to retrieve information for; the value should be a unique string. Example: '{{currentUserId}}'.
4794
-
4795
- Returns:
4796
- dict[str, Any]: Fetch User Email
4797
-
4798
- Raises:
4799
- HTTPError: Raised when the API request fails (e.g., non-2XX status code).
4800
- JSONDecodeError: Raised if the response body cannot be parsed as JSON.
4801
-
4802
- Tags:
4803
- Google Drive API Use Cases, Share file access to a slack channel
4804
- """
4805
- url = f"{self.base_url}/api/users.info"
4806
- query_params = {k: v for k, v in [("user", user)] if v is not None}
4807
- response = self._get(url, params=query_params)
4808
- response.raise_for_status()
4809
- if (
4810
- response.status_code == 204
4811
- or not response.content
4812
- or not response.text.strip()
4813
- ):
4814
- return None
4815
- try:
4816
- return response.json()
4817
- except ValueError:
4818
- return None
4754
+
4819
4755
 
4820
4756
  def grant_google_drive_access(
4821
4757
  self,
@@ -4930,8 +4866,6 @@ class GoogleDriveApp(APIApplication):
4930
4866
  self.get_aspecific_revision,
4931
4867
  self.permanently_delete_afile_version,
4932
4868
  self.update_arevision,
4933
- self.list_all_members_of_achannel,
4934
- self.fetch_user_email,
4935
4869
  self.grant_google_drive_access,
4936
4870
  self.move_files,
4937
4871
  ]
@@ -0,0 +1,15 @@
1
+ # ScraperApp MCP Server
2
+
3
+ An MCP Server for the ScraperApp API.
4
+
5
+ ## 🛠️ Tool List
6
+
7
+ This is automatically generated from OpenAPI schema for the ScraperApp API.
8
+
9
+
10
+ | Tool | Description |
11
+ |------|-------------|
12
+ | `linkedin_post_search` | Performs a LinkedIn search for posts. |
13
+ | `linkedin_list_all_posts` | Lists all LinkedIn posts for a given user identifier |
14
+ | `linkedin_retrieve_profile` | Retrieves a specific LinkedIn user profile by its identifier. |
15
+ | `linkedin_list_post_comments` | Lists all comments from a specific LinkedIn post. Can also list replies to a specific comment. |
@@ -0,0 +1 @@
1
+ from .app import ScraperApp
@@ -0,0 +1,190 @@
1
+ import os
2
+ from dotenv import load_dotenv
3
+ load_dotenv()
4
+
5
+ from typing import Any
6
+
7
+ from universal_mcp.applications.application import APIApplication
8
+ from universal_mcp.integrations import Integration
9
+ from universal_mcp.agentr.integration import AgentrIntegration
10
+ from universal_mcp_unipile.app import UnipileApp
11
+ from typing import Any, Optional
12
+
13
+ class ScraperApp(APIApplication):
14
+ """
15
+ Application for interacting with LinkedIn API.
16
+ Provides a simplified interface for LinkedIn search operations.
17
+ """
18
+
19
+ def __init__(self, **kwargs: Any) -> None:
20
+ """
21
+ Initialize the ScraperApp.
22
+
23
+ Args:
24
+ integration: The integration configuration containing credentials and other settings.
25
+ It is expected that the integration provides the necessary credentials
26
+ for LinkedIn API access.
27
+ """
28
+ super().__init__(name="scraper", **kwargs)
29
+ self.api_key = os.getenv("SCRAPER_API")
30
+ self.account_id = os.getenv("ACCOUNT_ID")
31
+
32
+ if self.api_key:
33
+ self.integration = AgentrIntegration(name="unipile", api_key=self.api_key, base_url="https://api.agentr.dev")
34
+ self._unipile_app = UnipileApp(integration=self.integration)
35
+ else:
36
+ self.integration = None
37
+ self._unipile_app = None
38
+
39
+ def linkedin_post_search(
40
+ self,
41
+ category: str = "posts",
42
+ api: str = "classic",
43
+ cursor: Optional[str] = None,
44
+ limit: Optional[int] = None,
45
+ keywords: Optional[str] = None,
46
+ sort_by: Optional[str] = None,
47
+ date_posted: Optional[str] = None,
48
+ content_type: Optional[str] = None,
49
+ ) -> dict[str, Any]:
50
+ """
51
+ Performs a LinkedIn search for posts.
52
+
53
+ Args:
54
+ category: Type of search to perform (defaults to "posts").
55
+ api: Which LinkedIn API to use - "classic" or "sales_navigator".
56
+ cursor: Pagination cursor for the next page of entries.
57
+ limit: Number of items to return (up to 50 for Classic search).
58
+ keywords: Keywords to search for.
59
+ sort_by: How to sort the results, e.g., "relevance" or "date".
60
+ date_posted: Filter posts by when they were posted.
61
+ content_type: Filter by the type of content in the post. Example: "videos", "images", "live_videos", "collaborative_articles", "documents"
62
+
63
+ Returns:
64
+ A dictionary containing search results and pagination details.
65
+
66
+ Raises:
67
+ httpx.HTTPError: If the API request fails.
68
+
69
+ Tags:
70
+ linkedin, search, posts, api, scrapper, important
71
+ """
72
+
73
+ return self._unipile_app.search(
74
+ account_id=self.account_id,
75
+ category=category,
76
+ api=api,
77
+ cursor=cursor,
78
+ limit=limit,
79
+ keywords=keywords,
80
+ sort_by=sort_by,
81
+ date_posted=date_posted,
82
+ content_type=content_type,
83
+ )
84
+
85
+ def linkedin_list_all_posts(
86
+ self,
87
+ identifier: str,
88
+ cursor: Optional[str] = None,
89
+ limit: Optional[int] = None,
90
+ ) -> dict[str, Any]:
91
+ """
92
+ Lists all LinkedIn posts for a given user identifier
93
+
94
+ Args:
95
+ identifier: The entity's provider internal ID (LinkedIn ID).starts with ACo for users, while for companies it's a series of numbers.
96
+ cursor: Pagination cursor for the next page of entries.
97
+ limit: Number of items to return (1-100, though spec allows up to 250).
98
+
99
+ Returns:
100
+ A dictionary containing a list of post objects and pagination details.
101
+
102
+ Raises:
103
+ httpx.HTTPError: If the API request fails.
104
+
105
+ Tags:
106
+ linkedin, post, list, user_posts, company_posts, content, api, important
107
+ """
108
+
109
+ return self._unipile_app.list_user_posts(
110
+ identifier=identifier,
111
+ account_id=self.account_id,
112
+ cursor=cursor,
113
+ limit=limit,
114
+ )
115
+
116
+ def linkedin_retrieve_profile(
117
+ self,
118
+ identifier: str,
119
+ ) -> dict[str, Any]:
120
+ """
121
+ Retrieves a specific LinkedIn user profile by its identifier.
122
+
123
+ Args:
124
+ identifier: Can be the provider's internal id OR the provider's public id of the requested user.
125
+ For example, for https://www.linkedin.com/in/manojbajaj95/, the identifier is "manojbajaj95".
126
+
127
+ Returns:
128
+ A dictionary containing the user's profile details.
129
+
130
+ Raises:
131
+ httpx.HTTPError: If the API request fails.
132
+
133
+ Tags:
134
+ linkedin, user, profile, retrieve, get, api, important
135
+ """
136
+
137
+ return self._unipile_app.retrieve_profile(
138
+ identifier=identifier,
139
+ account_id=self.account_id,
140
+ )
141
+
142
+
143
+ def linkedin_list_post_comments(
144
+ self,
145
+ post_id: str,
146
+ comment_id: Optional[str] = None,
147
+ cursor: Optional[str] = None,
148
+ limit: Optional[int] = None,
149
+ ) -> dict[str, Any]:
150
+ """
151
+ Lists all comments from a specific LinkedIn post. Can also list replies to a specific comment.
152
+
153
+ Args:
154
+ post_id: The social ID of the post. Example rn:li:activity:7342082869034393600
155
+ comment_id: If provided, retrieves replies to this comment ID instead of top-level comments.
156
+ cursor: Pagination cursor.
157
+ limit: Number of comments to return.
158
+
159
+ Returns:
160
+ A dictionary containing a list of comment objects and pagination details.
161
+
162
+ Raises:
163
+ httpx.HTTPError: If the API request fails.
164
+
165
+ Tags:
166
+ linkedin, post, comment, list, content, api, important
167
+ """
168
+
169
+ return self._unipile_app.list_post_comments(
170
+ post_id=post_id,
171
+ account_id=self.account_id,
172
+ comment_id=comment_id,
173
+ cursor=cursor,
174
+ limit=limit,
175
+ )
176
+
177
+
178
+ def list_tools(self):
179
+ """
180
+ Returns a list of available tools/functions in this application.
181
+
182
+ Returns:
183
+ A list of functions that can be used as tools.
184
+ """
185
+ return [
186
+ self.linkedin_post_search,
187
+ self.linkedin_list_all_posts,
188
+ self.linkedin_retrieve_profile,
189
+ self.linkedin_list_post_comments,
190
+ ]