OpenWalrusOpenWalrus

MCP Integration

Connect OpenWalrus agents to external tool servers via the Model Context Protocol (MCP).

OpenWalrus integrates with MCP servers, letting agents access external tools dynamically.

Configuration

Register MCP servers in walrus.toml:

[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]

[mcp_servers.github]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env = { GITHUB_TOKEN = "${GITHUB_TOKEN}" }

Each server is started as a child process and connected via the MCP SDK (rmcp).

Discovery tools

Agents interact with MCP servers through two tools:

search_mcp

Search across all registered MCP servers for tools matching a query:

{
  "name": "search_mcp",
  "parameters": {
    "query": "file operations"
  }
}

Returns matching tools from all servers with their names and descriptions.

call_mcp_tool

Invoke a specific tool on an MCP server:

{
  "name": "call_mcp_tool",
  "parameters": {
    "server": "filesystem",
    "tool": "read_file",
    "arguments": {
      "path": "/path/to/file.txt"
    }
  }
}

How it works

  1. On daemon startup, McpHandler connects to all configured MCP servers
  2. Tool schemas are dynamically registered from each server
  3. Agents discover tools via search_mcp
  4. Tool calls are routed to the correct server via call_mcp_tool

MCP servers support hot-reload — add a server to the config and it becomes available without restarting.

Available servers

The MCP ecosystem provides servers for many use cases:

  • Filesystem — file read/write/search
  • GitHub — repos, issues, PRs
  • Database — SQL queries
  • Browser — web automation

See modelcontextprotocol.io/servers for the full list.

What's next

On this page