MonoClaw

MCP Config Reference

Configuration structure

mcp_servers:
  <name>:
    command: string
    args: [string]
    env:
      <key>: <value>
    tool_filter:
      include: [string]
      exclude: [string]
    utility_tool_policy: allow | hide | block

Transport types

stdio (default)

mcp_servers:
  sqlite:
    command: uvx
    args: ["mcp-server-sqlite", "--db-path", "/path/to/db.sqlite"]

http

mcp_servers:
  remote:
    url: "https://api.example.com/mcp"
    headers:
      Authorization: "Bearer ${API_KEY}"

Tool filtering

Include only specific tools

mcp_servers:
  github:
    tool_filter:
      include:
        - "search_repositories"
        - "get_file_contents"

Exclude specific tools

mcp_servers:
  github:
    tool_filter:
      exclude:
        - "create_issue"
        - "create_pull_request"

Combine include and exclude

Include takes precedence:

mcp_servers:
  github:
    tool_filter:
      include:
        - "search_repositories"
        - "get_file_contents"
      exclude:
        - "search_repositories"  # This wins — search_repositories is excluded

Utility tool policy

Controls how low-utility tools (like echo, ping) are handled:

PolicyBehavior
allowShow all tools
hideHide utility tools from the tool list (default)
blockCompletely block utility tools
mcp_servers:
  my-server:
    utility_tool_policy: hide

Environment variable substitution

Use ${VAR} syntax for secrets:

mcp_servers:
  github:
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "${GITHUB_TOKEN}"

Timeout configuration

mcp_servers:
  slow-server:
    timeout: 30    # Seconds

Retry configuration

mcp_servers:
  unreliable:
    retries: 3
    retry_delay: 1.0    # Seconds

Global MCP settings

mcp:
  enabled: true
  max_servers: 20
  default_timeout: 10
  default_retries: 2

Example: Multiple servers

mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "${GITHUB_TOKEN}"
    tool_filter:
      include:
        - "search_repositories"
        - "get_file_contents"
        - "list_issues"

  sqlite:
    command: uvx
    args: ["mcp-server-sqlite", "--db-path", "~/.monoclaw/data.db"]

  fetch:
    command: uvx
    args: ["mcp-server-fetch"]
    utility_tool_policy: hide