universal-mcp-applications 0.1.17__tar.gz → 0.1.18__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.18/.gitignore +60 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/PKG-INFO +1 -1
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/pyproject.toml +1 -1
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/scripts/docgen.py +10 -10
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/scripts/prompts.py +2 -4
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/scripts/run_docgen.py +1 -27
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/falai/app.py +6 -6
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/firecrawl/app.py +10 -10
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/github/app.py +9 -9
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_calendar/app.py +10 -10
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_docs/app.py +12 -12
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_drive/app.py +38 -38
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_gemini/app.py +13 -12
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_mail/app.py +19 -19
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_searchconsole/app.py +8 -8
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_sheet/app.py +19 -19
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/linkedin/app.py +4 -4
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ms_teams/app.py +28 -28
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/outlook/app.py +9 -9
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/reddit/app.py +90 -89
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/scraper/app.py +31 -31
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sharepoint/app.py +7 -7
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/unipile/app.py +14 -14
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/uv.lock +202 -200
- universal_mcp_applications-0.1.17/.gitignore +0 -40
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/GEMINI.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/LICENSE +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/bump_and_release.sh +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/examples/children_story_builder.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/tests/test_applications.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ahrefs/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ahrefs/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ahrefs/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/airtable/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/airtable/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/airtable/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/apollo/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/apollo/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/apollo/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/asana/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/asana/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/asana/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/aws_s3/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/aws_s3/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/aws_s3/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/bill/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/bill/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/bill/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/box/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/box/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/box/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/braze/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/braze/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/braze/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/cal_com_v2/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/cal_com_v2/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/cal_com_v2/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/calendly/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/calendly/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/calendly/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/canva/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/canva/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/canva/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/clickup/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/clickup/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/clickup/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/coda/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/coda/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/coda/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/confluence/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/confluence/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/confluence/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/contentful/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/contentful/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/contentful/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/crustdata/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/crustdata/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/crustdata/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/dialpad/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/dialpad/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/dialpad/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/digitalocean/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/digitalocean/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/digitalocean/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/domain_checker/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/domain_checker/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/domain_checker/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/e2b/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/e2b/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/e2b/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/elevenlabs/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/elevenlabs/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/elevenlabs/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/exa/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/exa/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/exa/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/falai/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/falai/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/figma/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/figma/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/figma/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/file_system/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/file_system/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/firecrawl/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/firecrawl/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fireflies/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fireflies/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fireflies/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/utils/api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/utils/fixtures.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/utils/helper.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/utils/league_utils.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/utils/position_utils.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ghost_content/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ghost_content/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ghost_content/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/github/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/github/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/gong/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/gong/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/gong/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_calendar/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_calendar/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_docs/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_docs/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_drive/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_drive/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_gemini/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_gemini/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_mail/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_mail/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_searchconsole/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_searchconsole/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_sheet/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_sheet/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_sheet/helper.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hashnode/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hashnode/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hashnode/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/heygen/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/heygen/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/heygen/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/http_tools/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/http_tools/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/http_tools/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hubspot/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hubspot/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hubspot/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/jira/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/jira/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/jira/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/klaviyo/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/klaviyo/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/klaviyo/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/linkedin/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/linkedin/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/mailchimp/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/mailchimp/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/mailchimp/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/markitdown/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/markitdown/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/markitdown/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/miro/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/miro/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/miro/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ms_teams/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ms_teams/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/neon/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/neon/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/neon/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/notion/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/notion/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/notion/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/openai/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/openai/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/openai/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/outlook/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/outlook/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/perplexity/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/perplexity/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/perplexity/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/pipedrive/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/pipedrive/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/pipedrive/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/posthog/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/posthog/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/posthog/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/reddit/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/reddit/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/replicate/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/replicate/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/replicate/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/resend/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/resend/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/resend/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/retell/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/retell/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/retell/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/rocketlane/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/rocketlane/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/rocketlane/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/scraper/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/scraper/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semanticscholar/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semanticscholar/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semanticscholar/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semrush/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semrush/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semrush/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sendgrid/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sendgrid/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sendgrid/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sentry/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sentry/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sentry/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/serpapi/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/serpapi/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/serpapi/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sharepoint/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sharepoint/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shopify/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shopify/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shopify/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shortcut/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shortcut/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shortcut/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/slack/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/slack/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/slack/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/spotify/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/spotify/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/spotify/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/supabase/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/supabase/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/supabase/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/tavily/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/tavily/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/tavily/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/trello/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/trello/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/trello/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twilio/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twilio/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twilio/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/api_segment_base.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/compliance_api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/dm_events_api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/likes_api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/lists_api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/openapi_json_api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/spaces_api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/trends_api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/tweets_api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/usage_api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/users_api.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/unipile/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/unipile/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp/audio.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp/whatsapp.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp_business/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp_business/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp_business/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/wrike/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/wrike/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/wrike/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/youtube/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/youtube/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/youtube/app.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/zenquotes/README.md +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/zenquotes/__init__.py +0 -0
- {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/zenquotes/app.py +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Python-generated files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[oc]
|
|
4
|
+
build/
|
|
5
|
+
dist/
|
|
6
|
+
wheels/
|
|
7
|
+
*.egg-info
|
|
8
|
+
|
|
9
|
+
# Virtual environments
|
|
10
|
+
.venv
|
|
11
|
+
|
|
12
|
+
# Environment variables
|
|
13
|
+
.env
|
|
14
|
+
.env.local
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
dump/
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# SQLite database
|
|
21
|
+
*.db
|
|
22
|
+
*.sqlite
|
|
23
|
+
*.sqlite3
|
|
24
|
+
*.db-shm
|
|
25
|
+
*.db-wal
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# Pyright
|
|
29
|
+
.pyright
|
|
30
|
+
|
|
31
|
+
# Ruff
|
|
32
|
+
.ruff_cache
|
|
33
|
+
|
|
34
|
+
# Pytest
|
|
35
|
+
.pytest_cache
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# Local config
|
|
39
|
+
local_config.json
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# Test Artifacts
|
|
43
|
+
test_artifacts/
|
|
44
|
+
src/universal_mcp/applications/complex/
|
|
45
|
+
src/universal_mcp/applications/test/
|
|
46
|
+
src/universal_mcp/applications/test_with_docs/
|
|
47
|
+
src/universal_mcp/applications/test_without_docs/
|
|
48
|
+
|
|
49
|
+
# Temporary files
|
|
50
|
+
tmp/
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
# Docs
|
|
54
|
+
site/
|
|
55
|
+
.cache/
|
|
56
|
+
|
|
57
|
+
# langgraph temporary files
|
|
58
|
+
.langgraph_api/
|
|
59
|
+
langgraph.json
|
|
60
|
+
agentr-1-6c4ebd5cc914.json
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: universal-mcp-applications
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.18
|
|
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
|
{universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/scripts/docgen.py
RENAMED
|
@@ -30,7 +30,7 @@ class DescriptionOutput(BaseModel):
|
|
|
30
30
|
"""Structure for the generated description output."""
|
|
31
31
|
|
|
32
32
|
description: str = Field(description="A clear, detailed description of what the function does")
|
|
33
|
-
suggested_name: Optional[str] = Field(None, description="A better name for the function, if applicable")
|
|
33
|
+
# suggested_name: Optional[str] = Field(None, description="A better name for the function, if applicable")
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
class FunctionExtractor(ast.NodeVisitor):
|
|
@@ -244,7 +244,7 @@ def generate_description(
|
|
|
244
244
|
parsed_data = extract_json_from_text(response_text)
|
|
245
245
|
return DescriptionOutput(
|
|
246
246
|
description=parsed_data.get("description", "No description available."),
|
|
247
|
-
suggested_name=parsed_data.get("suggested_name"),
|
|
247
|
+
# suggested_name=parsed_data.get("suggested_name"),
|
|
248
248
|
)
|
|
249
249
|
except ValueError as e:
|
|
250
250
|
print(f" - JSON extraction failed: {e}")
|
|
@@ -442,7 +442,7 @@ def process_file(file_path: str, model: str = "perplexity/sonar") -> int:
|
|
|
442
442
|
# 1. Generate new description and check for suggested name
|
|
443
443
|
output = generate_description(function_code, original_content, model)
|
|
444
444
|
new_description = output.description.strip()
|
|
445
|
-
suggested_name = output.suggested_name
|
|
445
|
+
# suggested_name = output.suggested_name
|
|
446
446
|
|
|
447
447
|
if not new_description or "Error generating description" in new_description:
|
|
448
448
|
print(f" - Failed to generate description for '{function_name}', skipping.")
|
|
@@ -456,10 +456,10 @@ def process_file(file_path: str, model: str = "perplexity/sonar") -> int:
|
|
|
456
456
|
# 3. Handle function renaming if suggested
|
|
457
457
|
code_to_update = function_code
|
|
458
458
|
is_renamed = False
|
|
459
|
-
if suggested_name and suggested_name != function_name:
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
459
|
+
# if suggested_name and suggested_name != function_name:
|
|
460
|
+
# print(f" - Renaming function '{function_name}' to '{suggested_name}'")
|
|
461
|
+
# code_to_update = rename_function_in_code(code_to_update, function_name, suggested_name)
|
|
462
|
+
# is_renamed = True
|
|
463
463
|
|
|
464
464
|
# 4. Insert the new docstring back into the (potentially renamed) function code
|
|
465
465
|
updated_function_block = insert_docstring_into_function(code_to_update, reconstructed_docstring)
|
|
@@ -468,11 +468,11 @@ def process_file(file_path: str, model: str = "perplexity/sonar") -> int:
|
|
|
468
468
|
if updated_function_block != function_code:
|
|
469
469
|
updated_content = updated_content.replace(function_code, updated_function_block)
|
|
470
470
|
count += 1
|
|
471
|
-
print(f" - Updated function block for '{
|
|
471
|
+
print(f" - Updated function block for '{function_name}'.")
|
|
472
472
|
|
|
473
473
|
# 6. If the function was renamed, also update the list_tools method
|
|
474
|
-
if is_renamed:
|
|
475
|
-
|
|
474
|
+
# if is_renamed:
|
|
475
|
+
# updated_content = update_list_tools_method(updated_content, function_name, suggested_name)
|
|
476
476
|
|
|
477
477
|
if updated_content != original_content:
|
|
478
478
|
with open(file_path, "w", encoding="utf-8") as f:
|
{universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/scripts/prompts.py
RENAMED
|
@@ -6,7 +6,6 @@ You will be given the full context of a Python script, followed by a request to
|
|
|
6
6
|
|
|
7
7
|
Your tasks are:
|
|
8
8
|
1. **Write a High-Quality Description:** The description should be comprehensive, clear, and accurately reflect the function's purpose.
|
|
9
|
-
2. **Suggest a Better Name (If Necessary):** Analyze the function's original name. If you believe a different name would be more descriptive or intuitive based on what the function does, suggest a new one. If the current name is good, you can omit this suggestion.
|
|
10
9
|
3. **Differentiate Similar Functions:** Use the full script context to clarify the unique role of this function, especially if other functions have similar names or functionality.
|
|
11
10
|
|
|
12
11
|
The full script content is:
|
|
@@ -15,14 +14,13 @@ The full script content is:
|
|
|
15
14
|
--- SCRIPT END ---
|
|
16
15
|
"""
|
|
17
16
|
|
|
18
|
-
USER_PROMPT_TEMPLATE = """Based on the full script provided, analyze the following Python function. Generate a high-quality description
|
|
17
|
+
USER_PROMPT_TEMPLATE = """Based on the full script provided, analyze the following Python function. Generate a high-quality description.
|
|
19
18
|
|
|
20
19
|
Function to analyze:
|
|
21
20
|
```python
|
|
22
21
|
{function_code}
|
|
23
|
-
Respond ONLY in the following JSON format.
|
|
22
|
+
Respond ONLY in the following JSON format.
|
|
24
23
|
{{
|
|
25
24
|
"description": "A clear and detailed description of what the function does, taking into account the full script context.",
|
|
26
|
-
"suggested_name": "A more descriptive and clear name for the function (optional)"
|
|
27
25
|
}}
|
|
28
26
|
"""
|
{universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/scripts/run_docgen.py
RENAMED
|
@@ -3,41 +3,15 @@ import os
|
|
|
3
3
|
import subprocess
|
|
4
4
|
|
|
5
5
|
APPS = [
|
|
6
|
-
"
|
|
7
|
-
"calendly",
|
|
8
|
-
"canva",
|
|
9
|
-
"domain_checker",
|
|
10
|
-
"e2b",
|
|
11
|
-
"elevenlabs",
|
|
12
|
-
"exa",
|
|
13
|
-
"falai",
|
|
14
|
-
"file_system",
|
|
15
|
-
"firecrawl",
|
|
16
|
-
"fireflies",
|
|
17
|
-
"fpl",
|
|
6
|
+
"google_mail",
|
|
18
7
|
"google_calendar",
|
|
19
8
|
"google_docs",
|
|
20
9
|
"google_drive",
|
|
21
10
|
"google_searchconsole",
|
|
22
11
|
"google_sheet",
|
|
23
|
-
"http_tools",
|
|
24
12
|
"linkedin",
|
|
25
13
|
"ms_teams",
|
|
26
|
-
"openai",
|
|
27
14
|
"outlook",
|
|
28
|
-
"replicate",
|
|
29
|
-
"resend",
|
|
30
|
-
"scraper",
|
|
31
|
-
"serpapi",
|
|
32
|
-
"sharepoint",
|
|
33
|
-
"slack",
|
|
34
|
-
"tavily",
|
|
35
|
-
"twitter",
|
|
36
|
-
"unipile",
|
|
37
|
-
"whatsapp",
|
|
38
|
-
"whatsapp_business",
|
|
39
|
-
"youtube",
|
|
40
|
-
"zenquotes",
|
|
41
15
|
]
|
|
42
16
|
|
|
43
17
|
def main():
|
|
@@ -29,7 +29,7 @@ class FalaiApp(APIApplication):
|
|
|
29
29
|
@property
|
|
30
30
|
def fal_client(self) -> AsyncClient:
|
|
31
31
|
"""
|
|
32
|
-
A cached property that lazily initializes an `AsyncClient` instance
|
|
32
|
+
A cached property that lazily initializes an `AsyncClient` instance. It retrieves the API key from the configured integration, providing a single, centralized authentication point for all methods that interact with the Fal AI API. Raises `NotAuthorizedError` if credentials are not found.
|
|
33
33
|
"""
|
|
34
34
|
if self._fal_client is None:
|
|
35
35
|
credentials = self.integration.get_credentials()
|
|
@@ -101,7 +101,7 @@ class FalaiApp(APIApplication):
|
|
|
101
101
|
priority: Priority | None = None,
|
|
102
102
|
) -> str:
|
|
103
103
|
"""
|
|
104
|
-
Submits a job to the Fal AI queue for asynchronous processing
|
|
104
|
+
Submits a job to the Fal AI queue for asynchronous processing, immediately returning a request ID. This contrasts with the `run` method, which waits for completion. The returned ID is used by `check_status`, `get_result`, and `cancel` to manage the job's lifecycle.
|
|
105
105
|
|
|
106
106
|
Args:
|
|
107
107
|
arguments: A dictionary of arguments for the application
|
|
@@ -181,7 +181,7 @@ class FalaiApp(APIApplication):
|
|
|
181
181
|
self, request_id: str, application: str = "fal-ai/flux/dev"
|
|
182
182
|
) -> Any:
|
|
183
183
|
"""
|
|
184
|
-
|
|
184
|
+
Retrieves the final result of an asynchronous job, identified by its `request_id`. This function waits for the job, initiated via `submit`, to complete. Unlike the non-blocking `check_status`, this method blocks execution to fetch and return the job's actual output upon completion.
|
|
185
185
|
|
|
186
186
|
Args:
|
|
187
187
|
request_id: The unique identifier of the submitted request
|
|
@@ -215,7 +215,7 @@ class FalaiApp(APIApplication):
|
|
|
215
215
|
self, request_id: str, application: str = "fal-ai/flux/dev"
|
|
216
216
|
) -> None:
|
|
217
217
|
"""
|
|
218
|
-
Asynchronously cancels a running or queued Fal AI job
|
|
218
|
+
Asynchronously cancels a running or queued Fal AI job using its `request_id`. This function complements the `submit` method, providing a way to terminate asynchronous tasks before completion. It raises a `ToolError` if the cancellation request fails.
|
|
219
219
|
|
|
220
220
|
Args:
|
|
221
221
|
request_id: The unique identifier of the submitted Fal AI request to cancel
|
|
@@ -244,7 +244,7 @@ class FalaiApp(APIApplication):
|
|
|
244
244
|
|
|
245
245
|
async def upload_file(self, path: str) -> str:
|
|
246
246
|
"""
|
|
247
|
-
Asynchronously uploads a local file
|
|
247
|
+
Asynchronously uploads a local file to the Fal Content Delivery Network (CDN), returning a public URL. This URL makes the file accessible for use as input in other Fal AI job execution methods like `run` or `submit`. A `ToolError` is raised if the upload fails.
|
|
248
248
|
|
|
249
249
|
Args:
|
|
250
250
|
path: The absolute or relative path to the local file
|
|
@@ -280,7 +280,7 @@ class FalaiApp(APIApplication):
|
|
|
280
280
|
hint: str | None = None,
|
|
281
281
|
) -> Any:
|
|
282
282
|
"""
|
|
283
|
-
A specialized wrapper for the `run` method that synchronously generates images using the 'fal-ai/flux/dev' model. It simplifies image creation with common parameters like `prompt` and `seed`, waits for the task to complete, and returns the result containing image URLs and metadata.
|
|
283
|
+
A specialized wrapper for the `run` method that synchronously generates images using the 'fal-ai/flux/dev' model. It simplifies image creation with common parameters like `prompt` and `seed`, waits for the task to complete, and directly returns the result containing image URLs and metadata.
|
|
284
284
|
|
|
285
285
|
Args:
|
|
286
286
|
prompt: The text prompt used to guide the image generation
|
|
@@ -38,7 +38,7 @@ class FirecrawlApp(APIApplication):
|
|
|
38
38
|
@property
|
|
39
39
|
def firecrawl_api_key(self) -> str:
|
|
40
40
|
"""
|
|
41
|
-
A property that lazily retrieves and caches the Firecrawl API key from the configured integration. On first access, it fetches credentials and raises a `NotAuthorizedError` if the key is unobtainable, ensuring all subsequent API calls are properly authenticated.
|
|
41
|
+
A property that lazily retrieves and caches the Firecrawl API key from the configured integration. On first access, it fetches credentials and raises a `NotAuthorizedError` if the key is unobtainable, ensuring all subsequent API calls within the application are properly authenticated before execution.
|
|
42
42
|
"""
|
|
43
43
|
if self._firecrawl_api_key is None:
|
|
44
44
|
if not self.integration:
|
|
@@ -166,7 +166,7 @@ class FirecrawlApp(APIApplication):
|
|
|
166
166
|
|
|
167
167
|
def scrape_url(self, url: str) -> Any:
|
|
168
168
|
"""
|
|
169
|
-
Synchronously scrapes a single
|
|
169
|
+
Synchronously scrapes a single URL, immediately returning its content. This provides a direct method for single-page scraping, contrasting with asynchronous, job-based functions like `start_crawl` (for entire sites) and `start_batch_scrape` (for multiple URLs).
|
|
170
170
|
|
|
171
171
|
Args:
|
|
172
172
|
url: The URL of the web page to scrape.
|
|
@@ -198,7 +198,7 @@ class FirecrawlApp(APIApplication):
|
|
|
198
198
|
|
|
199
199
|
def search(self, query: str) -> dict[str, Any] | str:
|
|
200
200
|
"""
|
|
201
|
-
Executes a web search using the Firecrawl service for a
|
|
201
|
+
Executes a synchronous web search using the Firecrawl service for a given query. Unlike scrape_url which fetches a single page, this function discovers web content. It returns a dictionary of results on success or an error string on failure, raising exceptions for authorization or SDK issues.
|
|
202
202
|
|
|
203
203
|
Args:
|
|
204
204
|
query: The search query string.
|
|
@@ -232,7 +232,7 @@ class FirecrawlApp(APIApplication):
|
|
|
232
232
|
url: str,
|
|
233
233
|
) -> dict[str, Any] | str:
|
|
234
234
|
"""
|
|
235
|
-
|
|
235
|
+
Starts an asynchronous Firecrawl job to crawl a website from a given URL, returning a job ID. Unlike the synchronous `scrape_url` for single pages, this function initiates a comprehensive, link-following crawl. Progress can be monitored using the `check_crawl_status` function with the returned ID.
|
|
236
236
|
|
|
237
237
|
Args:
|
|
238
238
|
url: The starting URL for the crawl.
|
|
@@ -268,7 +268,7 @@ class FirecrawlApp(APIApplication):
|
|
|
268
268
|
|
|
269
269
|
def check_crawl_status(self, job_id: str) -> dict[str, Any] | str:
|
|
270
270
|
"""
|
|
271
|
-
Retrieves the status of an asynchronous Firecrawl
|
|
271
|
+
Retrieves the status of an asynchronous Firecrawl job using its unique ID. As the counterpart to `start_crawl`, this function exclusively monitors website crawl progress, distinct from status checkers for batch scraping or data extraction jobs. Returns job details on success or an error message on failure.
|
|
272
272
|
|
|
273
273
|
Args:
|
|
274
274
|
job_id: The ID of the crawl job to check.
|
|
@@ -303,7 +303,7 @@ class FirecrawlApp(APIApplication):
|
|
|
303
303
|
|
|
304
304
|
def cancel_crawl(self, job_id: str) -> dict[str, Any] | str:
|
|
305
305
|
"""
|
|
306
|
-
Cancels a running asynchronous Firecrawl crawl job
|
|
306
|
+
Cancels a running asynchronous Firecrawl crawl job using its unique ID. As a lifecycle management tool for jobs initiated by `start_crawl`, it returns a confirmation status upon success or an error message on failure, distinguishing it from controls for other job types.
|
|
307
307
|
|
|
308
308
|
Args:
|
|
309
309
|
job_id: The ID of the crawl job to cancel.
|
|
@@ -342,7 +342,7 @@ class FirecrawlApp(APIApplication):
|
|
|
342
342
|
urls: list[str],
|
|
343
343
|
) -> dict[str, Any] | str:
|
|
344
344
|
"""
|
|
345
|
-
Initiates an asynchronous
|
|
345
|
+
Initiates an asynchronous Firecrawl job to scrape a list of URLs. It returns a job ID for tracking with `check_batch_scrape_status`. Unlike the synchronous `scrape_url` which processes a single URL, this function handles bulk scraping and doesn't wait for completion.
|
|
346
346
|
|
|
347
347
|
Args:
|
|
348
348
|
urls: A list of URLs to scrape.
|
|
@@ -377,7 +377,7 @@ class FirecrawlApp(APIApplication):
|
|
|
377
377
|
|
|
378
378
|
def check_batch_scrape_status(self, job_id: str) -> dict[str, Any] | str:
|
|
379
379
|
"""
|
|
380
|
-
Checks the status of
|
|
380
|
+
Checks the status of an asynchronous batch scrape job using its job ID. As the counterpart to `start_batch_scrape`, it specifically monitors multi-URL scraping tasks, distinct from checkers for site-wide crawls (`check_crawl_status`) or AI-driven extractions (`check_extract_status`). Returns detailed progress or an error message.
|
|
381
381
|
|
|
382
382
|
Args:
|
|
383
383
|
job_id: The ID of the batch scrape job to check.
|
|
@@ -421,7 +421,7 @@ class FirecrawlApp(APIApplication):
|
|
|
421
421
|
allow_external_links: bool | None = False,
|
|
422
422
|
) -> dict[str, Any]:
|
|
423
423
|
"""
|
|
424
|
-
Performs synchronous, AI-driven data extraction from URLs using an optional prompt or schema. Unlike asynchronous
|
|
424
|
+
Performs synchronous, AI-driven data extraction from URLs using an optional prompt or schema. Unlike asynchronous jobs like `start_crawl`, it returns structured data directly. This function raises an exception on failure, contrasting with other methods in the class that return an error string upon failure.
|
|
425
425
|
|
|
426
426
|
Args:
|
|
427
427
|
urls: A list of URLs to extract data from.
|
|
@@ -476,7 +476,7 @@ class FirecrawlApp(APIApplication):
|
|
|
476
476
|
|
|
477
477
|
def check_extract_status(self, job_id: str) -> dict[str, Any] | str:
|
|
478
478
|
"""
|
|
479
|
-
Checks the status of
|
|
479
|
+
Checks the status of an asynchronous, AI-powered Firecrawl data extraction job using its ID. Unlike `check_crawl_status` or `check_batch_scrape_status`, this function specifically monitors structured data extraction tasks, returning the job's progress or an error message on failure.
|
|
480
480
|
|
|
481
481
|
Args:
|
|
482
482
|
job_id: The ID of the extraction job to check.
|
|
@@ -25,7 +25,7 @@ class GithubApp(APIApplication):
|
|
|
25
25
|
|
|
26
26
|
def star_repository(self, repo_full_name: str) -> str:
|
|
27
27
|
"""
|
|
28
|
-
Stars a GitHub repository for the authenticated user
|
|
28
|
+
Stars a GitHub repository for the authenticated user. This user-centric action takes the full repository name ('owner/repo') and returns a simple string message confirming the outcome, unlike other functions that list or create repository content like issues or pull requests.
|
|
29
29
|
|
|
30
30
|
Args:
|
|
31
31
|
repo_full_name: The full name of the repository in 'owner/repo' format (e.g., 'octocat/Hello-World')
|
|
@@ -52,7 +52,7 @@ class GithubApp(APIApplication):
|
|
|
52
52
|
|
|
53
53
|
def list_recent_commits(self, repo_full_name: str) -> str:
|
|
54
54
|
"""
|
|
55
|
-
Fetches and formats the 12 most recent commits from a
|
|
55
|
+
Fetches and formats the 12 most recent commits from a repository. It returns a human-readable string summarizing each commit's hash, author, and message, providing a focused overview of recent code changes, unlike functions that list branches, issues, or pull requests.
|
|
56
56
|
|
|
57
57
|
Args:
|
|
58
58
|
repo_full_name: The full name of the repository in 'owner/repo' format
|
|
@@ -85,7 +85,7 @@ class GithubApp(APIApplication):
|
|
|
85
85
|
|
|
86
86
|
def list_branches(self, repo_full_name: str) -> str:
|
|
87
87
|
"""
|
|
88
|
-
|
|
88
|
+
Fetches all branches for a specified GitHub repository and formats them into a human-readable string. This method is distinct from others like `search_issues`, as it returns a formatted list for display rather than raw JSON data for programmatic use.
|
|
89
89
|
|
|
90
90
|
Args:
|
|
91
91
|
repo_full_name: The full name of the repository in 'owner/repo' format (e.g., 'octocat/Hello-World')
|
|
@@ -115,7 +115,7 @@ class GithubApp(APIApplication):
|
|
|
115
115
|
|
|
116
116
|
def list_pull_requests(self, repo_full_name: str, state: str = "open") -> str:
|
|
117
117
|
"""
|
|
118
|
-
Fetches pull requests for a repository, filtered by state (e.g., 'open'). It returns a formatted string summarizing each PR's details
|
|
118
|
+
Fetches pull requests for a repository, filtered by state (e.g., 'open'). It returns a formatted string summarizing each PR's details, distinguishing it from `get_pull_request` (single PR) and `search_issues` (raw issue data).
|
|
119
119
|
|
|
120
120
|
Args:
|
|
121
121
|
repo_full_name: The full name of the repository in the format 'owner/repo' (e.g., 'tensorflow/tensorflow')
|
|
@@ -193,7 +193,7 @@ class GithubApp(APIApplication):
|
|
|
193
193
|
|
|
194
194
|
def get_pull_request(self, repo_full_name: str, pull_number: int) -> str:
|
|
195
195
|
"""
|
|
196
|
-
Fetches a specific pull request from a repository
|
|
196
|
+
Fetches a specific pull request from a repository using its unique number. It returns a human-readable string summarizing the PR's title, creator, status, and description, unlike `list_pull_requests` which retrieves a list of multiple PRs.
|
|
197
197
|
|
|
198
198
|
Args:
|
|
199
199
|
repo_full_name: The full repository name in 'owner/repo' format (e.g., 'octocat/Hello-World')
|
|
@@ -239,7 +239,7 @@ class GithubApp(APIApplication):
|
|
|
239
239
|
draft: bool = False,
|
|
240
240
|
) -> dict[str, Any]:
|
|
241
241
|
"""
|
|
242
|
-
Creates a pull request
|
|
242
|
+
Creates a pull request between specified `head` and `base` branches, or converts an issue into a PR. Unlike read functions that return formatted strings, this write operation returns the raw API response as a dictionary, providing comprehensive data on the newly created pull request.
|
|
243
243
|
|
|
244
244
|
Args:
|
|
245
245
|
repo_full_name: The full name of the repository (e.g. 'owner/repo')
|
|
@@ -285,7 +285,7 @@ class GithubApp(APIApplication):
|
|
|
285
285
|
self, repo_full_name: str, title: str, body: str = "", labels=None
|
|
286
286
|
) -> str:
|
|
287
287
|
"""
|
|
288
|
-
Creates a new issue in a
|
|
288
|
+
Creates a new issue in a GitHub repository using a title, body, and optional labels. It returns a formatted confirmation string with the new issue's number and URL, differing from `update_issue` which modifies existing issues and `search_issues` which returns raw API data.
|
|
289
289
|
|
|
290
290
|
Args:
|
|
291
291
|
repo_full_name: The full name of the repository in 'owner/repo' format
|
|
@@ -328,7 +328,7 @@ class GithubApp(APIApplication):
|
|
|
328
328
|
self, repo_full_name: str, direction: str = "desc", per_page: int = 30
|
|
329
329
|
) -> str:
|
|
330
330
|
"""
|
|
331
|
-
Fetches
|
|
331
|
+
Fetches recent events for a GitHub repository and formats them into a human-readable string. It summarizes activities with actors and timestamps, providing a general event feed, unlike other `list_*` functions which retrieve specific resources like commits or issues.
|
|
332
332
|
|
|
333
333
|
Args:
|
|
334
334
|
repo_full_name: The full name of the repository in 'owner/repo' format
|
|
@@ -376,7 +376,7 @@ class GithubApp(APIApplication):
|
|
|
376
376
|
state_reason: str = None,
|
|
377
377
|
) -> dict[str, Any]:
|
|
378
378
|
"""
|
|
379
|
-
Modifies an existing GitHub issue
|
|
379
|
+
Modifies an existing GitHub issue, identified by its number within a repository. It can update optional fields like title, body, or state and returns the raw API response as a dictionary, differentiating it from `create_issue` which makes new issues and returns a formatted string.
|
|
380
380
|
|
|
381
381
|
Args:
|
|
382
382
|
repo_full_name: The full name of the repository in 'owner/repo' format
|
|
@@ -54,7 +54,7 @@ class GoogleCalendarApp(APIApplication):
|
|
|
54
54
|
time_zone: str | None = None,
|
|
55
55
|
) -> dict[str, Any]:
|
|
56
56
|
"""
|
|
57
|
-
Retrieves
|
|
57
|
+
Retrieves events for a specified number of days, starting from today. This function simplifies date-range queries by auto-calculating start/end times, unlike the more comprehensive `list_events` function, which offers granular control with explicit time filters, text search, and custom sorting.
|
|
58
58
|
|
|
59
59
|
Args:
|
|
60
60
|
days: Number of days to retrieve events for (default: 1, which is just today)
|
|
@@ -98,7 +98,7 @@ class GoogleCalendarApp(APIApplication):
|
|
|
98
98
|
time_zone: str | None = None,
|
|
99
99
|
) -> dict[str, Any]:
|
|
100
100
|
"""
|
|
101
|
-
Retrieves a specific
|
|
101
|
+
Retrieves a specific calendar event using its unique ID. Unlike `list_events`, which fetches multiple events based on date ranges or search queries, this function targets a single, known event. It can optionally limit attendees returned and specify a time zone for date formatting in the response.
|
|
102
102
|
|
|
103
103
|
Args:
|
|
104
104
|
event_id: The unique identifier of the calendar event to retrieve
|
|
@@ -137,7 +137,7 @@ class GoogleCalendarApp(APIApplication):
|
|
|
137
137
|
page_token: str | None = None,
|
|
138
138
|
) -> dict[str, Any]:
|
|
139
139
|
"""
|
|
140
|
-
Fetches a customizable list of events using filters for date range, text search, sorting, and pagination. This advanced function provides more granular control than `
|
|
140
|
+
Fetches a customizable list of events using filters for date range, text search, sorting, and pagination. This advanced function provides more granular control than `get_upcoming_events`, which is limited to fetching events for a specific number of upcoming days.
|
|
141
141
|
|
|
142
142
|
Args:
|
|
143
143
|
max_results: Maximum number of events to return (default: 10, max: 2500)
|
|
@@ -196,7 +196,7 @@ class GoogleCalendarApp(APIApplication):
|
|
|
196
196
|
calendar_id: str = "primary",
|
|
197
197
|
) -> dict[str, Any]:
|
|
198
198
|
"""
|
|
199
|
-
Creates a
|
|
199
|
+
Creates a calendar event using structured data for start/end times, summary, attendees, and recurrence. This method provides precise control for complex appointments, unlike `create_event_from_text` which parses natural language, making it ideal for detailed or recurring event creation.
|
|
200
200
|
|
|
201
201
|
Args:
|
|
202
202
|
start: Start time of the event (required). Must include timezone offset or timeZone field.
|
|
@@ -254,7 +254,7 @@ class GoogleCalendarApp(APIApplication):
|
|
|
254
254
|
|
|
255
255
|
def create_event_from_text(self, text: str, send_updates: str = "none") -> dict[str, Any]:
|
|
256
256
|
"""
|
|
257
|
-
Creates a calendar event by parsing a natural language string
|
|
257
|
+
Creates a calendar event by parsing a natural language string (e.g., "Meeting tomorrow at 10am"). This offers a user-friendly shortcut, contrasting with the structured `create_event` function which requires explicit fields like start and end times.
|
|
258
258
|
|
|
259
259
|
Args:
|
|
260
260
|
text: Natural language text describing the event (e.g., 'Meeting with John at Coffee Shop tomorrow 3pm-4pm')
|
|
@@ -287,7 +287,7 @@ class GoogleCalendarApp(APIApplication):
|
|
|
287
287
|
page_token: str | None = None,
|
|
288
288
|
) -> dict[str, Any]:
|
|
289
289
|
"""
|
|
290
|
-
Retrieves all individual occurrences
|
|
290
|
+
Retrieves all individual occurrences of a specific recurring event using its ID. Unlike `list_events`, which fetches multiple distinct events, this function expands a single recurring event into its separate instances, allowing filtering by time range and pagination for detailed scheduling views.
|
|
291
291
|
|
|
292
292
|
Args:
|
|
293
293
|
event_id: ID of the recurring event
|
|
@@ -341,7 +341,7 @@ class GoogleCalendarApp(APIApplication):
|
|
|
341
341
|
userIp=None,
|
|
342
342
|
) -> Any:
|
|
343
343
|
"""
|
|
344
|
-
|
|
344
|
+
Permanently deletes a specific event from a Google Calendar using its event and calendar IDs. It can optionally send cancellation notifications to attendees, distinguishing it from functions that retrieve (`get_event_by_id`) or modify events (`replace_event`), which do not remove entries from the calendar.
|
|
345
345
|
|
|
346
346
|
Args:
|
|
347
347
|
calendarId (string): calendarId
|
|
@@ -400,7 +400,7 @@ class GoogleCalendarApp(APIApplication):
|
|
|
400
400
|
max_attendees: int | None = None,
|
|
401
401
|
) -> dict[str, Any]:
|
|
402
402
|
"""
|
|
403
|
-
Replaces an existing calendar event, identified by its ID, with new data. This function performs a full update, overwriting all event properties like start/end times
|
|
403
|
+
Replaces an existing calendar event, identified by its ID, with new data. This function performs a full update, overwriting all event properties like start/end times and summary. It does not support partial modifications, requiring all necessary fields for the replacement to be provided.
|
|
404
404
|
|
|
405
405
|
Args:
|
|
406
406
|
event_id: The unique identifier of the calendar event to update (required)
|
|
@@ -458,7 +458,7 @@ class GoogleCalendarApp(APIApplication):
|
|
|
458
458
|
|
|
459
459
|
def get_primary_calendar_details(self) -> dict[str, Any]:
|
|
460
460
|
"""
|
|
461
|
-
Retrieves metadata for the user's primary calendar, including its default timezone. This information is essential for creating new events with accurate, timezone-aware start and end times
|
|
461
|
+
Retrieves metadata for the user's primary calendar, including its default timezone. This information is essential for creating new events with accurate, timezone-aware start and end times using other functions like `create_event`, preventing potential scheduling errors across different regions.
|
|
462
462
|
|
|
463
463
|
Returns:
|
|
464
464
|
Dictionary containing the user's timezone information
|
|
@@ -491,7 +491,7 @@ class GoogleCalendarApp(APIApplication):
|
|
|
491
491
|
timeZone=None,
|
|
492
492
|
) -> dict[str, Any]:
|
|
493
493
|
"""
|
|
494
|
-
Queries the
|
|
494
|
+
Queries the free/busy status for one or more calendars within a specified time range. It returns a list of busy time intervals, making it ideal for finding open slots and scheduling new events without conflicts.
|
|
495
495
|
|
|
496
496
|
|
|
497
497
|
Args:
|