Skip to main content

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.

PyPI Python Docs

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


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)

Source distribution for matimo 0.4.0
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)

Table of built distributions (wheels) for matimo 0.4.0
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page