Skip to content

Client setup

Install Ridge first, then connect your client to the workspace's YAML file. Use absolute executable and configuration paths: desktop launch environments often differ from terminal environments. Keep the workspace state on the Ridge host, outside replaceable resource trees.

Codex CLI and desktop

Add this to your Codex configuration (~/.codex/config.toml, or .codex/config.toml in a trusted project):

[mcp_servers.ridge]
command = "/absolute/path/to/environment/bin/ridge-mcp"
args = ["--config", "/absolute/path/to/ridge.yaml"]
required = true
default_tools_approval_mode = "writes"

Open a new conversation and ask the agent to inspect its Ridge access and list resources. In the terminal, /mcp shows the connected server. In the desktop app, use Settings → MCP servers to add or inspect the same local stdio server, then restart the connection. See Codex MCP setup for the current configuration and UI.

For a child process, have the host supply RIDGE_SCOPE_TOKEN and add env_vars = ["RIDGE_SCOPE_TOKEN"] to that server entry. For desktop-bound access, append "--scope-token-file", "/absolute/private/task.token" to args instead of relying on terminal environment inheritance. A running connection captures its handle once; restart it to change bindings.

Claude Code CLI and desktop Code sessions

From your project, register the installed server:

claude mcp add --transport stdio --scope project ridge -- \
  /absolute/path/to/environment/bin/ridge-mcp --config /absolute/path/to/ridge.yaml

Review the project .mcp.json and approve the server when prompted. Ask Claude to inspect its Ridge access and list resources; /mcp shows connection status. Local desktop Code sessions share the CLI's MCP configuration. Open the same project and inspect its connectors. Keep only one Ridge definition for the intended binding if you also use Claude Desktop chat.

For scripted children, use process-local --mcp-config with --strict-mcp-config and supply the child's RIDGE_SCOPE_TOKEN through the host environment. The agent handoff example demonstrates this without editing personal settings. See Claude Code MCP and desktop configuration.

Claude Desktop chat

Open the desktop app's developer configuration and add a local server:

{
  "mcpServers": {
    "ridge": {
      "command": "/absolute/path/to/environment/bin/ridge-mcp",
      "args": ["--config", "/absolute/path/to/ridge.yaml"]
    }
  }
}

Merge this entry with existing servers, then restart the app. The local chat configuration is claude_desktop_config.json; it is distinct from the standalone Claude Code CLI configuration. For scoped access, add --scope-token-file and its absolute protected path to args. See the desktop MCP configuration relationship.

VS Code / GitHub Copilot

Add .vscode/mcp.json to the project, preserving existing entries:

{
  "servers": {
    "ridge": {
      "type": "stdio",
      "command": "/absolute/path/to/environment/bin/ridge-mcp",
      "args": ["--config", "/absolute/path/to/ridge.yaml"]
    }
  }
}

Use MCP: List Servers to start Ridge and inspect its output. Enable its tools in agent chat, then ask for access/resource discovery. In a remote VS Code window, the executable and YAML must be available in the environment running the server. Use a token-file argument for a scoped connection. Follow VS Code's MCP guide for server trust and tool selection.

Other MCP clients

Choose local stdio, set the installed ridge-mcp command and --config argument, and verify inspect_access before work. A remote resource does not require a remote MCP server: the local Ridge host reaches it using its configured provider.

For per-child access, use separate connections with distinct bindings. Native subagents sharing one connection share its Ridge authority; use the separate-process handoff when task-specific binding is needed.