This release is a pre-release and may not be stable for production use.
modulex-integrations
194 integrations · 2,140 actions · 20 categories
Pip-installable LangChain tool integrations for the ModuleX runtime — and any LangChain / LangGraph agent.
…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
IntegrationManifestwithextra="forbid"on every model. A typo fails at import time, not at runtime. - Discovered, not registered — the runtime finds integrations through
the Python
modulex.toolsentry-point group. Installing the package is the whole wiring. - Async and pass-through by design — HTTP tools use
httpx.AsyncClientand return the provider's native response shapes as JSON-serializable dicts. Typed pydantic output models in eachoutputs.pygive the LLM a real JSONSchema for every action's result. - Works without ModuleX — the tools are plain LangChain
StructuredTools. LoadTOOLSfrom 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 frommain. - Pre-releases (
vX.Y.ZaN) are tagged fromstagingand 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
- Website — modulex.dev
- Integration gallery — modulex.dev/integrations
- Documentation — docs.modulex.dev
- PyPI — pypi.org/project/modulex-integrations
- Issues — github.com/ModuleXAI/modulex-integrations/issues
License
MIT — see LICENSE.
Release files for modulex-integrations 0.14.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| modulex_integrations-0.14.0a1.tar.gz | 1.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| modulex_integrations-0.14.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.5 MB
Release files / modulex_integrations-0.14.0a1.tar.gz
| Download URL | modulex_integrations-0.14.0a1.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3cd8272e86efa8f449c0d8ba4e3398dc6a19b0a6590d8dcd20c90264e708f192
|
|
BLAKE2b-256 checksum How to use checksums |
5b17240fd3756560093ca297157854743647bd65b9f65972e0ee42a6e9c77181
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / modulex_integrations-0.14.0a1-py3-none-any.whl
| Download URL | modulex_integrations-0.14.0a1-py3-none-any.whl |
|---|---|
| Size | 2.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
63d5868284c69cc0a29c275dbb3a5eaafcaf83d9aec3948640a54a58619e5b7e
|
|
BLAKE2b-256 checksum How to use checksums |
109050d865a11e7af6eb003509cd21f4561359ba82d1449c4d3c3b5849df40f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency log