Skip to content

MCP Proxy for Any Client

The Omnodex MCP proxy sits between an agent and its MCP servers. The agent connects to the proxy as a single MCP server; the proxy starts your real MCP servers, forwards every call, and records each one in the Omnodex event log.

Use it for agents that have no hook system, or when you want MCP-level controls such as parameter redaction.

ClientHow the proxy is set up
CoworkThe Omnodex plugin starts it. See Cowork.
OpenAI Codex (ChatGPT Desktop, CLI, IDE)Registered as an MCP server. See Codex.
Google AntigravityRegistered as an omnodex entry in mcp_config.json. See Antigravity.
Claude CodeOptional, alongside hooks. See Configuration.
Claude Desktop (chat app)Registered as an MCP server. See below.
Any other client that supports stdio MCP serversRegistered as an MCP server. See below.

Web apps such as claude.ai and ChatGPT on the web do not run MCP servers on your machine, so the local proxy cannot see their tool calls.

  1. Install Omnodex from source on the machine where the client runs. See Installation.

  2. Create the proxy configuration.

    Terminal window
    omnodex mcp-proxy install

    This creates a template omnodex-proxy.json in your Omnodex home if none exists. Move the MCP servers you want Omnodex to see out of the client’s own configuration and into upstream_servers. See MCP proxy configuration for every field.

  3. Check it.

    Terminal window
    omnodex mcp-proxy status

    Lists the configured upstream servers and their redaction settings. To confirm the upstreams start, run the proxy yourself; it waits for input, and Ctrl+C stops it:

    Terminal window
    node /path/to/omnodex/packages/mcp-proxy/dist/bin/omnodex-mcp-proxy.js --config ~/.omnodex/omnodex-proxy.json
  4. Register the proxy with your client as a stdio MCP server named omnodex, in place of the servers you moved. Use absolute paths; desktop apps may not share your terminal’s PATH or expand ~.

    SettingValue
    CommandAbsolute path to node (node.exe on Windows)
    Arguments<repo>/packages/mcp-proxy/dist/bin/omnodex-mcp-proxy.js, --config, absolute path to omnodex-proxy.json
  5. Restart the client and start a new conversation. The proxy’s own tools (omnodex_status, omnodex_connect, omnodex_connection_status) and your upstream tools appear. Upstream tools are named <server>__<tool>, for example filesystem__read_file.

Claude Desktop reads MCP servers from claude_desktop_config.json:

%APPDATA%\Claude\claude_desktop_config.json:

{
"mcpServers": {
"omnodex": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": [
"C:\\path\\to\\omnodex\\packages\\mcp-proxy\\dist\\bin\\omnodex-mcp-proxy.js",
"--config",
"C:\\Users\\<you>\\.omnodex\\omnodex-proxy.json"
]
}
}
}

Keep any other keys already in the file, and add omnodex alongside servers you are not routing through Omnodex. Fully quit and reopen Claude Desktop after editing.

The proxy sees everything that passes between the client and your MCP servers. This is what it records:

DataLoggedNotes
Tool name and owning serverYesFor example filesystem__read_file on filesystem
Tool call parametersYes, by defaultFile paths, queries, content to write. Set redact_parameters to replace values with [REDACTED]
Tool resultsNoOnly the response size is recorded
Duration and success or errorYesError messages are recorded
Proxy session start and endYesWith the list of upstream servers
Upstream credentialsNoPass them to upstreams as environment variables; they do not appear in MCP messages
MCP handshake and tool discoveryNo

Events stay in your local Omnodex home unless you connect to the hosted dashboard. Once connected, the proxy pushes each event to the live relay as it records it, and refreshes the encrypted blob every 15 minutes and again when the agent disconnects. See Automatic sync.

  • The proxy records only servers routed through it. Servers the client connects to directly are not recorded.
  • The agent’s built-in tools (file edits, shell commands) do not go through MCP, so the proxy does not see them. Use hooks where the agent supports them.
  • Upstream servers must use the stdio transport.
  • An upstream that is slow to start may miss the first tool listing. Claude Code picks such tools up when they arrive; ChatGPT Desktop, Codex CLI and Cowork do not, and only see them in a later session. See Sizing the discovery window.