Define Tools. Teach Skills. Let Agents Do the Rest.
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.
Most SDKs give agents tools. Matimo gives agents the ability to build new tools — validated, approved, and live — without restarting. The meta-tool layer is Matimo's core differentiator.
import { MatimoInstance } from 'matimo';
const matimo = await MatimoInstance.init();
const result = await matimo.execute('slack-send-message', {
channel: '#general',
text: 'Hello Matimo!'
});
Everything you need to build AI agents with confidence
10 meta-tools let agents autonomously create, validate, approve, and hot-reload new tools at runtime — without human intervention for trusted operations.
Agents learn from built-in SKILL.md files via TF-IDF semantic search. Progressive disclosure loads only relevant context — keeping agents fast and token-efficient.
YAML-driven approval tiers: auto, approval-required, or blocked. HITL quarantine, content validation, and integrity tracking keep agent-created tools safe.
Dual-transport MCP server (stdio + HTTP). One command to start: npx matimo mcp. One command to configure Claude Desktop: npx matimo mcp setup. Tools auto-discovered, secrets injected server-side, zero config required.
Write tools in simple YAML. No duplicating schemas across frameworks. One definition, infinite possibilities.
Plug into LangChain, OpenAI agents, Claude, custom decorators—no framework lock-in or re-implementation.
Start with Slack, Gmail, GitHub, Notion, Hubspot, Postgres tools. Add your own in minutes.
Provider-agnostic OAuth2 support. Secure auth for Google, GitHub, Slack, and any service.
Full TypeScript support with runtime validation. Zod-powered parameter and response schemas.
Works with any AI framework. LangChain, CrewAI, custom agents—same tools, different frameworks.
Choose what works best for your use case
Simple and direct. Load tools and execute by name. Perfect for CLI tools and quick prototypes.
const matimo = await MatimoInstance.init();
await matimo.execute('tool-name', params);
Class-based approach. Use @tool decorator for natural, object-oriented tool execution.
@tool('tool-name')
async myMethod(param) {
// Auto-executed
}
Full LangChain, OpenAI, or CrewAI integration. Convert tools to framework schemas automatically.
const tools = matimo
.listTools()
.map(t => toLangChainSchema(t));
Run Matimo as a standalone MCP server. Claude Desktop, Cursor, and any MCP client see all your tools instantly.
# stdio (Claude Desktop)
npx matimo mcp
# HTTP (remote agents)
npx matimo mcp --transport http --port 3000
matimo ships with a first-class CLI for environment setup and approval workflows.
npx matimo doctorDiagnoses your environment: Node version, @matimo/* packages, missing env variables, and YAML validation — all in one command.
npx matimo review listLists all tools pending human approval or in quarantine. Part of the HITL (human-in-the-loop) approval workflow.
npx matimo mcp setupAuto-generates claude_desktop_config.json for Claude Desktop integration. Writes directly to ~/.config/Claude/
Connect with developers, share ideas, and get help building with Matimo
Building with us. Ask questions, share your tools, and stay updated.
Join the growing community building with Matimo. Start in minutes.