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.2.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.2.0
File Size Uploaded Provenance Actions
matimo-0.2.0.tar.gz 8.4 kB Without provenance Details for matimo-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for matimo 0.2.0
File Interpreter ABI Platform Actions
matimo-0.2.0-py3-none-any.whl Python 3 none any Details for matimo-0.2.0-py3-none-any.whl

Total release size: 16.8 kB

Release files / matimo-0.2.0.tar.gz

Download URL matimo-0.2.0.tar.gz
Size 8.4 kB
Tags Source
SHA-256 checksum
How to use checksums
34fb85192e8627d6bf241e2956f1d250d4c73e05574cecd83788d23b08a0c22f
BLAKE2b-256 checksum
How to use checksums
24bf49fdb7a7b4286d214cefdfddf5626e60469b6c87831d6cf05f640f2c5d78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / matimo-0.2.0-py3-none-any.whl

Download URL matimo-0.2.0-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e9bbe6051fc12bc310addc5c9b6a35725b0ed776955cebb521fa97077c48afd3
BLAKE2b-256 checksum
How to use checksums
f42b22afbb6e97abdb42fe6fa84d60ccb6c18a3de130ad32fd7f3286f701a75d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for matimo 0.2.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