matimo
A framework-agnostic SDK with pre-built providers, a skills knowledge layer, MCP out of the box, and agents that autonomously build new capabilities - governed by a policy engine you control.
matimo is the convenience meta-package that installs matimo-core and matimo-cli. Provider packages (Slack, GitHub, Gmail, etc.) are installed separately.
Installation
# Core SDK + CLI
pip install matimo
# With optional framework integrations
pip install "matimo[langchain]" # LangChain support
pip install "matimo[crewai]" # CrewAI support
pip install "matimo[agno]" # Agno support
pip install "matimo[mcp]" # MCP server support
# With secrets backends
pip install "matimo[dotenv]" # .env file support
pip install "matimo[vault]" # HashiCorp Vault
pip install "matimo[aws]" # AWS Secrets Manager
# Everything (all optional integrations)
pip install "matimo[all]"
# With provider packages
pip install matimo matimo-slack matimo-github matimo-gmail
Quick Start
Factory pattern
import asyncio
from matimo import Matimo
async def main():
matimo = await Matimo.init('./tools')
result = await matimo.execute('my_tool', {'param': 'value'})
print(result)
asyncio.run(main())
Auto-discover installed providers
from matimo import Matimo
matimo = await Matimo.init(auto_discover=True)
print([t.name for t in matimo.list_tools()])
With provider packages
from matimo import Matimo
from matimo_slack import get_tools_path as slack_tools
from matimo_github import get_tools_path as github_tools
matimo = await Matimo.init([slack_tools(), github_tools()])
result = await matimo.execute('slack_send_channel_message', {
'channel': '#general',
'text': 'Hello from Matimo!',
})
LangChain agent
from matimo import Matimo, convert_tools_to_langchain
from langchain_openai import ChatOpenAI
from langchain.agents import create_agent # LangChain 1.x
matimo = await Matimo.init(auto_discover=True)
slack = [t for t in matimo.list_tools() if t.name.startswith('slack')]
lc_tools = convert_tools_to_langchain(slack, matimo) # pass a short list: OpenAI accepts at most 128 tools
agent = create_agent(ChatOpenAI(model='gpt-4o-mini'), tools=lc_tools)
result = await agent.ainvoke({'messages': [('user', 'List all Slack channels')]})
CrewAI agent
from matimo import Matimo
from matimo.integrations.crewai import convert_tools_to_crewai
matimo = await Matimo.init(auto_discover=True)
crewai_tools = convert_tools_to_crewai(matimo.list_tools(), matimo)
MCP server (Claude Desktop / Cursor)
from matimo import Matimo, MCPServer, MCPServerOptions
matimo = await Matimo.init(auto_discover=True)
server = MCPServer(matimo, MCPServerOptions(transport='stdio'))
await server.start()
Or from the shell: matimo mcp.
Approval
Calls that need approval (HTTP DELETE, shell commands, tools marked requires_approval) ask your callback:
from matimo import ApprovalRequest, Matimo
async def confirm(request: ApprovalRequest) -> bool:
return input(f"Allow {request.tool_name}? [y/N] ").strip().lower() == "y"
matimo = await Matimo.init(auto_discover=True, on_approval=confirm)
Provider Packages
Install the tools you need:
| Package | Tools | Install |
|---|---|---|
matimo-slack |
Messaging, channels, files, reactions | pip install matimo-slack |
matimo-github |
Repos, issues, PRs, releases | pip install matimo-github |
matimo-gmail |
Send, list, read, delete emails | pip install matimo-gmail |
matimo-notion |
Pages, databases, comments | pip install matimo-notion |
matimo-postgres |
Execute SQL queries | pip install matimo-postgres |
matimo-twilio |
SMS, MMS, message history | pip install matimo-twilio |
matimo-hubspot |
CRM: contacts, deals, companies | pip install matimo-hubspot |
matimo-mailchimp |
Campaigns, lists, members | pip install matimo-mailchimp |
matimo-microsoft |
Mail, OneDrive/SharePoint, Teams, calendar | pip install matimo-microsoft |
matimo-bruno |
Manage and run Bruno API test collections | pip install matimo-bruno |
Key Features
- YAML-defined tools - define once, use from any framework
- 10 provider packages - 100+ pre-built tools ready to use
- LangChain / CrewAI / Agno / MCP - first-class integrations
- Policy engine - risk classification, per-call approval, HITL quarantine, content validation, hash-chained audit log
- Skills system - inject reusable domain knowledge into agents
- Meta-tools - agents can create, approve, and reload tools at runtime
- Secrets management - env,
.env, Vault, AWS Secrets Manager resolver chain - Structured logging - JSON/simple formats, configurable log levels
Documentation
Links
Metadata
Release files for matimo 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| matimo-0.4.0.tar.gz | 8.4 kB | Without provenance | Details for matimo-0.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| matimo-0.4.0-py3-none-any.whl | Python 3 | none | any | Details for matimo-0.4.0-py3-none-any.whl |
Total release size: 16.8 kB
Release files / matimo-0.4.0.tar.gz
| Download URL | matimo-0.4.0.tar.gz |
|---|---|
| Size | 8.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
42bc659839763506e2ea6b8b42fc542dc2adc291bfd6df6dea66f83d798a520b
|
|
BLAKE2b-256 checksum How to use checksums |
11ba2b602f4a412cac3b94fa969131d9bf770ee4d4391f2e66ed4c6abdbc1f75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / matimo-0.4.0-py3-none-any.whl
| Download URL | matimo-0.4.0-py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b2b164b57772b171460de386facdca803a362e1cf10ad389cfeb60c322353550
|
|
BLAKE2b-256 checksum How to use checksums |
f0344d82f8d38a8abf32270810d4cc900fca36bed5dd5373c5203424545984cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Security for matimo 0.4.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.