Manifest reference

[mcp] — MCP servers

Declare which MCP servers your rig needs. rig doctor checks they're configured and launchable.

[mcp]
config  = ".mcp.json"
servers = ["yfinance", "macro"]

Fields

config (string, file path)

Path to the MCP config file (typically .mcp.json). Defaults to .mcp.json at the workspace root.

This file is the canonical declaration of how each server is invoked — its command, args, env vars. Rig reads it but does not own it; Claude Code reads it too.

servers (list of strings)

Names of servers declared in config that the rig actually depends on. rig doctor checks each is present in the config and (optionally — see below) tries to launch it.

Example .mcp.json

{
  "mcpServers": {
    "yfinance": {
      "command": "uvx",
      "args": ["yfinance-mcp-server"]
    },
    "macro": {
      "command": "uvx",
      "args": ["macro-mcp-server"]
    }
  }
}

Paired with:

[mcp]
config  = ".mcp.json"
servers = ["yfinance", "macro"]

What rig checks

rig doctor for each name in servers:

  1. Declaration — confirm the server is in config.
  2. Tools — confirm the command (e.g. uvx) is on PATH (overlaps with [tools]).
  3. Liveness (planned — see MVP notes) — attempt to launch the server briefly and report if it errors.

Missing entries become required gaps; failing launches become warnings with the captured error.

What rig won't do

  • Never install MCP servers (e.g. uvx <name> packages, npm packages). Out of scope.
  • Never rewrite config automatically. Edit .mcp.json yourself.
  • Never invoke servers as part of rig install (other than the optional liveness probe).

Patterns

Python servers (via uvx)

{
  "mcpServers": {
    "yfinance": {
      "command": "uvx",
      "args": ["yfinance-mcp-server"]
    }
  }
}
[tools]
required = ["uvx"]

[mcp]
servers = ["yfinance"]

Node servers (via npx)

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp"]
    }
  }
}
[tools]
required = ["npx"]

[mcp]
servers = ["playwright"]

Servers requiring env vars

If the MCP server needs env vars, declare them in [env] so rig install can collect them.

[env]
required = ["ANTHROPIC_API_KEY"]

[mcp]
servers = ["my-anthropic-tool"]

See also