MCP Server Integration

What is MCP?

MCP (Model Context Protocol) is the universal protocol that connects Rimuru agents to external tools and data sources. Think of it as USB-C for AI — a standardized way to plug any tool, API, or service into your agent workflows.

With 97M+ SDK downloads and 10,000+ enterprise servers, MCP is the industry standard for agent-tool communication.

How It Works

Agent ↔ MCP Client ↔ MCP Server ↔ External Service
  • MCP Client — Built into Rimuru, manages connections
  • MCP Server — A lightweight process that exposes tools/resources
  • Transport — stdio (local) or SSE (remote)

Adding an MCP Server

Via CLI

rimuru mcp add filesystem npx -y @modelcontextprotocol/server-filesystem
rimuru mcp add github npx -y @modelcontextprotocol/server-github
rimuru mcp add postgres npx -y @modelcontextprotocol/server-postgres postgresql://...

Via Config (rimuru.yaml)

mcp_servers: filesystem: command: npx args: ["-y", "@modelcontextprotocol/server-filesystem"] github: command: npx args: ["-y", "@modelcontextprotocol/server-github"] env: GITHUB_TOKEN: "$GITHUB_TOKEN" database: command: python args: ["-m", "mcp_server_postgres"] env: DATABASE_URL: "$DATABASE_URL"

Built-in MCP Servers

Rimuru ships with these MCP servers pre-configured:

ServerDescriptionCommand
FilesystemRead/write filesBuilt-in
SearchWeb searchBuilt-in
ShellExecute commandsBuilt-in
MemoryAgent memory storeBuilt-in

Community MCP Servers

Install from the MCP marketplace:

rimuru mcp install @mcp/slack
rimuru mcp install @mcp/notion
rimuru mcp install @mcp/jira
rimuru mcp install @mcp/linear

Creating a Custom MCP Server

Python (FastMCP)

from fastmcp import FastMCP

mcp = FastMCP("my-tool")

@mcp.tool()
def calculate(expression: str) -> str:
    """Evaluate a mathematical expression"""
    return str(eval(expression))

mcp.run()

TypeScript (MCP SDK)

import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";

const server = new Server({ name: "my-tool", version: "1.0.0" }, {
  capabilities: { tools: {} }
});

server.setRequestHandler("tools/call", async (request) => {
  // Handle tool call
  return { content: [{ type: "text", text: "Result" }] };
});

const transport = new StdioServerTransport();
await server.connect(transport);

Managing MCP Servers

rimuru mcp list                    # List all connected servers
rimuru mcp inspect <name>          # Inspect server capabilities
rimuru mcp logs <name>             # View server logs
rimuru mcp restart <name>          # Restart a server
rimuru mcp remove <name>           # Remove a server

Security Best Practices

  1. Never put secrets in config files — use environment variables
  2. Pin server versions for production
  3. Use read-only interfaces by default
  4. Audit MCP servers regularly
  5. Run untrusted servers in isolated environments