Documentation

The Agent That Builds Itself

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.

Agents That Extend Themselves

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!'
});

Expanding Ecosystem

Pre-built tools ready to use. More coming soon.

Powerful Features

Everything you need to build AI agents with confidence

⚙️

Agent Self-Extension

10 meta-tools let agents autonomously create, validate, approve, and hot-reload new tools at runtime — without human intervention for trusted operations.

🧠

Skills System

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.

🛡️

Policy Engine

YAML-driven approval tiers: auto, approval-required, or blocked. HITL quarantine, content validation, and integrity tracking keep agent-created tools safe.

MCP

MCP Enabled

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.

📝

Define Once

Write tools in simple YAML. No duplicating schemas across frameworks. One definition, infinite possibilities.

🔌

Use Everywhere

Plug into LangChain, OpenAI agents, Claude, custom decorators—no framework lock-in or re-implementation.

🛠️

Pre-Built Tools

Start with Slack, Gmail, GitHub, Notion, Hubspot, Postgres tools. Add your own in minutes.

🔐

OAuth2 Ready

Provider-agnostic OAuth2 support. Secure auth for Google, GitHub, Slack, and any service.

Type-Safe

Full TypeScript support with runtime validation. Zod-powered parameter and response schemas.

📦

Framework Agnostic

Works with any AI framework. LangChain, CrewAI, custom agents—same tools, different frameworks.

Why Teams Choose Matimo

  • No Tool Duplication — Define once, reuse everywhere
  • Framework Freedom — Migrate between AI frameworks without rewriting tools
  • Faster Development — Pre-built tools from day one
  • Type Safe — TypeScript + Zod validation catches errors early
  • Community Tools — Growing ecosystem of @matimo/* providers
  • Enterprise Ready — OAuth2, error handling, retry logic built-in
  • Open Source — MIT licensed, fully transparent
  • Agent Self-Extension — Agents build and deploy new tools at runtime
  • Multi-Tenant Credentials — Per-execution credential isolation via getRequiredCredentials()
  • Extensive Test Coverage — Dozens of test suites with high coverage on core modules
name: slack_send_message description: Post message to channel parameters: channel: type: string required: true text: type: string required: true execution: type: http method: POST url: https://slack.com/api/chat.postMessage headers: Authorization: Bearer {SLACK_BOT_TOKEN} body: channel: '{channel}' text: '{text}'

Four Integration Patterns

Choose what works best for your use case

1

Factory Pattern

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);
2

Decorator Pattern

Class-based approach. Use @tool decorator for natural, object-oriented tool execution.

@tool('tool-name')
async myMethod(param) {
  // Auto-executed
}
3

Framework Integration

Full LangChain, OpenAI, or CrewAI integration. Convert tools to framework schemas automatically.

const tools = matimo
  .listTools()
  .map(t => toLangChainSchema(t));
4

MCP Server

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

Developer CLI

matimo ships with a first-class CLI for environment setup and approval workflows.

🧰

npx matimo doctor

Diagnoses your environment: Node version, @matimo/* packages, missing env variables, and YAML validation — all in one command.

📝

npx matimo review list

Lists all tools pending human approval or in quarantine. Part of the HITL (human-in-the-loop) approval workflow.

⚙️

npx matimo mcp setup

Auto-generates claude_desktop_config.json for Claude Desktop integration. Writes directly to ~/.config/Claude/

Join Our Community

Connect with developers, share ideas, and get help building with Matimo

Join Our Discord Server

Building with us. Ask questions, share your tools, and stay updated.

Ready to Unify Your AI Tools?

Join the growing community building with Matimo. Start in minutes.