universal-mcp-applications 0.1.1__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.1/.gitignore +40 -0
- universal_mcp_applications-0.1.1/LICENSE +21 -0
- universal_mcp_applications-0.1.1/PKG-INFO +172 -0
- universal_mcp_applications-0.1.1/README.md +129 -0
- universal_mcp_applications-0.1.1/bump_and_release.sh +97 -0
- universal_mcp_applications-0.1.1/pyproject.toml +105 -0
- universal_mcp_applications-0.1.1/src/tests/test_applications.py +7 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/ahrefs/README.md +51 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/ahrefs/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/ahrefs/app.py +2291 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/airtable/README.md +22 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/airtable/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/airtable/app.py +479 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/apollo/README.md +44 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/apollo/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/apollo/app.py +1847 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/asana/README.md +199 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/asana/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/asana/app.py +9509 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/aws-s3/README.md +0 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/aws-s3/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/aws-s3/app.py +552 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/bill/README.md +0 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/bill/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/bill/app.py +8705 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/box/README.md +307 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/box/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/box/app.py +15987 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/braze/README.md +106 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/braze/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/braze/app.py +4754 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/cal-com-v2/README.md +150 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/cal-com-v2/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/cal-com-v2/app.py +5541 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/calendly/README.md +53 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/calendly/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/calendly/app.py +1436 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/canva/README.md +43 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/canva/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/canva/app.py +941 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/clickup/README.md +135 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/clickup/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/clickup/app.py +5009 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/coda/README.md +108 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/coda/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/coda/app.py +3671 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/confluence/README.md +198 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/confluence/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/confluence/app.py +6273 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/contentful/README.md +17 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/contentful/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/contentful/app.py +364 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/crustdata/README.md +25 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/crustdata/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/crustdata/app.py +586 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/dialpad/README.md +202 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/dialpad/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/dialpad/app.py +5949 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/digitalocean/README.md +463 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/digitalocean/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/digitalocean/app.py +20835 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/domain-checker/README.md +13 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/domain-checker/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/domain-checker/app.py +265 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/e2b/README.md +12 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/e2b/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/e2b/app.py +187 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/elevenlabs/README.md +88 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/elevenlabs/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/elevenlabs/app.py +3235 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/exa/README.md +15 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/exa/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/exa/app.py +221 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/falai/README.md +17 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/falai/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/falai/app.py +331 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/figma/README.md +49 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/figma/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/figma/app.py +1090 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/firecrawl/README.md +20 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/firecrawl/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/firecrawl/app.py +514 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/fireflies/README.md +25 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/fireflies/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/fireflies/app.py +506 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/fpl/README.md +23 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/fpl/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/fpl/app.py +1327 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/fpl/utils/api.py +142 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/fpl/utils/fixtures.py +629 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/fpl/utils/helper.py +982 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/fpl/utils/league_utils.py +546 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/fpl/utils/position_utils.py +68 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/ghost-content/README.md +25 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/ghost-content/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/ghost-content/app.py +654 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/github/README.md +1049 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/github/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/github/app.py +50600 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/gong/README.md +63 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/gong/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/gong/app.py +2297 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-ads/README.md +0 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-ads/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-ads/app.py +23 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-calendar/README.md +21 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-calendar/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-calendar/app.py +574 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-docs/README.md +25 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-docs/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-docs/app.py +760 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-drive/README.md +68 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-drive/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-drive/app.py +4936 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-gemini/README.md +25 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-gemini/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-gemini/app.py +663 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-mail/README.md +31 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-mail/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-mail/app.py +1354 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-searchconsole/README.md +21 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-searchconsole/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-searchconsole/app.py +320 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-sheet/README.md +36 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-sheet/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/google-sheet/app.py +1941 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/hashnode/README.md +20 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/hashnode/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/hashnode/app.py +455 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/heygen/README.md +44 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/heygen/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/heygen/app.py +961 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/http-tools/README.md +16 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/http-tools/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/http-tools/app.py +153 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/hubspot/README.md +239 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/hubspot/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/hubspot/app.py +416 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/jira/README.md +600 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/jira/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/jira/app.py +28804 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/klaviyo/README.md +313 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/klaviyo/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/klaviyo/app.py +11236 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/linkedin/README.md +15 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/linkedin/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/linkedin/app.py +243 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/mailchimp/README.md +281 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/mailchimp/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/mailchimp/app.py +10937 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/markitdown/README.md +12 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/markitdown/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/markitdown/app.py +63 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/miro/README.md +151 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/miro/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/miro/app.py +5429 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/ms-teams/README.md +42 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/ms-teams/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/ms-teams/app.py +1823 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/neon/README.md +74 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/neon/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/neon/app.py +2018 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/notion/README.md +30 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/notion/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/notion/app.py +527 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/openai/README.md +22 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/openai/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/openai/app.py +759 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/outlook/README.md +20 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/outlook/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/outlook/app.py +444 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/perplexity/README.md +12 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/perplexity/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/perplexity/app.py +65 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/pipedrive/README.md +284 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/pipedrive/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/pipedrive/app.py +12924 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/posthog/README.md +132 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/posthog/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/posthog/app.py +7125 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/reddit/README.md +135 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/reddit/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/reddit/app.py +4652 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/replicate/README.md +18 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/replicate/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/replicate/app.py +495 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/resend/README.md +40 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/resend/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/resend/app.py +881 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/retell/README.md +21 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/retell/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/retell/app.py +333 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/rocketlane/README.md +70 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/rocketlane/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/rocketlane/app.py +4346 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/semanticscholar/README.md +25 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/semanticscholar/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/semanticscholar/app.py +482 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/semrush/README.md +44 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/semrush/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/semrush/app.py +2081 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/sendgrid/README.md +362 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/sendgrid/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/sendgrid/app.py +9752 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/sentry/README.md +186 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/sentry/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/sentry/app.py +7471 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/serpapi/README.md +14 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/serpapi/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/serpapi/app.py +293 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/sharepoint/README.md +0 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/sharepoint/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/sharepoint/app.py +215 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/shopify/README.md +321 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/shopify/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/shopify/app.py +15392 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/shortcut/README.md +128 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/shortcut/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/shortcut/app.py +4478 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/slack/README.md +0 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/slack/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/slack/app.py +570 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/spotify/README.md +91 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/spotify/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/spotify/app.py +2526 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/supabase/README.md +87 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/supabase/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/supabase/app.py +2970 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/tavily/README.md +12 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/tavily/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/tavily/app.py +51 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/trello/README.md +266 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/trello/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/trello/app.py +10875 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twillo/README.md +0 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twillo/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twillo/app.py +269 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/README.md +100 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/__init__.py +0 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/api_segment_base.py +51 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/compliance_api.py +122 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +255 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/dm_events_api.py +140 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/likes_api.py +159 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/lists_api.py +395 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/openapi_json_api.py +34 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/spaces_api.py +309 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/trends_api.py +40 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/tweets_api.py +1403 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/usage_api.py +40 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/api_segments/users_api.py +1498 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/twitter/app.py +46 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/unipile/README.md +28 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/unipile/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/unipile/app.py +829 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/whatsapp/README.md +23 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/whatsapp/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/whatsapp/app.py +595 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/whatsapp-business/README.md +34 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/whatsapp-business/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/whatsapp-business/app.py +1065 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/wrike/README.md +46 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/wrike/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/wrike/app.py +1583 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/youtube/README.md +57 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/youtube/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/youtube/app.py +1696 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/zenquotes/README.md +12 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/zenquotes/__init__.py +1 -0
- universal_mcp_applications-0.1.1/src/universal_mcp/applications/zenquotes/app.py +31 -0
- universal_mcp_applications-0.1.1/uv.lock +4801 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Jinja template: universal_mcp_applications/.gitignore
|
|
2
|
+
# Python-generated files
|
|
3
|
+
__pycache__/
|
|
4
|
+
*.py[oc]
|
|
5
|
+
build/
|
|
6
|
+
dist/
|
|
7
|
+
wheels/
|
|
8
|
+
*.egg-info
|
|
9
|
+
|
|
10
|
+
# Virtual environments
|
|
11
|
+
.venv
|
|
12
|
+
|
|
13
|
+
# Environment variables
|
|
14
|
+
.env
|
|
15
|
+
.env.local
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
dump/
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
# SQLite database
|
|
22
|
+
*.db
|
|
23
|
+
*.sqlite
|
|
24
|
+
*.sqlite3
|
|
25
|
+
*.db-shm
|
|
26
|
+
*.db-wal
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# Pyright
|
|
30
|
+
.pyright
|
|
31
|
+
|
|
32
|
+
# Ruff
|
|
33
|
+
.ruff_cache
|
|
34
|
+
|
|
35
|
+
# Pytest
|
|
36
|
+
.pytest_cache
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
# Local config
|
|
40
|
+
local_config.json
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Agentr
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: universal-mcp-applications
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: A Universal MCP Application: universal_mcp_applications
|
|
5
|
+
Project-URL: Homepage, https://github.com/universal-mcp/applications
|
|
6
|
+
Project-URL: Repository, https://github.com/universal-mcp/applications
|
|
7
|
+
Author-email: Manoj Bajaj <manoj@agentr.dev>
|
|
8
|
+
License: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Requires-Python: >=3.11
|
|
15
|
+
Requires-Dist: boto3>=1.38.32
|
|
16
|
+
Requires-Dist: dnspython>=2.4.0
|
|
17
|
+
Requires-Dist: e2b-code-interpreter>=1.2.1
|
|
18
|
+
Requires-Dist: fal-client>=0.5.9
|
|
19
|
+
Requires-Dist: firecrawl-py>=3.0.3
|
|
20
|
+
Requires-Dist: google-search-results>=2.4.2
|
|
21
|
+
Requires-Dist: gql[all]>=3.5.2
|
|
22
|
+
Requires-Dist: httpx-aiohttp>=0.1.8
|
|
23
|
+
Requires-Dist: markitdown[all]>=0.1.1
|
|
24
|
+
Requires-Dist: office365-rest-python-client>=2.6.2
|
|
25
|
+
Requires-Dist: openai>=1.75.0
|
|
26
|
+
Requires-Dist: pyairtable>=3.1.1
|
|
27
|
+
Requires-Dist: pytest-asyncio>=1.1.0
|
|
28
|
+
Requires-Dist: pytest>=8.3.5
|
|
29
|
+
Requires-Dist: pytest>=8.4.1
|
|
30
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
31
|
+
Requires-Dist: replicate>=1.0.6
|
|
32
|
+
Requires-Dist: requests>=2.31.0
|
|
33
|
+
Requires-Dist: resend>=2.10.0
|
|
34
|
+
Requires-Dist: twilio>=9.8.0
|
|
35
|
+
Requires-Dist: universal-mcp
|
|
36
|
+
Provides-Extra: dev
|
|
37
|
+
Requires-Dist: pre-commit; extra == 'dev'
|
|
38
|
+
Requires-Dist: ruff; extra == 'dev'
|
|
39
|
+
Provides-Extra: test
|
|
40
|
+
Requires-Dist: pytest-cov; extra == 'test'
|
|
41
|
+
Requires-Dist: pytest<9.0.0,>=7.0.0; extra == 'test'
|
|
42
|
+
Description-Content-Type: text/markdown
|
|
43
|
+
|
|
44
|
+
# Universal MCP Applications
|
|
45
|
+
|
|
46
|
+
**A collection of 80+ installable application wrappers for the Universal MCP framework.**
|
|
47
|
+
|
|
48
|
+
This package provides a unified collection of all individual Universal MCP applications. It allows you to install every available tool at once and use them either as Python libraries in your own code.
|
|
49
|
+
|
|
50
|
+
## Installation
|
|
51
|
+
|
|
52
|
+
It is recommended to use `uv` for faster installation.
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Recommended using uv
|
|
56
|
+
uv pip install universal-mcp-applications
|
|
57
|
+
|
|
58
|
+
# Or using standard pip
|
|
59
|
+
pip install universal-mcp-applications
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Usage
|
|
63
|
+
|
|
64
|
+
The primary way to use the tools in this package is give below :-
|
|
65
|
+
|
|
66
|
+
### 1. As a Library
|
|
67
|
+
|
|
68
|
+
Each application can be imported and used directly in your Python projects. This is useful for integrating with other scripts or building more complex workflows.
|
|
69
|
+
|
|
70
|
+
**Example:**
|
|
71
|
+
|
|
72
|
+
```python
|
|
73
|
+
from universal_mcp_applications.falai import FalaiApp
|
|
74
|
+
from universal_mcp.utils import process_output
|
|
75
|
+
|
|
76
|
+
# Instantiate the application
|
|
77
|
+
# You may need to provide credentials via an integration
|
|
78
|
+
app = FalaiApp()
|
|
79
|
+
|
|
80
|
+
# Call a method
|
|
81
|
+
result = app.some_method(param1="value1")
|
|
82
|
+
|
|
83
|
+
# Process and print the output
|
|
84
|
+
process_output(result)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Included Applications
|
|
88
|
+
|
|
89
|
+
This package includes the following 82 applications:
|
|
90
|
+
|
|
91
|
+
- `ahrefs`
|
|
92
|
+
- `airtable`
|
|
93
|
+
- `apollo`
|
|
94
|
+
- `asana`
|
|
95
|
+
- `aws-s3`
|
|
96
|
+
- `bill`
|
|
97
|
+
- `box`
|
|
98
|
+
- `braze`
|
|
99
|
+
- `cal-com-v2`
|
|
100
|
+
- `calendly`
|
|
101
|
+
- `canva`
|
|
102
|
+
- `clickup`
|
|
103
|
+
- `coda`
|
|
104
|
+
- `confluence`
|
|
105
|
+
- `contentful`
|
|
106
|
+
- `crustdata`
|
|
107
|
+
- `dialpad`
|
|
108
|
+
- `digitalocean`
|
|
109
|
+
- `domain-checker`
|
|
110
|
+
- `e2b`
|
|
111
|
+
- `elevenlabs`
|
|
112
|
+
- `exa`
|
|
113
|
+
- `falai`
|
|
114
|
+
- `figma`
|
|
115
|
+
- `firecrawl`
|
|
116
|
+
- `fireflies`
|
|
117
|
+
- `fpl`
|
|
118
|
+
- `ghost-content`
|
|
119
|
+
- `github`
|
|
120
|
+
- `gong`
|
|
121
|
+
- `google-ads`
|
|
122
|
+
- `google-calendar`
|
|
123
|
+
- `google-docs`
|
|
124
|
+
- `google-drive`
|
|
125
|
+
- `google-gemini`
|
|
126
|
+
- `google-mail`
|
|
127
|
+
- `google-searchconsole`
|
|
128
|
+
- `google-sheet`
|
|
129
|
+
- `hashnode`
|
|
130
|
+
- `heygen`
|
|
131
|
+
- `http-tools`
|
|
132
|
+
- `hubspot`
|
|
133
|
+
- `jira`
|
|
134
|
+
- `klaviyo`
|
|
135
|
+
- `linkedin`
|
|
136
|
+
- `mailchimp`
|
|
137
|
+
- `markitdown`
|
|
138
|
+
- `miro`
|
|
139
|
+
- `ms-teams`
|
|
140
|
+
- `neon`
|
|
141
|
+
- `notion`
|
|
142
|
+
- `openai`
|
|
143
|
+
- `outlook`
|
|
144
|
+
- `perplexity`
|
|
145
|
+
- `pipedrive`
|
|
146
|
+
- `posthog`
|
|
147
|
+
- `reddit`
|
|
148
|
+
- `replicate`
|
|
149
|
+
- `resend`
|
|
150
|
+
- `retell`
|
|
151
|
+
- `rocketlane`
|
|
152
|
+
- `semanticscholar`
|
|
153
|
+
- `semrush`
|
|
154
|
+
- `sendgrid`
|
|
155
|
+
- `sentry`
|
|
156
|
+
- `serpapi`
|
|
157
|
+
- `sharepoint`
|
|
158
|
+
- `shopify`
|
|
159
|
+
- `shortcut`
|
|
160
|
+
- `slack`
|
|
161
|
+
- `spotify`
|
|
162
|
+
- `supabase`
|
|
163
|
+
- `tavily`
|
|
164
|
+
- `trello`
|
|
165
|
+
- `twillo`
|
|
166
|
+
- `twitter`
|
|
167
|
+
- `unipile`
|
|
168
|
+
- `whatsapp`
|
|
169
|
+
- `whatsapp-business`
|
|
170
|
+
- `wrike`
|
|
171
|
+
- `youtube`
|
|
172
|
+
- `zenquotes`
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Universal MCP Applications
|
|
2
|
+
|
|
3
|
+
**A collection of 80+ installable application wrappers for the Universal MCP framework.**
|
|
4
|
+
|
|
5
|
+
This package provides a unified collection of all individual Universal MCP applications. It allows you to install every available tool at once and use them either as Python libraries in your own code.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
It is recommended to use `uv` for faster installation.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Recommended using uv
|
|
13
|
+
uv pip install universal-mcp-applications
|
|
14
|
+
|
|
15
|
+
# Or using standard pip
|
|
16
|
+
pip install universal-mcp-applications
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
The primary way to use the tools in this package is give below :-
|
|
22
|
+
|
|
23
|
+
### 1. As a Library
|
|
24
|
+
|
|
25
|
+
Each application can be imported and used directly in your Python projects. This is useful for integrating with other scripts or building more complex workflows.
|
|
26
|
+
|
|
27
|
+
**Example:**
|
|
28
|
+
|
|
29
|
+
```python
|
|
30
|
+
from universal_mcp_applications.falai import FalaiApp
|
|
31
|
+
from universal_mcp.utils import process_output
|
|
32
|
+
|
|
33
|
+
# Instantiate the application
|
|
34
|
+
# You may need to provide credentials via an integration
|
|
35
|
+
app = FalaiApp()
|
|
36
|
+
|
|
37
|
+
# Call a method
|
|
38
|
+
result = app.some_method(param1="value1")
|
|
39
|
+
|
|
40
|
+
# Process and print the output
|
|
41
|
+
process_output(result)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Included Applications
|
|
45
|
+
|
|
46
|
+
This package includes the following 82 applications:
|
|
47
|
+
|
|
48
|
+
- `ahrefs`
|
|
49
|
+
- `airtable`
|
|
50
|
+
- `apollo`
|
|
51
|
+
- `asana`
|
|
52
|
+
- `aws-s3`
|
|
53
|
+
- `bill`
|
|
54
|
+
- `box`
|
|
55
|
+
- `braze`
|
|
56
|
+
- `cal-com-v2`
|
|
57
|
+
- `calendly`
|
|
58
|
+
- `canva`
|
|
59
|
+
- `clickup`
|
|
60
|
+
- `coda`
|
|
61
|
+
- `confluence`
|
|
62
|
+
- `contentful`
|
|
63
|
+
- `crustdata`
|
|
64
|
+
- `dialpad`
|
|
65
|
+
- `digitalocean`
|
|
66
|
+
- `domain-checker`
|
|
67
|
+
- `e2b`
|
|
68
|
+
- `elevenlabs`
|
|
69
|
+
- `exa`
|
|
70
|
+
- `falai`
|
|
71
|
+
- `figma`
|
|
72
|
+
- `firecrawl`
|
|
73
|
+
- `fireflies`
|
|
74
|
+
- `fpl`
|
|
75
|
+
- `ghost-content`
|
|
76
|
+
- `github`
|
|
77
|
+
- `gong`
|
|
78
|
+
- `google-ads`
|
|
79
|
+
- `google-calendar`
|
|
80
|
+
- `google-docs`
|
|
81
|
+
- `google-drive`
|
|
82
|
+
- `google-gemini`
|
|
83
|
+
- `google-mail`
|
|
84
|
+
- `google-searchconsole`
|
|
85
|
+
- `google-sheet`
|
|
86
|
+
- `hashnode`
|
|
87
|
+
- `heygen`
|
|
88
|
+
- `http-tools`
|
|
89
|
+
- `hubspot`
|
|
90
|
+
- `jira`
|
|
91
|
+
- `klaviyo`
|
|
92
|
+
- `linkedin`
|
|
93
|
+
- `mailchimp`
|
|
94
|
+
- `markitdown`
|
|
95
|
+
- `miro`
|
|
96
|
+
- `ms-teams`
|
|
97
|
+
- `neon`
|
|
98
|
+
- `notion`
|
|
99
|
+
- `openai`
|
|
100
|
+
- `outlook`
|
|
101
|
+
- `perplexity`
|
|
102
|
+
- `pipedrive`
|
|
103
|
+
- `posthog`
|
|
104
|
+
- `reddit`
|
|
105
|
+
- `replicate`
|
|
106
|
+
- `resend`
|
|
107
|
+
- `retell`
|
|
108
|
+
- `rocketlane`
|
|
109
|
+
- `semanticscholar`
|
|
110
|
+
- `semrush`
|
|
111
|
+
- `sendgrid`
|
|
112
|
+
- `sentry`
|
|
113
|
+
- `serpapi`
|
|
114
|
+
- `sharepoint`
|
|
115
|
+
- `shopify`
|
|
116
|
+
- `shortcut`
|
|
117
|
+
- `slack`
|
|
118
|
+
- `spotify`
|
|
119
|
+
- `supabase`
|
|
120
|
+
- `tavily`
|
|
121
|
+
- `trello`
|
|
122
|
+
- `twillo`
|
|
123
|
+
- `twitter`
|
|
124
|
+
- `unipile`
|
|
125
|
+
- `whatsapp`
|
|
126
|
+
- `whatsapp-business`
|
|
127
|
+
- `wrike`
|
|
128
|
+
- `youtube`
|
|
129
|
+
- `zenquotes`
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
set -x
|
|
5
|
+
|
|
6
|
+
# Ensure dependencies are installed
|
|
7
|
+
echo "Syncing dependencies..."
|
|
8
|
+
uv sync
|
|
9
|
+
|
|
10
|
+
# Run tests with pytest
|
|
11
|
+
echo "Running tests with pytest..."
|
|
12
|
+
uv run pytest
|
|
13
|
+
|
|
14
|
+
echo "Tests passed!"
|
|
15
|
+
|
|
16
|
+
# Get the current branch name
|
|
17
|
+
BRANCH=$(git branch --show-current)
|
|
18
|
+
|
|
19
|
+
# Read the current version from pyproject.toml
|
|
20
|
+
CURRENT_VERSION=$(grep -E '^version = "[0-9]+\.[0-9]+\.[0-9]+.*"' pyproject.toml | cut -d'"' -f2)
|
|
21
|
+
|
|
22
|
+
# Split version into major, minor, patch
|
|
23
|
+
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
|
|
24
|
+
|
|
25
|
+
# Remove any rc suffix from PATCH if it exists
|
|
26
|
+
PATCH_NUM=$(echo $PATCH | sed 's/-rc[0-9]*//')
|
|
27
|
+
|
|
28
|
+
if [ "$BRANCH" = "master" ]; then
|
|
29
|
+
# On main branch - bump patch version
|
|
30
|
+
if [[ $PATCH == *"-rc"* ]]; then
|
|
31
|
+
NEW_VERSION="$MAJOR.$MINOR.$PATCH_NUM"
|
|
32
|
+
else
|
|
33
|
+
# Increase patch number by 1
|
|
34
|
+
PATCH_NUM=$((PATCH_NUM + 1))
|
|
35
|
+
NEW_VERSION="$MAJOR.$MINOR.$PATCH_NUM"
|
|
36
|
+
fi
|
|
37
|
+
else
|
|
38
|
+
# On dev branch - bump rc version
|
|
39
|
+
if [[ $PATCH == *"-rc"* ]]; then
|
|
40
|
+
# If already has rc, increment rc number
|
|
41
|
+
RC_NUM=$(echo $PATCH | grep -o 'rc[0-9]*' | sed 's/rc//')
|
|
42
|
+
NEW_VERSION="$MAJOR.$MINOR.$PATCH_NUM-rc$((RC_NUM + 1))"
|
|
43
|
+
else
|
|
44
|
+
echo "No rc suffix found, adding rc1"
|
|
45
|
+
# Increase patch number by 1
|
|
46
|
+
PATCH_NUM=$((PATCH_NUM + 1))
|
|
47
|
+
# Add rc1
|
|
48
|
+
NEW_VERSION="$MAJOR.$MINOR.$PATCH_NUM-rc1"
|
|
49
|
+
fi
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# Update version in pyproject.toml
|
|
53
|
+
sed -i '' "s/^version = ".*"/version = \"$NEW_VERSION\"/" pyproject.toml
|
|
54
|
+
|
|
55
|
+
echo "Version bumped from $CURRENT_VERSION to $NEW_VERSION"
|
|
56
|
+
|
|
57
|
+
# Stage the changed file
|
|
58
|
+
git add pyproject.toml
|
|
59
|
+
|
|
60
|
+
# Commit the change
|
|
61
|
+
git commit -m "bump: version $CURRENT_VERSION → $NEW_VERSION"
|
|
62
|
+
|
|
63
|
+
# Create and push tag if on main
|
|
64
|
+
if [ "$BRANCH" = "main" ] || [ "$BRANCH" = "develop" ] || [ "$BRANCH" = "master" ] || [ "$BRANCH" = "dev" ]; then
|
|
65
|
+
git tag -a "v$NEW_VERSION" -m "Release version $NEW_VERSION"
|
|
66
|
+
# Push both the branch and tag in one command
|
|
67
|
+
git push origin $BRANCH "v$NEW_VERSION"
|
|
68
|
+
else
|
|
69
|
+
# Push only the branch if not on main/develop
|
|
70
|
+
git push origin $BRANCH
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
# Either release is passed as arg or not
|
|
75
|
+
if [ "$1" = "release" ]; then
|
|
76
|
+
# Execute release steps
|
|
77
|
+
echo "Releasing version $NEW_VERSION..."
|
|
78
|
+
rm -rf dist
|
|
79
|
+
rm -rf build
|
|
80
|
+
rm -rf *.egg-info
|
|
81
|
+
rm -rf .pytest_cache
|
|
82
|
+
rm -rf .ruff_cache
|
|
83
|
+
rm -rf .mypy_cache
|
|
84
|
+
rm -rf .venv
|
|
85
|
+
rm -rf .cache
|
|
86
|
+
rm -rf .DS_Store
|
|
87
|
+
rm -rf .idea
|
|
88
|
+
rm -rf .vscode
|
|
89
|
+
|
|
90
|
+
uv sync && uv build && uv publish
|
|
91
|
+
echo "Release complete!"
|
|
92
|
+
else
|
|
93
|
+
echo "Skipping release steps"
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = [
|
|
3
|
+
"hatchling",
|
|
4
|
+
]
|
|
5
|
+
build-backend = "hatchling.build"
|
|
6
|
+
|
|
7
|
+
[project]
|
|
8
|
+
name = "universal-mcp-applications"
|
|
9
|
+
version = "0.1.1"
|
|
10
|
+
description = "A Universal MCP Application: universal_mcp_applications"
|
|
11
|
+
readme = "README.md"
|
|
12
|
+
requires-python = ">=3.11"
|
|
13
|
+
authors = [
|
|
14
|
+
{ name = "Manoj Bajaj", email = "manoj@agentr.dev" },
|
|
15
|
+
]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3.11",
|
|
19
|
+
"License :: OSI Approved :: MIT License",
|
|
20
|
+
"Operating System :: OS Independent",
|
|
21
|
+
]
|
|
22
|
+
dependencies = [
|
|
23
|
+
"boto3>=1.38.32",
|
|
24
|
+
"dnspython>=2.4.0",
|
|
25
|
+
"e2b-code-interpreter>=1.2.1",
|
|
26
|
+
"fal-client>=0.5.9",
|
|
27
|
+
"firecrawl-py>=3.0.3",
|
|
28
|
+
"google-search-results>=2.4.2",
|
|
29
|
+
"gql[all]>=3.5.2",
|
|
30
|
+
"httpx-aiohttp>=0.1.8",
|
|
31
|
+
"markitdown[all]>=0.1.1",
|
|
32
|
+
"office365-rest-python-client>=2.6.2",
|
|
33
|
+
"openai>=1.75.0",
|
|
34
|
+
"pyairtable>=3.1.1",
|
|
35
|
+
"pytest-asyncio>=1.1.0",
|
|
36
|
+
"pytest>=8.3.5",
|
|
37
|
+
"pytest>=8.4.1",
|
|
38
|
+
"python-dotenv>=1.0.0",
|
|
39
|
+
"replicate>=1.0.6",
|
|
40
|
+
"requests>=2.31.0",
|
|
41
|
+
"resend>=2.10.0",
|
|
42
|
+
"twilio>=9.8.0",
|
|
43
|
+
"universal-mcp",
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
[project.license]
|
|
47
|
+
text = "MIT"
|
|
48
|
+
|
|
49
|
+
[project.optional-dependencies]
|
|
50
|
+
test = [
|
|
51
|
+
"pytest>=7.0.0,<9.0.0",
|
|
52
|
+
"pytest-cov",
|
|
53
|
+
]
|
|
54
|
+
dev = [
|
|
55
|
+
"ruff",
|
|
56
|
+
"pre-commit",
|
|
57
|
+
]
|
|
58
|
+
|
|
59
|
+
[project.urls]
|
|
60
|
+
Homepage = "https://github.com/universal-mcp/applications"
|
|
61
|
+
Repository = "https://github.com/universal-mcp/applications"
|
|
62
|
+
|
|
63
|
+
[tool.hatch.envs.default]
|
|
64
|
+
dependencies = [
|
|
65
|
+
"pytest",
|
|
66
|
+
"pytest-cov",
|
|
67
|
+
]
|
|
68
|
+
|
|
69
|
+
[tool.hatch.envs.default.scripts]
|
|
70
|
+
test = "pytest {args:tests}"
|
|
71
|
+
test-cov = "pytest --cov-report term-missing --cov-config=pyproject.toml --cov=src/universal_mcp --cov=tests {args:tests}"
|
|
72
|
+
lint = "ruff check . && ruff format --check ."
|
|
73
|
+
format = "ruff format ."
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
[tool.hatch.build.targets.wheel]
|
|
77
|
+
packages = [
|
|
78
|
+
"src/universal_mcp",
|
|
79
|
+
]
|
|
80
|
+
|
|
81
|
+
[tool.coverage.run]
|
|
82
|
+
source = [
|
|
83
|
+
"src",
|
|
84
|
+
]
|
|
85
|
+
branch = true
|
|
86
|
+
|
|
87
|
+
[tool.coverage.report]
|
|
88
|
+
show_missing = true
|
|
89
|
+
fail_under = 70
|
|
90
|
+
|
|
91
|
+
[tool.ruff]
|
|
92
|
+
line-length = 88
|
|
93
|
+
select = [
|
|
94
|
+
"E", "W", "F", "I", "UP", "PL", "T20",
|
|
95
|
+
]
|
|
96
|
+
ignore = []
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
[tool.ruff.format]
|
|
100
|
+
quote-style = "double"
|
|
101
|
+
|
|
102
|
+
[tool.pytest.ini_options]
|
|
103
|
+
pythonpath = [
|
|
104
|
+
"src",
|
|
105
|
+
]
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Ahrefs MCP Server
|
|
2
|
+
|
|
3
|
+
An MCP Server for the Ahrefs API.
|
|
4
|
+
|
|
5
|
+
## 🛠️ Tool List
|
|
6
|
+
|
|
7
|
+
This is automatically generated from OpenAPI schema for the Ahrefs API.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
| Tool | Description |
|
|
11
|
+
|------|-------------|
|
|
12
|
+
| `crawler_ips` | Retrieve the list of public crawler IP addresses from the API. |
|
|
13
|
+
| `crawler_ip_ranges` | Fetches the current public crawler IP ranges from the API, optionally specifying output format. |
|
|
14
|
+
| `limits_and_usage` | Retrieves current API subscription limits and usage statistics from the service. |
|
|
15
|
+
| `batch_analysis` | Submits a batch analysis request with specified parameters and returns the analysis results as a dictionary. |
|
|
16
|
+
| `serp_overview` | Retrieves a SERP (Search Engine Results Page) overview report based on specified selection, country, and keyword criteria. |
|
|
17
|
+
| `overview` | Retrieves rank tracking overview data for a specified project, date, and device. |
|
|
18
|
+
| `competitors_overview` | Retrieves an overview of competitor rankings for a specified project and criteria. |
|
|
19
|
+
| `projects` | Retrieves a list of site audit projects from the configured base URL, optionally specifying an output format. |
|
|
20
|
+
| `domain_rating` | Fetches the domain rating and related metrics for a specified target and date. |
|
|
21
|
+
| `backlinks_stats` | Retrieves backlink statistics for a specified target and date, with optional filters for protocol, mode, and output format. |
|
|
22
|
+
| `outlinks_stats` | Retrieves outbound link statistics for the specified target from the site explorer API. |
|
|
23
|
+
| `metrics` | Retrieves metrics data from the site explorer API endpoint. |
|
|
24
|
+
| `refdomains_history` | Retrieves the historical data of reference domains from a specified site. |
|
|
25
|
+
| `domain_rating_history` | Retrieves historical domain rating data for a specified target within a given date range. |
|
|
26
|
+
| `url_rating_history` | Retrieves URL rating history data for a specified target within a date range. |
|
|
27
|
+
| `pages_history` | Retrieves historical page data for a target using specified filters. |
|
|
28
|
+
| `metrics_history` | Retrieves historical metrics based on specified parameters. |
|
|
29
|
+
| `keywords_history` | Fetches the historical keyword rankings and performance data for a specified target within an optional date range and set of filters. |
|
|
30
|
+
| `metrics_by_country` | Fetches site metrics grouped by country for a specified target and date. |
|
|
31
|
+
| `pages_by_traffic` | Retrieves a list of top pages for a specified target domain or URL, ranked by estimated organic search traffic. |
|
|
32
|
+
| `all_backlinks` | Retrieves all backlinks information for a specified target using various query parameters. |
|
|
33
|
+
| `broken_backlinks` | Fetches broken backlink data for the specified target from the site explorer API endpoint. |
|
|
34
|
+
| `refdomains` | Retrieves referring domains data for a specified target using the Site Explorer API endpoint. |
|
|
35
|
+
| `anchors` | Fetches anchor text distribution data for a specified target using given query parameters. |
|
|
36
|
+
| `linkeddomains` | Retrieves linked domains for a specified target using the site explorer API endpoint. |
|
|
37
|
+
| `linked_anchors_external` | Fetch linked external anchor data for a specified target using provided selection and filtering criteria. |
|
|
38
|
+
| `linked_anchors_internal` | Fetches internal linked anchor data for a specified target from the site explorer API, applying optional filtering and query parameters. |
|
|
39
|
+
| `organic_keywords` | Retrieve organic keyword data for a specified target and date from the Site Explorer API endpoint. |
|
|
40
|
+
| `organic_competitors` | Retrieves organic competitors data for a specified target using the Site Explorer API. |
|
|
41
|
+
| `top_pages` | Retrieves top pages data for a specified target and date from the site explorer API with customizable query parameters. |
|
|
42
|
+
| `paid_pages` | Fetches paid pages data from the Site Explorer API based on specified filters. |
|
|
43
|
+
| `best_by_external_links` | Fetches data about the best-performing pages of a target site based on external links, with various filtering and output options. |
|
|
44
|
+
| `best_by_internal_links` | Retrieves the best-performing internal links for a specified target using the site explorer API endpoint. |
|
|
45
|
+
| `total_search_volume_history` | Fetches the total historical search volume data for a specified target within a given date range and optional filters. |
|
|
46
|
+
| `keyword_explorer_overview` | Retrieves an overview of keyword metrics and data from the keywords explorer API endpoint based on the specified filters and parameters. |
|
|
47
|
+
| `volume_history` | Fetches the historical search volume for a given keyword in a specified country. |
|
|
48
|
+
| `volume_by_country` | Retrieves search volume by country for a given keyword. |
|
|
49
|
+
| `matching_terms` | Retrieves matching keyword terms from the keywords explorer API based on specified filters and search parameters. |
|
|
50
|
+
| `related_terms` | Retrieves related keyword terms for a given selection and country, with optional filtering and pagination. |
|
|
51
|
+
| `search_suggestions` | Fetches keyword search suggestions from the keywords explorer API based on the provided filtering and query parameters. |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .app import AhrefsApp
|