universal-mcp-applications 0.1.4__tar.gz → 0.1.6__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.
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/PKG-INFO +1 -1
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/pyproject.toml +1 -1
- universal_mcp_applications-0.1.6/src/tests/test_applications.py +97 -0
- universal_mcp_applications-0.1.6/src/universal_mcp/applications/scraper/README.md +15 -0
- universal_mcp_applications-0.1.6/src/universal_mcp/applications/scraper/__init__.py +1 -0
- universal_mcp_applications-0.1.6/src/universal_mcp/applications/scraper/app.py +189 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/uv.lock +1 -1
- universal_mcp_applications-0.1.4/src/tests/test_applications.py +0 -96
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/.gitignore +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/LICENSE +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/bump_and_release.sh +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/examples/children_story_builder.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/ahrefs/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/ahrefs/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/ahrefs/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/airtable/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/airtable/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/airtable/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/apollo/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/apollo/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/apollo/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/asana/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/asana/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/asana/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/aws_s3/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/aws_s3/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/aws_s3/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/bill/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/bill/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/bill/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/box/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/box/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/box/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/braze/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/braze/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/braze/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/cal_com_v2/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/cal_com_v2/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/cal_com_v2/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/calendly/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/calendly/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/calendly/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/canva/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/canva/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/canva/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/clickup/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/clickup/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/clickup/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/coda/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/coda/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/coda/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/confluence/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/confluence/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/confluence/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/contentful/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/contentful/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/contentful/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/crustdata/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/crustdata/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/crustdata/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/dialpad/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/dialpad/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/dialpad/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/digitalocean/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/digitalocean/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/digitalocean/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/domain_checker/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/domain_checker/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/domain_checker/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/e2b/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/e2b/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/e2b/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/elevenlabs/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/elevenlabs/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/elevenlabs/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/exa/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/exa/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/exa/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/falai/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/falai/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/falai/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/figma/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/figma/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/figma/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/file_system/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/file_system/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/firecrawl/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/firecrawl/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/firecrawl/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/fireflies/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/fireflies/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/fireflies/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/fpl/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/fpl/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/fpl/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/fpl/utils/api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/fpl/utils/fixtures.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/fpl/utils/helper.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/fpl/utils/league_utils.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/fpl/utils/position_utils.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/ghost_content/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/ghost_content/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/ghost_content/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/github/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/github/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/github/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/gong/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/gong/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/gong/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_calendar/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_calendar/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_calendar/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_docs/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_docs/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_docs/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_drive/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_drive/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_drive/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_gemini/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_gemini/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_gemini/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_mail/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_mail/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_mail/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_searchconsole/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_searchconsole/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_searchconsole/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_sheet/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_sheet/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_sheet/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/google_sheet/helper.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/hashnode/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/hashnode/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/hashnode/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/heygen/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/heygen/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/heygen/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/http_tools/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/http_tools/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/http_tools/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/hubspot/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/hubspot/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/hubspot/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/jira/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/jira/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/jira/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/klaviyo/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/klaviyo/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/klaviyo/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/linkedin/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/linkedin/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/linkedin/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/mailchimp/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/mailchimp/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/mailchimp/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/markitdown/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/markitdown/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/markitdown/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/miro/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/miro/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/miro/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/ms_teams/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/ms_teams/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/ms_teams/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/neon/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/neon/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/neon/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/notion/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/notion/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/notion/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/openai/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/openai/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/openai/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/outlook/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/outlook/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/outlook/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/perplexity/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/perplexity/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/perplexity/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/pipedrive/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/pipedrive/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/pipedrive/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/posthog/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/posthog/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/posthog/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/reddit/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/reddit/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/reddit/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/replicate/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/replicate/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/replicate/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/resend/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/resend/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/resend/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/retell/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/retell/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/retell/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/rocketlane/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/rocketlane/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/rocketlane/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/semanticscholar/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/semanticscholar/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/semanticscholar/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/semrush/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/semrush/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/semrush/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/sendgrid/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/sendgrid/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/sendgrid/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/sentry/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/sentry/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/sentry/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/serpapi/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/serpapi/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/serpapi/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/sharepoint/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/sharepoint/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/sharepoint/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/shopify/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/shopify/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/shopify/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/shortcut/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/shortcut/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/shortcut/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/slack/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/slack/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/slack/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/spotify/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/spotify/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/spotify/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/supabase/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/supabase/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/supabase/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/tavily/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/tavily/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/tavily/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/trello/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/trello/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/trello/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twilio/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twilio/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twilio/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/api_segment_base.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/compliance_api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/dm_events_api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/likes_api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/lists_api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/openapi_json_api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/spaces_api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/trends_api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/tweets_api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/usage_api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/api_segments/users_api.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/twitter/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/unipile/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/unipile/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/unipile/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/whatsapp/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/whatsapp/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/whatsapp/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/whatsapp/audio.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/whatsapp/whatsapp.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/whatsapp_business/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/whatsapp_business/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/whatsapp_business/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/wrike/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/wrike/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/wrike/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/youtube/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/youtube/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/youtube/app.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/zenquotes/README.md +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/src/universal_mcp/applications/zenquotes/__init__.py +0 -0
- {universal_mcp_applications-0.1.4 → universal_mcp_applications-0.1.6}/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
|
+
Version: 0.1.6
|
|
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
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
|
|
3
|
+
from universal_mcp.applications.utils import app_from_slug
|
|
4
|
+
from universal_mcp.utils.testing import check_application_instance
|
|
5
|
+
|
|
6
|
+
ALL_APPS = [
|
|
7
|
+
# "ahrefs",
|
|
8
|
+
# "airtable",
|
|
9
|
+
# "apollo",
|
|
10
|
+
# "asana",
|
|
11
|
+
# "aws_s3",
|
|
12
|
+
# "bill",
|
|
13
|
+
# "box",
|
|
14
|
+
# "braze",
|
|
15
|
+
# "cal_com_v2",
|
|
16
|
+
# "calendly",
|
|
17
|
+
# "canva",
|
|
18
|
+
# "clickup",
|
|
19
|
+
# "coda",
|
|
20
|
+
# "confluence",
|
|
21
|
+
# "contentful",
|
|
22
|
+
# "crustdata",
|
|
23
|
+
# "dialpad",
|
|
24
|
+
# "digitalocean",
|
|
25
|
+
# "domain_checker",
|
|
26
|
+
# "e2b",
|
|
27
|
+
# "elevenlabs",
|
|
28
|
+
# "exa",
|
|
29
|
+
# "falai",
|
|
30
|
+
# "figma",
|
|
31
|
+
# "file_system",
|
|
32
|
+
# "firecrawl",
|
|
33
|
+
# "fireflies",
|
|
34
|
+
# "fpl",
|
|
35
|
+
# "ghost_content",
|
|
36
|
+
# "github",
|
|
37
|
+
# "gong",
|
|
38
|
+
# "google_calendar",
|
|
39
|
+
# "google_docs",
|
|
40
|
+
# "google_drive",
|
|
41
|
+
# "google_gemini",
|
|
42
|
+
# "google_mail",
|
|
43
|
+
# "google_searchconsole",
|
|
44
|
+
# "google_sheet",
|
|
45
|
+
# "hashnode",
|
|
46
|
+
# "heygen",
|
|
47
|
+
# "http_tools",
|
|
48
|
+
# "hubspot",
|
|
49
|
+
# "jira",
|
|
50
|
+
# "klaviyo",
|
|
51
|
+
# "linkedin",
|
|
52
|
+
# "mailchimp",
|
|
53
|
+
# "markitdown",
|
|
54
|
+
# "miro",
|
|
55
|
+
# "ms_teams",
|
|
56
|
+
# "neon",
|
|
57
|
+
# "notion",
|
|
58
|
+
# "openai",
|
|
59
|
+
# "outlook",
|
|
60
|
+
# "perplexity",
|
|
61
|
+
# "pipedrive",
|
|
62
|
+
# "posthog",
|
|
63
|
+
# "reddit",
|
|
64
|
+
# "replicate",
|
|
65
|
+
# "resend",
|
|
66
|
+
# "retell",
|
|
67
|
+
# "rocketlane",
|
|
68
|
+
"scraper",
|
|
69
|
+
# "semanticscholar",
|
|
70
|
+
# "semrush",
|
|
71
|
+
# "sendgrid",
|
|
72
|
+
# "sentry",
|
|
73
|
+
# "serpapi",
|
|
74
|
+
# "sharepoint",
|
|
75
|
+
# "shopify",
|
|
76
|
+
# "shortcut",
|
|
77
|
+
# "slack",
|
|
78
|
+
# "spotify",
|
|
79
|
+
# "supabase",
|
|
80
|
+
# "tavily",
|
|
81
|
+
# "trello",
|
|
82
|
+
# "twilio",
|
|
83
|
+
# "twitter",
|
|
84
|
+
# "unipile",
|
|
85
|
+
# "whatsapp",
|
|
86
|
+
# "whatsapp_business",
|
|
87
|
+
# "wrike",
|
|
88
|
+
# "youtube",
|
|
89
|
+
# "zenquotes",
|
|
90
|
+
]
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
@pytest.mark.parametrize("app_name", ALL_APPS)
|
|
94
|
+
def test_application(app_name):
|
|
95
|
+
app_class = app_from_slug(app_name)
|
|
96
|
+
app_instance = app_class(integration=None)
|
|
97
|
+
check_application_instance(app_instance, app_name)
|
|
@@ -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,189 @@
|
|
|
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.agentr.integration import AgentrIntegration
|
|
9
|
+
from universal_mcp.applications.unipile import UnipileApp
|
|
10
|
+
from typing import Any, Optional
|
|
11
|
+
|
|
12
|
+
class ScraperApp(APIApplication):
|
|
13
|
+
"""
|
|
14
|
+
Application for interacting with LinkedIn API.
|
|
15
|
+
Provides a simplified interface for LinkedIn search operations.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
def __init__(self, **kwargs: Any) -> None:
|
|
19
|
+
"""
|
|
20
|
+
Initialize the ScraperApp.
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
integration: The integration configuration containing credentials and other settings.
|
|
24
|
+
It is expected that the integration provides the necessary credentials
|
|
25
|
+
for LinkedIn API access.
|
|
26
|
+
"""
|
|
27
|
+
super().__init__(name="scraper", **kwargs)
|
|
28
|
+
if self.integration:
|
|
29
|
+
credentials = self.integration.get_credentials()
|
|
30
|
+
api_key = credentials.get("SCRAPER_API")
|
|
31
|
+
self.account_id = credentials.get("ACCOUNT_ID")
|
|
32
|
+
self.integration = AgentrIntegration(name="unipile", api_key=api_key, base_url="https://staging-agentr-306776579029.asia-southeast1.run.app/")
|
|
33
|
+
self._unipile_app = UnipileApp(integration=self.integration)
|
|
34
|
+
else:
|
|
35
|
+
self.account_id = None
|
|
36
|
+
self._unipile_app = None
|
|
37
|
+
|
|
38
|
+
def linkedin_post_search(
|
|
39
|
+
self,
|
|
40
|
+
category: str = "posts",
|
|
41
|
+
api: str = "classic",
|
|
42
|
+
cursor: Optional[str] = None,
|
|
43
|
+
limit: Optional[int] = None,
|
|
44
|
+
keywords: Optional[str] = None,
|
|
45
|
+
sort_by: Optional[str] = None,
|
|
46
|
+
date_posted: Optional[str] = None,
|
|
47
|
+
content_type: Optional[str] = None,
|
|
48
|
+
) -> dict[str, Any]:
|
|
49
|
+
"""
|
|
50
|
+
Performs a LinkedIn search for posts.
|
|
51
|
+
|
|
52
|
+
Args:
|
|
53
|
+
category: Type of search to perform (defaults to "posts").
|
|
54
|
+
api: Which LinkedIn API to use - "classic" or "sales_navigator".
|
|
55
|
+
cursor: Pagination cursor for the next page of entries.
|
|
56
|
+
limit: Number of items to return (up to 50 for Classic search).
|
|
57
|
+
keywords: Keywords to search for.
|
|
58
|
+
sort_by: How to sort the results, e.g., "relevance" or "date".
|
|
59
|
+
date_posted: Filter posts by when they were posted.
|
|
60
|
+
content_type: Filter by the type of content in the post. Example: "videos", "images", "live_videos", "collaborative_articles", "documents"
|
|
61
|
+
|
|
62
|
+
Returns:
|
|
63
|
+
A dictionary containing search results and pagination details.
|
|
64
|
+
|
|
65
|
+
Raises:
|
|
66
|
+
httpx.HTTPError: If the API request fails.
|
|
67
|
+
|
|
68
|
+
Tags:
|
|
69
|
+
linkedin, search, posts, api, scrapper, important
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
return self._unipile_app.search(
|
|
73
|
+
account_id=self.account_id,
|
|
74
|
+
category=category,
|
|
75
|
+
api=api,
|
|
76
|
+
cursor=cursor,
|
|
77
|
+
limit=limit,
|
|
78
|
+
keywords=keywords,
|
|
79
|
+
sort_by=sort_by,
|
|
80
|
+
date_posted=date_posted,
|
|
81
|
+
content_type=content_type,
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
def linkedin_list_all_posts(
|
|
85
|
+
self,
|
|
86
|
+
identifier: str,
|
|
87
|
+
cursor: Optional[str] = None,
|
|
88
|
+
limit: Optional[int] = None,
|
|
89
|
+
) -> dict[str, Any]:
|
|
90
|
+
"""
|
|
91
|
+
Lists all LinkedIn posts for a given user identifier
|
|
92
|
+
|
|
93
|
+
Args:
|
|
94
|
+
identifier: The entity's provider internal ID (LinkedIn ID).starts with ACo for users, while for companies it's a series of numbers.
|
|
95
|
+
cursor: Pagination cursor for the next page of entries.
|
|
96
|
+
limit: Number of items to return (1-100, though spec allows up to 250).
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
A dictionary containing a list of post objects and pagination details.
|
|
100
|
+
|
|
101
|
+
Raises:
|
|
102
|
+
httpx.HTTPError: If the API request fails.
|
|
103
|
+
|
|
104
|
+
Tags:
|
|
105
|
+
linkedin, post, list, user_posts, company_posts, content, api, important
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
return self._unipile_app.list_user_posts(
|
|
109
|
+
identifier=identifier,
|
|
110
|
+
account_id=self.account_id,
|
|
111
|
+
cursor=cursor,
|
|
112
|
+
limit=limit,
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
def linkedin_retrieve_profile(
|
|
116
|
+
self,
|
|
117
|
+
identifier: str,
|
|
118
|
+
) -> dict[str, Any]:
|
|
119
|
+
"""
|
|
120
|
+
Retrieves a specific LinkedIn user profile by its identifier.
|
|
121
|
+
|
|
122
|
+
Args:
|
|
123
|
+
identifier: Can be the provider's internal id OR the provider's public id of the requested user.
|
|
124
|
+
For example, for https://www.linkedin.com/in/manojbajaj95/, the identifier is "manojbajaj95".
|
|
125
|
+
|
|
126
|
+
Returns:
|
|
127
|
+
A dictionary containing the user's profile details.
|
|
128
|
+
|
|
129
|
+
Raises:
|
|
130
|
+
httpx.HTTPError: If the API request fails.
|
|
131
|
+
|
|
132
|
+
Tags:
|
|
133
|
+
linkedin, user, profile, retrieve, get, api, important
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
return self._unipile_app.retrieve_profile(
|
|
137
|
+
identifier=identifier,
|
|
138
|
+
account_id=self.account_id,
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def linkedin_list_post_comments(
|
|
143
|
+
self,
|
|
144
|
+
post_id: str,
|
|
145
|
+
comment_id: Optional[str] = None,
|
|
146
|
+
cursor: Optional[str] = None,
|
|
147
|
+
limit: Optional[int] = None,
|
|
148
|
+
) -> dict[str, Any]:
|
|
149
|
+
"""
|
|
150
|
+
Lists all comments from a specific LinkedIn post. Can also list replies to a specific comment.
|
|
151
|
+
|
|
152
|
+
Args:
|
|
153
|
+
post_id: The social ID of the post. Example rn:li:activity:7342082869034393600
|
|
154
|
+
comment_id: If provided, retrieves replies to this comment ID instead of top-level comments.
|
|
155
|
+
cursor: Pagination cursor.
|
|
156
|
+
limit: Number of comments to return.
|
|
157
|
+
|
|
158
|
+
Returns:
|
|
159
|
+
A dictionary containing a list of comment objects and pagination details.
|
|
160
|
+
|
|
161
|
+
Raises:
|
|
162
|
+
httpx.HTTPError: If the API request fails.
|
|
163
|
+
|
|
164
|
+
Tags:
|
|
165
|
+
linkedin, post, comment, list, content, api, important
|
|
166
|
+
"""
|
|
167
|
+
|
|
168
|
+
return self._unipile_app.list_post_comments(
|
|
169
|
+
post_id=post_id,
|
|
170
|
+
account_id=self.account_id,
|
|
171
|
+
comment_id=comment_id,
|
|
172
|
+
cursor=cursor,
|
|
173
|
+
limit=limit,
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def list_tools(self):
|
|
178
|
+
"""
|
|
179
|
+
Returns a list of available tools/functions in this application.
|
|
180
|
+
|
|
181
|
+
Returns:
|
|
182
|
+
A list of functions that can be used as tools.
|
|
183
|
+
"""
|
|
184
|
+
return [
|
|
185
|
+
self.linkedin_post_search,
|
|
186
|
+
self.linkedin_list_all_posts,
|
|
187
|
+
self.linkedin_retrieve_profile,
|
|
188
|
+
self.linkedin_list_post_comments,
|
|
189
|
+
]
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import pytest
|
|
2
|
-
|
|
3
|
-
from universal_mcp.applications.utils import app_from_slug
|
|
4
|
-
from universal_mcp.utils.testing import check_application_instance
|
|
5
|
-
|
|
6
|
-
ALL_APPS = [
|
|
7
|
-
"ahrefs",
|
|
8
|
-
"airtable",
|
|
9
|
-
"aws_s3",
|
|
10
|
-
"apollo",
|
|
11
|
-
"asana",
|
|
12
|
-
"bill",
|
|
13
|
-
"box",
|
|
14
|
-
"braze",
|
|
15
|
-
# "cal_com_v2",
|
|
16
|
-
"confluence",
|
|
17
|
-
"calendly",
|
|
18
|
-
"canva",
|
|
19
|
-
"clickup",
|
|
20
|
-
"coda",
|
|
21
|
-
"contentful",
|
|
22
|
-
"crustdata",
|
|
23
|
-
"dialpad",
|
|
24
|
-
"digitalocean",
|
|
25
|
-
"domain_checker",
|
|
26
|
-
"e2b",
|
|
27
|
-
"elevenlabs",
|
|
28
|
-
"exa",
|
|
29
|
-
"falai",
|
|
30
|
-
"figma",
|
|
31
|
-
"file_system",
|
|
32
|
-
"firecrawl",
|
|
33
|
-
"fireflies",
|
|
34
|
-
"fpl",
|
|
35
|
-
"ghost_content",
|
|
36
|
-
"github",
|
|
37
|
-
"gong",
|
|
38
|
-
"google_calendar",
|
|
39
|
-
"google_docs",
|
|
40
|
-
"google_drive",
|
|
41
|
-
"google_gemini",
|
|
42
|
-
"google_mail",
|
|
43
|
-
"google_searchconsole",
|
|
44
|
-
"google_sheet",
|
|
45
|
-
"hashnode",
|
|
46
|
-
"heygen",
|
|
47
|
-
"http_tools",
|
|
48
|
-
"hubspot",
|
|
49
|
-
"jira",
|
|
50
|
-
"klaviyo",
|
|
51
|
-
"linkedin",
|
|
52
|
-
"mailchimp",
|
|
53
|
-
"markitdown",
|
|
54
|
-
"miro",
|
|
55
|
-
"ms_teams",
|
|
56
|
-
"neon",
|
|
57
|
-
"notion",
|
|
58
|
-
"openai",
|
|
59
|
-
"outlook",
|
|
60
|
-
"perplexity",
|
|
61
|
-
"pipedrive",
|
|
62
|
-
"posthog",
|
|
63
|
-
"reddit",
|
|
64
|
-
"replicate",
|
|
65
|
-
"resend",
|
|
66
|
-
"retell",
|
|
67
|
-
"rocketlane",
|
|
68
|
-
"semanticscholar",
|
|
69
|
-
"semrush",
|
|
70
|
-
"sendgrid",
|
|
71
|
-
"sentry",
|
|
72
|
-
"serpapi",
|
|
73
|
-
"sharepoint",
|
|
74
|
-
"shopify",
|
|
75
|
-
"shortcut",
|
|
76
|
-
"slack",
|
|
77
|
-
"spotify",
|
|
78
|
-
"supabase",
|
|
79
|
-
"tavily",
|
|
80
|
-
"trello",
|
|
81
|
-
"twilio",
|
|
82
|
-
"twitter",
|
|
83
|
-
"unipile",
|
|
84
|
-
"whatsapp",
|
|
85
|
-
"whatsapp_business",
|
|
86
|
-
"wrike",
|
|
87
|
-
"youtube",
|
|
88
|
-
"zenquotes",
|
|
89
|
-
]
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
@pytest.mark.parametrize("app_name", ALL_APPS)
|
|
93
|
-
def test_application(app_name):
|
|
94
|
-
app_class = app_from_slug(app_name)
|
|
95
|
-
app_instance = app_class(integration=None)
|
|
96
|
-
check_application_instance(app_instance, app_name)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|