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.0.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.0-py3-none-any.whl (2.1 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: modulex_integrations-0.13.0.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.0.tar.gz
Algorithm Hash digest
SHA256 84c585f7e8a98fd10c4829b0fd73aa4ff5abc1a3108af10aeed78455985f2404
MD5 a2c353e5a2957084214969be0c0a9398
BLAKE2b-256 9ae632d44c790b4b6e16acfebb9ee992c16638cef59a4e69cf3c7dcc438dbcc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for modulex_integrations-0.13.0.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.0-py3-none-any.whl.

File metadata

File hashes

Hashes for modulex_integrations-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e30b5c8bdbbddd6a1bf928a59b40b839f3d5a2db2ae35546d712fd89e3debb3
MD5 b6fa31032e547a9d58da35133e1bfaeb
BLAKE2b-256 46d7d68e52b856fbf9bde3890063b2b5be91a29f99197da1274a1cbe742025b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for modulex_integrations-0.13.0-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