Skip to main content

Community-contributable integrations (tools) for ModuleX

Project description

ModuleX

modulex-integrations

179 integrations · 1,787 actions · 20 categories
Pip-installable LangChain tool integrations for the ModuleX runtime — and any LangChain / LangGraph agent.

PyPI version Python versions CI License: MIT Downloads

modulex.dev Documentation PyPI

GitHub   Slack   Notion   Linear   Gmail   Google Drive   Stripe   HubSpot

Salesforce   Jira   Figma   Shopify   Qdrant   Pinecone   Weaviate   MongoDB Atlas

…and 160+ more — browse the full catalog at modulex.dev/integrations, or the source in src/modulex_integrations/tools/.


What is this?

Every integration in this package exposes one or more LangChain @tool functions together with the credential metadata the ModuleX runtime needs to drive its UI and execution: auth schemas (OAuth2, API key, bearer token, custom connections), environment-variable definitions, and credential test endpoints.

  • One contract for everything — each integration is a pydantic IntegrationManifest with extra="forbid" on every model. A typo fails at import time, not at runtime.
  • Discovered, not registered — the runtime finds integrations through the Python modulex.tools entry-point group. Installing the package is the whole wiring.
  • Async and pass-through by design — HTTP tools use httpx.AsyncClient and return the provider's native response shapes as JSON-serializable dicts. Typed pydantic output models in each outputs.py give the LLM a real JSONSchema for every action's result.
  • Works without ModuleX — the tools are plain LangChain StructuredTools. Load TOOLS from any integration and bind them to a LangChain or LangGraph agent directly.

Installation

pip install modulex-integrations

With every integration's optional SDK dependencies (database drivers etc.):

pip install "modulex-integrations[all]"

Quickstart

Discover everything the package ships:

from importlib.metadata import entry_points

for ep in entry_points(group="modulex.tools"):
    integration = ep.load()
    print(f"{integration.manifest.display_name}: {len(integration.TOOLS)} tools")

Or call a tool directly — every action is an async LangChain tool that returns a plain dict:

import asyncio
from modulex_integrations.tools.qdrant import list_collections

async def main() -> None:
    result = await list_collections.ainvoke({
        "auth_type": "custom",
        "auth_data": {
            "base_url": "https://xyz.eu-west.cloud.qdrant.io:6333",
            "api_key": "...",
        },
    })
    print(result)  # {"success": True, "collections": [...], "error": None}

asyncio.run(main())

Catalog

Category Count Examples
Productivity & Collaboration 21 notion, google_sheets, figma, docusign
Developer Tools & Infrastructure 19 github, gitlab, vercel, cloudflare
Marketing & Advertising 17 mailchimp, google_ads, klaviyo, semrush
Sales 15 apollo_io, clay, gong, hunter
Communication 14 slack, gmail, microsoft_teams, twilio
Analytics & Data 9 databricks, mixpanel, posthog, google_analytics
Finance & Payments 9 stripe, coinbase, square, mercury
Web Search & Scraping 9 exa, firecrawl, tavily, apify
AI & Machine Learning 8 elevenlabs, fal_ai, heygen, mem0
Monitoring & Observability 8 datadog, grafana, sentry, pagerduty
Cloud Infrastructure 7 aws, azure_storage, google_cloud, google_drive
E-Commerce 7 shopify, etsy, woocommerce, instacart
CRM 6 hubspot, salesforce, pipedrive, bloomerang
Project & Task Management 6 jira, linear, airtable, monday
Scheduling & Events 6 calendly, cal_com, google_calendar, luma
Social Media 6 linkedin, youtube, pinterest, product_hunt
Databases 5 postgresql, mysql, snowflake, supabase
Vector Database 4 qdrant, pinecone, weaviate, mongodb_atlas
Customer Support 2 intercom, freshdesk
Education 1 instructure_canvas

Each integration's own README.md documents its auth setup, tools, and limits — e.g. github, slack, qdrant.

Per-integration layout

Every integration ships in the same shape:

src/modulex_integrations/tools/<name>/
├── __init__.py        # re-exports manifest + TOOLS
├── manifest.py        # IntegrationManifest instance
├── tools.py           # LangChain @tool functions
├── outputs.py         # pydantic response models (UI/docs derive JSONSchema)
├── dependencies.toml  # per-integration runtime deps
├── README.md          # strict 5-section template
└── tests/
    └── test_<name>.py

The contract is enforced by the pydantic types in schema.py, and CI runs the full test suite plus ruff and mypy --strict on every PR.

Versioning & releases

Versions are derived from git tags via hatch-vcs — there is no static version field.

  • Stable releases (vX.Y.Z) are tagged from main.
  • Pre-releases (vX.Y.ZaN) are tagged from staging and land on PyPI as PEP 440 pre-releases.
  • The ModuleX runtime consumes this package with exact pins per environment.

See RELEASING.md for the full process and CHANGELOG.md for what shipped in each version.

Contributing

Contributions flow through the standard GitHub PR model — adding a new integration is a single-repo PR. Start with CONTRIBUTING.md for the layout rules and README template, then verify locally:

git clone https://github.com/ModuleXAI/modulex-integrations.git
cd modulex-integrations
pip install -e ".[dev]"
pytest && ruff check src tests && mypy src/modulex_integrations

Links

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

modulex_integrations-0.13.0a1.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

modulex_integrations-0.13.0a1-py3-none-any.whl (2.1 MB view details)

Uploaded Python 3

File details

Details for the file modulex_integrations-0.13.0a1.tar.gz.

File metadata

  • Download URL: modulex_integrations-0.13.0a1.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for modulex_integrations-0.13.0a1.tar.gz
Algorithm Hash digest
SHA256 447ab9e0ab70e5249dba910a6acca606e7194c9185d0463d2eb66412e3540f78
MD5 81121a7fd13669c514652af752939183
BLAKE2b-256 cf4cf15c0e57172e85dcab0a0ae30ff9b2eeb66f78097852288c67480f4d622a

See more details on using hashes here.

Provenance

The following attestation bundles were made for modulex_integrations-0.13.0a1.tar.gz:

Publisher: release.yml on ModuleXAI/modulex-integrations

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file modulex_integrations-0.13.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for modulex_integrations-0.13.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 94f08f3b0a1a93a02118ae57108796c8e70e66429e17cba9b208c30b640d68e8
MD5 4ee8df0c8d6fbdb8b881c7066d85d097
BLAKE2b-256 913be3b0be7669f2793cd54d24a83acc9f571dd708b5270a1a758113c8d741d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for modulex_integrations-0.13.0a1-py3-none-any.whl:

Publisher: release.yml on ModuleXAI/modulex-integrations

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page