Community-contributable integrations (tools) for ModuleX
Project description
modulex-integrations
179 integrations · 1,787 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84c585f7e8a98fd10c4829b0fd73aa4ff5abc1a3108af10aeed78455985f2404
|
|
| MD5 |
a2c353e5a2957084214969be0c0a9398
|
|
| BLAKE2b-256 |
9ae632d44c790b4b6e16acfebb9ee992c16638cef59a4e69cf3c7dcc438dbcc2
|
Provenance
The following attestation bundles were made for modulex_integrations-0.13.0.tar.gz:
Publisher:
release.yml on ModuleXAI/modulex-integrations
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
modulex_integrations-0.13.0.tar.gz -
Subject digest:
84c585f7e8a98fd10c4829b0fd73aa4ff5abc1a3108af10aeed78455985f2404 - Sigstore transparency entry: 2213953810
- Sigstore integration time:
-
Permalink:
ModuleXAI/modulex-integrations@349300920ed1779e0e3f39b4262f77a8be3878cb -
Branch / Tag:
refs/tags/v0.13.0 - Owner: https://github.com/ModuleXAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@349300920ed1779e0e3f39b4262f77a8be3878cb -
Trigger Event:
push
-
Statement type:
File details
Details for the file modulex_integrations-0.13.0-py3-none-any.whl.
File metadata
- Download URL: modulex_integrations-0.13.0-py3-none-any.whl
- Upload date:
- Size: 2.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e30b5c8bdbbddd6a1bf928a59b40b839f3d5a2db2ae35546d712fd89e3debb3
|
|
| MD5 |
b6fa31032e547a9d58da35133e1bfaeb
|
|
| BLAKE2b-256 |
46d7d68e52b856fbf9bde3890063b2b5be91a29f99197da1274a1cbe742025b0
|
Provenance
The following attestation bundles were made for modulex_integrations-0.13.0-py3-none-any.whl:
Publisher:
release.yml on ModuleXAI/modulex-integrations
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
modulex_integrations-0.13.0-py3-none-any.whl -
Subject digest:
6e30b5c8bdbbddd6a1bf928a59b40b839f3d5a2db2ae35546d712fd89e3debb3 - Sigstore transparency entry: 2213953888
- Sigstore integration time:
-
Permalink:
ModuleXAI/modulex-integrations@349300920ed1779e0e3f39b4262f77a8be3878cb -
Branch / Tag:
refs/tags/v0.13.0 - Owner: https://github.com/ModuleXAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@349300920ed1779e0e3f39b4262f77a8be3878cb -
Trigger Event:
push
-
Statement type: