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:
| Server | Description | Command |
|---|---|---|
| Filesystem | Read/write files | Built-in |
| Search | Web search | Built-in |
| Shell | Execute commands | Built-in |
| Memory | Agent memory store | Built-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/linearCreating 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 serverSecurity Best Practices
- Never put secrets in config files — use environment variables
- Pin server versions for production
- Use read-only interfaces by default
- Audit MCP servers regularly
- Run untrusted servers in isolated environments