universal-mcp-applications 0.1.20__tar.gz → 0.1.21__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 (290) hide show
  1. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/PKG-INFO +1 -1
  2. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/bump_and_release.sh +4 -3
  3. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/pyproject.toml +1 -1
  4. universal_mcp_applications-0.1.21/src/universal_mcp/applications/scraper/app.py +408 -0
  5. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/unipile/app.py +257 -0
  6. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/youtube/app.py +16 -6
  7. universal_mcp_applications-0.1.21/test.py +41 -0
  8. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/uv.lock +2 -2
  9. universal_mcp_applications-0.1.20/src/universal_mcp/applications/scraper/app.py +0 -189
  10. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/.gitignore +0 -0
  11. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/GEMINI.md +0 -0
  12. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/LICENSE +0 -0
  13. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/README.md +0 -0
  14. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/examples/children_story_builder.py +0 -0
  15. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/scripts/docgen.py +0 -0
  16. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/scripts/prompts.py +0 -0
  17. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/scripts/readme.py +0 -0
  18. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/scripts/run_docgen.py +0 -0
  19. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/tests/test_applications.py +0 -0
  20. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/ahrefs/README.md +0 -0
  21. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/ahrefs/__init__.py +0 -0
  22. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/ahrefs/app.py +0 -0
  23. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/airtable/README.md +0 -0
  24. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/airtable/__init__.py +0 -0
  25. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/airtable/app.py +0 -0
  26. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/apollo/README.md +0 -0
  27. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/apollo/__init__.py +0 -0
  28. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/apollo/app.py +0 -0
  29. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/asana/README.md +0 -0
  30. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/asana/__init__.py +0 -0
  31. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/asana/app.py +0 -0
  32. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/aws_s3/README.md +0 -0
  33. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/aws_s3/__init__.py +0 -0
  34. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/aws_s3/app.py +0 -0
  35. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/bill/README.md +0 -0
  36. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/bill/__init__.py +0 -0
  37. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/bill/app.py +0 -0
  38. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/box/README.md +0 -0
  39. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/box/__init__.py +0 -0
  40. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/box/app.py +0 -0
  41. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/braze/README.md +0 -0
  42. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/braze/__init__.py +0 -0
  43. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/braze/app.py +0 -0
  44. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/cal_com_v2/README.md +0 -0
  45. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/cal_com_v2/__init__.py +0 -0
  46. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/cal_com_v2/app.py +0 -0
  47. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/calendly/README.md +0 -0
  48. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/calendly/__init__.py +0 -0
  49. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/calendly/app.py +0 -0
  50. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/canva/README.md +0 -0
  51. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/canva/__init__.py +0 -0
  52. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/canva/app.py +0 -0
  53. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/clickup/README.md +0 -0
  54. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/clickup/__init__.py +0 -0
  55. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/clickup/app.py +0 -0
  56. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/coda/README.md +0 -0
  57. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/coda/__init__.py +0 -0
  58. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/coda/app.py +0 -0
  59. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/confluence/README.md +0 -0
  60. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/confluence/__init__.py +0 -0
  61. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/confluence/app.py +0 -0
  62. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/contentful/README.md +0 -0
  63. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/contentful/__init__.py +0 -0
  64. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/contentful/app.py +0 -0
  65. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/crustdata/README.md +0 -0
  66. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/crustdata/__init__.py +0 -0
  67. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/crustdata/app.py +0 -0
  68. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/dialpad/README.md +0 -0
  69. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/dialpad/__init__.py +0 -0
  70. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/dialpad/app.py +0 -0
  71. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/digitalocean/README.md +0 -0
  72. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/digitalocean/__init__.py +0 -0
  73. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/digitalocean/app.py +0 -0
  74. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/domain_checker/README.md +0 -0
  75. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/domain_checker/__init__.py +0 -0
  76. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/domain_checker/app.py +0 -0
  77. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/e2b/README.md +0 -0
  78. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/e2b/__init__.py +0 -0
  79. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/e2b/app.py +0 -0
  80. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/elevenlabs/README.md +0 -0
  81. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/elevenlabs/__init__.py +0 -0
  82. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/elevenlabs/app.py +0 -0
  83. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/exa/README.md +0 -0
  84. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/exa/__init__.py +0 -0
  85. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/exa/app.py +0 -0
  86. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/falai/README.md +0 -0
  87. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/falai/__init__.py +0 -0
  88. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/falai/app.py +0 -0
  89. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/figma/README.md +0 -0
  90. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/figma/__init__.py +0 -0
  91. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/figma/app.py +0 -0
  92. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/file_system/README.md +0 -0
  93. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/file_system/__init__.py +0 -0
  94. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/file_system/app.py +0 -0
  95. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/firecrawl/README.md +0 -0
  96. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/firecrawl/__init__.py +0 -0
  97. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/firecrawl/app.py +0 -0
  98. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/fireflies/README.md +0 -0
  99. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/fireflies/__init__.py +0 -0
  100. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/fireflies/app.py +0 -0
  101. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/fpl/README.md +0 -0
  102. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/fpl/__init__.py +0 -0
  103. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/fpl/app.py +0 -0
  104. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/fpl/utils/api.py +0 -0
  105. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/fpl/utils/fixtures.py +0 -0
  106. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/fpl/utils/helper.py +0 -0
  107. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/fpl/utils/league_utils.py +0 -0
  108. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/fpl/utils/position_utils.py +0 -0
  109. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/ghost_content/README.md +0 -0
  110. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/ghost_content/__init__.py +0 -0
  111. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/ghost_content/app.py +0 -0
  112. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/github/README.md +0 -0
  113. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/github/__init__.py +0 -0
  114. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/github/app.py +0 -0
  115. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/gong/README.md +0 -0
  116. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/gong/__init__.py +0 -0
  117. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/gong/app.py +0 -0
  118. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_calendar/README.md +0 -0
  119. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_calendar/__init__.py +0 -0
  120. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_calendar/app.py +0 -0
  121. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_docs/README.md +0 -0
  122. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_docs/__init__.py +0 -0
  123. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_docs/app.py +0 -0
  124. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_drive/README.md +0 -0
  125. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_drive/__init__.py +0 -0
  126. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_drive/app.py +0 -0
  127. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_gemini/README.md +0 -0
  128. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_gemini/__init__.py +0 -0
  129. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_gemini/app.py +0 -0
  130. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_mail/README.md +0 -0
  131. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_mail/__init__.py +0 -0
  132. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_mail/app.py +0 -0
  133. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_searchconsole/README.md +0 -0
  134. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_searchconsole/__init__.py +0 -0
  135. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_searchconsole/app.py +0 -0
  136. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_sheet/README.md +0 -0
  137. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_sheet/__init__.py +0 -0
  138. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_sheet/app.py +0 -0
  139. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/google_sheet/helper.py +0 -0
  140. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/hashnode/README.md +0 -0
  141. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/hashnode/__init__.py +0 -0
  142. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/hashnode/app.py +0 -0
  143. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/heygen/README.md +0 -0
  144. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/heygen/__init__.py +0 -0
  145. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/heygen/app.py +0 -0
  146. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/http_tools/README.md +0 -0
  147. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/http_tools/__init__.py +0 -0
  148. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/http_tools/app.py +0 -0
  149. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/hubspot/README.md +0 -0
  150. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/hubspot/__init__.py +0 -0
  151. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/hubspot/api_segments/__init__.py +0 -0
  152. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/hubspot/api_segments/api_segment_base.py +0 -0
  153. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/hubspot/api_segments/crm_api.py +0 -0
  154. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/hubspot/api_segments/marketing_api.py +0 -0
  155. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/hubspot/app.py +0 -0
  156. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/jira/README.md +0 -0
  157. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/jira/__init__.py +0 -0
  158. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/jira/app.py +0 -0
  159. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/klaviyo/README.md +0 -0
  160. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/klaviyo/__init__.py +0 -0
  161. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/klaviyo/app.py +0 -0
  162. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/linkedin/README.md +0 -0
  163. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/linkedin/__init__.py +0 -0
  164. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/linkedin/app.py +0 -0
  165. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/mailchimp/README.md +0 -0
  166. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/mailchimp/__init__.py +0 -0
  167. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/mailchimp/app.py +0 -0
  168. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/markitdown/README.md +0 -0
  169. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/markitdown/__init__.py +0 -0
  170. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/markitdown/app.py +0 -0
  171. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/miro/README.md +0 -0
  172. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/miro/__init__.py +0 -0
  173. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/miro/app.py +0 -0
  174. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/ms_teams/README.md +0 -0
  175. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/ms_teams/__init__.py +0 -0
  176. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/ms_teams/app.py +0 -0
  177. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/neon/README.md +0 -0
  178. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/neon/__init__.py +0 -0
  179. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/neon/app.py +0 -0
  180. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/notion/README.md +0 -0
  181. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/notion/__init__.py +0 -0
  182. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/notion/app.py +0 -0
  183. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/openai/README.md +0 -0
  184. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/openai/__init__.py +0 -0
  185. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/openai/app.py +0 -0
  186. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/outlook/README.md +0 -0
  187. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/outlook/__init__.py +0 -0
  188. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/outlook/app.py +0 -0
  189. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/perplexity/README.md +0 -0
  190. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/perplexity/__init__.py +0 -0
  191. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/perplexity/app.py +0 -0
  192. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/pipedrive/README.md +0 -0
  193. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/pipedrive/__init__.py +0 -0
  194. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/pipedrive/app.py +0 -0
  195. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/posthog/README.md +0 -0
  196. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/posthog/__init__.py +0 -0
  197. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/posthog/app.py +0 -0
  198. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/reddit/README.md +0 -0
  199. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/reddit/__init__.py +0 -0
  200. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/reddit/app.py +0 -0
  201. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/resend/README.md +0 -0
  202. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/resend/__init__.py +0 -0
  203. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/resend/app.py +0 -0
  204. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/retell/README.md +0 -0
  205. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/retell/__init__.py +0 -0
  206. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/retell/app.py +0 -0
  207. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/rocketlane/README.md +0 -0
  208. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/rocketlane/__init__.py +0 -0
  209. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/rocketlane/app.py +0 -0
  210. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/scraper/README.md +0 -0
  211. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/scraper/__init__.py +0 -0
  212. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/semanticscholar/README.md +0 -0
  213. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/semanticscholar/__init__.py +0 -0
  214. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/semanticscholar/app.py +0 -0
  215. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/semrush/README.md +0 -0
  216. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/semrush/__init__.py +0 -0
  217. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/semrush/app.py +0 -0
  218. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/sendgrid/README.md +0 -0
  219. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/sendgrid/__init__.py +0 -0
  220. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/sendgrid/app.py +0 -0
  221. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/sentry/README.md +0 -0
  222. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/sentry/__init__.py +0 -0
  223. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/sentry/app.py +0 -0
  224. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/serpapi/README.md +0 -0
  225. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/serpapi/__init__.py +0 -0
  226. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/serpapi/app.py +0 -0
  227. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/sharepoint/README.md +0 -0
  228. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/sharepoint/__init__.py +0 -0
  229. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/sharepoint/app.py +0 -0
  230. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/shopify/README.md +0 -0
  231. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/shopify/__init__.py +0 -0
  232. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/shopify/app.py +0 -0
  233. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/shortcut/README.md +0 -0
  234. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/shortcut/__init__.py +0 -0
  235. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/shortcut/app.py +0 -0
  236. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/slack/README.md +0 -0
  237. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/slack/__init__.py +0 -0
  238. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/slack/app.py +0 -0
  239. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/spotify/README.md +0 -0
  240. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/spotify/__init__.py +0 -0
  241. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/spotify/app.py +0 -0
  242. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/supabase/README.md +0 -0
  243. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/supabase/__init__.py +0 -0
  244. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/supabase/app.py +0 -0
  245. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/tavily/README.md +0 -0
  246. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/tavily/__init__.py +0 -0
  247. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/tavily/app.py +0 -0
  248. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/trello/README.md +0 -0
  249. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/trello/__init__.py +0 -0
  250. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/trello/app.py +0 -0
  251. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twilio/README.md +0 -0
  252. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twilio/__init__.py +0 -0
  253. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twilio/app.py +0 -0
  254. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/README.md +0 -0
  255. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/__init__.py +0 -0
  256. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/__init__.py +0 -0
  257. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/api_segment_base.py +0 -0
  258. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/compliance_api.py +0 -0
  259. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +0 -0
  260. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/dm_events_api.py +0 -0
  261. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/likes_api.py +0 -0
  262. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/lists_api.py +0 -0
  263. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/openapi_json_api.py +0 -0
  264. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/spaces_api.py +0 -0
  265. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/trends_api.py +0 -0
  266. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/tweets_api.py +0 -0
  267. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/usage_api.py +0 -0
  268. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/api_segments/users_api.py +0 -0
  269. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/twitter/app.py +0 -0
  270. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/unipile/README.md +0 -0
  271. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/unipile/__init__.py +0 -0
  272. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/whatsapp/README.md +0 -0
  273. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/whatsapp/__init__.py +0 -0
  274. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/whatsapp/app.py +0 -0
  275. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/whatsapp/audio.py +0 -0
  276. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/whatsapp/whatsapp.py +0 -0
  277. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/whatsapp_business/README.md +0 -0
  278. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/whatsapp_business/__init__.py +0 -0
  279. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/whatsapp_business/app.py +0 -0
  280. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/wrike/README.md +0 -0
  281. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/wrike/__init__.py +0 -0
  282. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/wrike/app.py +0 -0
  283. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/yahoo_finance/README.md +0 -0
  284. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/yahoo_finance/__init__.py +0 -0
  285. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/yahoo_finance/app.py +0 -0
  286. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/youtube/README.md +0 -0
  287. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/youtube/__init__.py +0 -0
  288. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/zenquotes/README.md +0 -0
  289. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/src/universal_mcp/applications/zenquotes/__init__.py +0 -0
  290. {universal_mcp_applications-0.1.20 → universal_mcp_applications-0.1.21}/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.20
3
+ Version: 0.1.21
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
@@ -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.20"
9
+ version = "0.1.21"
10
10
  description = "A Universal MCP Application: universal_mcp_applications"
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.11"
@@ -0,0 +1,408 @@
1
+ import os
2
+ from dotenv import load_dotenv
3
+
4
+ load_dotenv()
5
+
6
+ from typing import Any
7
+
8
+ from universal_mcp.applications.application import APIApplication
9
+ from universal_mcp.applications.unipile import UnipileApp
10
+ from typing import Any, Optional
11
+ from universal_mcp.integrations import Integration
12
+ from loguru import logger
13
+
14
+
15
+ class ScraperApp(APIApplication):
16
+ """
17
+ Application for interacting with LinkedIn API.
18
+ Provides a simplified interface for LinkedIn search operations.
19
+ """
20
+
21
+ def __init__(self, integration: Integration, **kwargs: Any) -> None:
22
+ """
23
+ Initialize the ScraperApp.
24
+
25
+ Args:
26
+ integration: The integration configuration containing credentials and other settings.
27
+ It is expected that the integration provides the necessary credentials
28
+ for LinkedIn API access.
29
+ """
30
+ super().__init__(name="scraper", integration=integration, **kwargs)
31
+ if self.integration:
32
+ credentials = self.integration.get_credentials()
33
+ self.account_id = credentials.get("account_id")
34
+ self._unipile_app = UnipileApp(integration=self.integration)
35
+ else:
36
+ logger.warning(f"Integration not found")
37
+ self.account_id = None
38
+ self._unipile_app = None
39
+
40
+ def linkedin_post_search(
41
+ self,
42
+ category: str = "posts",
43
+ api: str = "classic",
44
+ cursor: Optional[str] = None,
45
+ limit: Optional[int] = None,
46
+ keywords: Optional[str] = None,
47
+ sort_by: Optional[str] = None,
48
+ date_posted: Optional[str] = None,
49
+ content_type: Optional[str] = None,
50
+ ) -> dict[str, Any]:
51
+ """
52
+ Performs a general LinkedIn search for posts using keywords and filters like date and content type. It supports pagination and can utilize either the 'classic' or 'sales_navigator' API, searching broadly across the platform rather than fetching posts from a specific user's profile.
53
+
54
+ Args:
55
+ category: Type of search to perform (defaults to "posts").
56
+ api: Which LinkedIn API to use - "classic" or "sales_navigator".
57
+ cursor: Pagination cursor for the next page of entries.
58
+ limit: Number of items to return (up to 50 for Classic search).
59
+ keywords: Keywords to search for.
60
+ sort_by: How to sort the results, e.g., "relevance" or "date".
61
+ date_posted: Filter posts by when they were posted.
62
+ content_type: Filter by the type of content in the post. Example: "videos", "images", "live_videos", "collaborative_articles", "documents"
63
+
64
+ Returns:
65
+ A dictionary containing search results and pagination details.
66
+
67
+ Raises:
68
+ httpx.HTTPError: If the API request fails.
69
+
70
+ Tags:
71
+ linkedin, search, posts, api, scrapper, important
72
+ """
73
+
74
+ return self._unipile_app.search(
75
+ account_id=self.account_id,
76
+ category=category,
77
+ api=api,
78
+ cursor=cursor,
79
+ limit=limit,
80
+ keywords=keywords,
81
+ sort_by=sort_by,
82
+ date_posted=date_posted,
83
+ content_type=content_type,
84
+ )
85
+
86
+ def linkedin_list_profile_posts(
87
+ self,
88
+ identifier: str,
89
+ cursor: Optional[str] = None,
90
+ limit: Optional[int] = None,
91
+ ) -> dict[str, Any]:
92
+ """
93
+ Fetches a paginated list of all LinkedIn posts from a specific user or company profile using their unique identifier. This function retrieves content directly from a profile, unlike `linkedin_post_search` which finds posts across LinkedIn based on keywords and other filters.
94
+
95
+ Args:
96
+ identifier: The entity's provider internal ID (LinkedIn ID).starts with ACo for users, while for companies it's a series of numbers.
97
+ cursor: Pagination cursor for the next page of entries.
98
+ limit: Number of items to return (1-100, though spec allows up to 250).
99
+
100
+ Returns:
101
+ A dictionary containing a list of post objects and pagination details.
102
+
103
+ Raises:
104
+ httpx.HTTPError: If the API request fails.
105
+
106
+ Tags:
107
+ linkedin, post, list, user_posts, company_posts, content, api, important
108
+ """
109
+
110
+ return self._unipile_app.list_profile_posts(
111
+ identifier=identifier,
112
+ account_id=self.account_id,
113
+ cursor=cursor,
114
+ limit=limit,
115
+ )
116
+
117
+ def linkedin_retrieve_profile(
118
+ self,
119
+ identifier: str,
120
+ ) -> dict[str, Any]:
121
+ """
122
+ Retrieves a specific LinkedIn user's profile by their unique identifier, which can be an internal provider ID or a public username. This function simplifies data access by delegating the actual profile retrieval request to the integrated Unipile application, distinct from functions that list posts or comments.
123
+
124
+ Args:
125
+ identifier: Can be the provider's internal id OR the provider's public id of the requested user.
126
+ For example, for https://www.linkedin.com/in/manojbajaj95/, the identifier is "manojbajaj95".
127
+
128
+ Returns:
129
+ A dictionary containing the user's profile details.
130
+
131
+ Raises:
132
+ httpx.HTTPError: If the API request fails.
133
+
134
+ Tags:
135
+ linkedin, user, profile, retrieve, get, api, important
136
+ """
137
+
138
+ return self._unipile_app.retrieve_user_profile(
139
+ identifier=identifier,
140
+ account_id=self.account_id,
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
+ Fetches comments for a specified LinkedIn post. If a `comment_id` is provided, it retrieves replies to that comment instead of top-level comments. This function supports pagination and specifically targets comments, unlike others in the class that search for or list entire posts.
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
+ def linkedin_people_search(
178
+ self,
179
+ cursor: Optional[str] = None,
180
+ limit: Optional[int] = None,
181
+ keywords: Optional[str] = None,
182
+ last_viewed_at: Optional[int] = None,
183
+ saved_search_id: Optional[str] = None,
184
+ recent_search_id: Optional[str] = None,
185
+ location: Optional[dict[str, Any]] = None,
186
+ location_by_postal_code: Optional[dict[str, Any]] = None,
187
+ industry: Optional[dict[str, Any]] = None,
188
+ first_name: Optional[str] = None,
189
+ last_name: Optional[str] = None,
190
+ tenure: Optional[list[dict[str, Any]]] = None,
191
+ groups: Optional[list[str]] = None,
192
+ school: Optional[dict[str, Any]] = None,
193
+ profile_language: Optional[list[str]] = None,
194
+ company: Optional[dict[str, Any]] = None,
195
+ company_headcount: Optional[list[dict[str, Any]]] = None,
196
+ company_type: Optional[list[str]] = None,
197
+ company_location: Optional[dict[str, Any]] = None,
198
+ tenure_at_company: Optional[list[dict[str, Any]]] = None,
199
+ past_company: Optional[dict[str, Any]] = None,
200
+ function: Optional[dict[str, Any]] = None,
201
+ role: Optional[dict[str, Any]] = None,
202
+ tenure_at_role: Optional[list[dict[str, Any]]] = None,
203
+ seniority: Optional[dict[str, Any]] = None,
204
+ past_role: Optional[dict[str, Any]] = None,
205
+ following_your_company: Optional[bool] = None,
206
+ viewed_your_profile_recently: Optional[bool] = None,
207
+ network_distance: Optional[list[str]] = None,
208
+ connections_of: Optional[list[str]] = None,
209
+ past_colleague: Optional[bool] = None,
210
+ shared_experiences: Optional[bool] = None,
211
+ changed_jobs: Optional[bool] = None,
212
+ posted_on_linkedin: Optional[bool] = None,
213
+ mentionned_in_news: Optional[bool] = None,
214
+ persona: Optional[list[str]] = None,
215
+ account_lists: Optional[dict[str, Any]] = None,
216
+ lead_lists: Optional[dict[str, Any]] = None,
217
+ viewed_profile_recently: Optional[bool] = None,
218
+ messaged_recently: Optional[bool] = None,
219
+ include_saved_leads: Optional[bool] = None,
220
+ include_saved_accounts: Optional[bool] = None,
221
+ ) -> dict[str, Any]:
222
+ """
223
+ Performs a comprehensive LinkedIn Sales Navigator people search with advanced targeting options.
224
+ This function provides access to LinkedIn's Sales Navigator search capabilities for finding people
225
+ with precise filters including experience, company details, education, and relationship criteria.
226
+
227
+ Args:
228
+ cursor: Pagination cursor for the next page of entries.
229
+ limit: Number of items to return.
230
+ keywords: LinkedIn native filter: KEYWORDS.
231
+ last_viewed_at: Unix timestamp for saved search filtering.
232
+ saved_search_id: ID of saved search (overrides other parameters).
233
+ recent_search_id: ID of recent search (overrides other parameters).
234
+ location: LinkedIn native filter: GEOGRAPHY. Example: {"include": ["San Francisco Bay Area", "New York City Area"]}
235
+ location_by_postal_code: Location filter by postal code. Example: {"postal_code": "94105", "radius": "25"}
236
+ industry: LinkedIn native filter: INDUSTRY. Example: {"include": ["Information Technology and Services", "Financial Services"]}
237
+ first_name: LinkedIn native filter: FIRST NAME. Example: "John"
238
+ last_name: LinkedIn native filter: LAST NAME. Example: "Smith"
239
+ tenure: LinkedIn native filter: YEARS OF EXPERIENCE. Example: [{"min": 5, "max": 10}]
240
+ groups: LinkedIn native filter: GROUPS. Example: ["group_id_1", "group_id_2"]
241
+ school: LinkedIn native filter: SCHOOL. Example: {"include": ["Stanford University", "Harvard University"]}
242
+ profile_language: ISO 639-1 language codes, LinkedIn native filter: PROFILE LANGUAGE. Example: ["en", "es"]
243
+ company: LinkedIn native filter: CURRENT COMPANY. Example: {"include": ["Google", "Microsoft", "Apple"]}
244
+ company_headcount: LinkedIn native filter: COMPANY HEADCOUNT. Example: [{"min": 100, "max": 1000}]
245
+ company_type: LinkedIn native filter: COMPANY TYPE. Example: ["Public Company", "Privately Held"]
246
+ company_location: LinkedIn native filter: COMPANY HEADQUARTERS LOCATION. Example: {"include": ["San Francisco", "Seattle"]}
247
+ tenure_at_company: LinkedIn native filter: YEARS IN CURRENT COMPANY. Example: [{"min": 2, "max": 5}]
248
+ past_company: LinkedIn native filter: PAST COMPANY. Example: {"include": ["Facebook", "Amazon"]}
249
+ function: LinkedIn native filter: FUNCTION. Example: {"include": ["Engineering", "Sales", "Marketing"]}
250
+ role: LinkedIn native filter: CURRENT JOB TITLE. Example: {"include": ["Software Engineer", "Product Manager"]}
251
+ tenure_at_role: LinkedIn native filter: YEARS IN CURRENT POSITION. Example: [{"min": 1, "max": 3}]
252
+ seniority: LinkedIn native filter: SENIORITY LEVEL. Example: {"include": ["Senior", "Director", "VP"]}
253
+ past_role: LinkedIn native filter: PAST JOB TITLE. Example: {"include": ["Senior Developer", "Team Lead"]}
254
+ following_your_company: LinkedIn native filter: FOLLOWING YOUR COMPANY. Example: True
255
+ viewed_your_profile_recently: LinkedIn native filter: VIEWED YOUR PROFILE RECENTLY. Example: True
256
+ network_distance: First, second, third+ degree or GROUP, LinkedIn native filter: CONNECTION. Example: ["1st", "2nd"]
257
+ connections_of: LinkedIn native filter: CONNECTIONS OF. Example: ["person_id_1", "person_id_2"]
258
+ past_colleague: LinkedIn native filter: PAST COLLEAGUE. Example: True
259
+ shared_experiences: LinkedIn native filter: SHARED EXPERIENCES. Example: True
260
+ changed_jobs: LinkedIn native filter: CHANGED JOBS. Example: True
261
+ posted_on_linkedin: LinkedIn native filter: POSTED ON LINKEDIN. Example: True
262
+ mentionned_in_news: LinkedIn native filter: MENTIONNED IN NEWS. Example: True
263
+ persona: LinkedIn native filter: PERSONA. Example: ["persona_id_1", "persona_id_2"]
264
+ account_lists: LinkedIn native filter: ACCOUNT LISTS. Example: {"include": ["list_id_1"]}
265
+ lead_lists: LinkedIn native filter: LEAD LISTS. Example: {"include": ["lead_list_id_1"]}
266
+ viewed_profile_recently: LinkedIn native filter: PEOPLE YOU INTERACTED WITH / VIEWED PROFILE. Example: True
267
+ messaged_recently: LinkedIn native filter: PEOPLE YOU INTERACTED WITH / MESSAGED. Example: True
268
+ include_saved_leads: LinkedIn native filter: SAVED LEADS AND ACCOUNTS / ALL MY SAVED LEADS. Example: True
269
+ include_saved_accounts: LinkedIn native filter: SAVED LEADS AND ACCOUNTS / ALL MY SAVED ACCOUNTS. Example: True
270
+
271
+ Returns:
272
+ A dictionary containing search results and pagination details.
273
+
274
+ Raises:
275
+ httpx.HTTPError: If the API request fails.
276
+
277
+ Tags:
278
+ linkedin, sales_navigator, people, search, advanced, scraper, api, important
279
+ """
280
+ return self._unipile_app.people_search(
281
+ account_id=self.account_id,
282
+ cursor=cursor,
283
+ limit=limit,
284
+ keywords=keywords,
285
+ last_viewed_at=last_viewed_at,
286
+ saved_search_id=saved_search_id,
287
+ recent_search_id=recent_search_id,
288
+ location=location,
289
+ location_by_postal_code=location_by_postal_code,
290
+ industry=industry,
291
+ first_name=first_name,
292
+ last_name=last_name,
293
+ tenure=tenure,
294
+ groups=groups,
295
+ school=school,
296
+ profile_language=profile_language,
297
+ company=company,
298
+ company_headcount=company_headcount,
299
+ company_type=company_type,
300
+ company_location=company_location,
301
+ tenure_at_company=tenure_at_company,
302
+ past_company=past_company,
303
+ function=function,
304
+ role=role,
305
+ tenure_at_role=tenure_at_role,
306
+ seniority=seniority,
307
+ past_role=past_role,
308
+ following_your_company=following_your_company,
309
+ viewed_your_profile_recently=viewed_your_profile_recently,
310
+ network_distance=network_distance,
311
+ connections_of=connections_of,
312
+ past_colleague=past_colleague,
313
+ shared_experiences=shared_experiences,
314
+ changed_jobs=changed_jobs,
315
+ posted_on_linkedin=posted_on_linkedin,
316
+ mentionned_in_news=mentionned_in_news,
317
+ persona=persona,
318
+ account_lists=account_lists,
319
+ lead_lists=lead_lists,
320
+ viewed_profile_recently=viewed_profile_recently,
321
+ messaged_recently=messaged_recently,
322
+ include_saved_leads=include_saved_leads,
323
+ include_saved_accounts=include_saved_accounts,
324
+ )
325
+
326
+ def linkedin_company_search(
327
+ self,
328
+ cursor: Optional[str] = None,
329
+ limit: Optional[int] = None,
330
+ keywords: Optional[str] = None,
331
+ last_viewed_at: Optional[int] = None,
332
+ saved_search_id: Optional[str] = None,
333
+ recent_search_id: Optional[str] = None,
334
+ location: Optional[dict[str, Any]] = None,
335
+ location_by_postal_code: Optional[dict[str, Any]] = None,
336
+ industry: Optional[dict[str, Any]] = None,
337
+ company_headcount: Optional[list[dict[str, Any]]] = None,
338
+ company_type: Optional[list[str]] = None,
339
+ company_location: Optional[dict[str, Any]] = None,
340
+ following_your_company: Optional[bool] = None,
341
+ account_lists: Optional[dict[str, Any]] = None,
342
+ include_saved_accounts: Optional[bool] = None,
343
+ ) -> dict[str, Any]:
344
+ """
345
+ Performs a comprehensive LinkedIn Sales Navigator company search with advanced targeting options.
346
+ This function provides access to LinkedIn's Sales Navigator search capabilities for finding companies
347
+ with precise filters including size, location, industry, and relationship criteria.
348
+
349
+ Args:
350
+ cursor: Pagination cursor for the next page of entries.
351
+ limit: Number of items to return.
352
+ keywords: LinkedIn native filter: KEYWORDS. Example: "fintech startup"
353
+ last_viewed_at: Unix timestamp for saved search filtering.
354
+ saved_search_id: ID of saved search (overrides other parameters).
355
+ recent_search_id: ID of recent search (overrides other parameters).
356
+ location: LinkedIn native filter: GEOGRAPHY. Example: {"include": ["San Francisco Bay Area", "New York City Area"]}
357
+ location_by_postal_code: Location filter by postal code. Example: {"postal_code": "94105", "radius": "25"}
358
+ industry: LinkedIn native filter: INDUSTRY. Example: {"include": ["Information Technology and Services", "Financial Services"]}
359
+ company_headcount: LinkedIn native filter: COMPANY HEADCOUNT. Example: [{"min": 10, "max": 100}]
360
+ company_type: LinkedIn native filter: COMPANY TYPE. Example: ["Public Company", "Privately Held", "Startup"]
361
+ company_location: LinkedIn native filter: COMPANY HEADQUARTERS LOCATION. Example: {"include": ["San Francisco", "Seattle", "Austin"]}
362
+ following_your_company: LinkedIn native filter: FOLLOWING YOUR COMPANY. Example: True
363
+ account_lists: LinkedIn native filter: ACCOUNT LISTS. Example: {"include": ["account_list_id_1"]}
364
+ include_saved_accounts: LinkedIn native filter: SAVED LEADS AND ACCOUNTS / ALL MY SAVED ACCOUNTS. Example: True
365
+
366
+ Returns:
367
+ A dictionary containing search results and pagination details.
368
+
369
+ Raises:
370
+ httpx.HTTPError: If the API request fails.
371
+
372
+ Tags:
373
+ linkedin, sales_navigator, companies, search, advanced, scraper, api, important
374
+ """
375
+ return self._unipile_app.company_search(
376
+ account_id=self.account_id,
377
+ cursor=cursor,
378
+ limit=limit,
379
+ keywords=keywords,
380
+ last_viewed_at=last_viewed_at,
381
+ saved_search_id=saved_search_id,
382
+ recent_search_id=recent_search_id,
383
+ location=location,
384
+ location_by_postal_code=location_by_postal_code,
385
+ industry=industry,
386
+ company_headcount=company_headcount,
387
+ company_type=company_type,
388
+ company_location=company_location,
389
+ following_your_company=following_your_company,
390
+ account_lists=account_lists,
391
+ include_saved_accounts=include_saved_accounts,
392
+ )
393
+
394
+ def list_tools(self):
395
+ """
396
+ Returns a list of available tools/functions in this application.
397
+
398
+ Returns:
399
+ A list of functions that can be used as tools.
400
+ """
401
+ return [
402
+ self.linkedin_post_search,
403
+ self.linkedin_list_profile_posts,
404
+ self.linkedin_retrieve_profile,
405
+ self.linkedin_list_post_comments,
406
+ self.linkedin_people_search,
407
+ self.linkedin_company_search,
408
+ ]