CLI bridge — clawnify mcp

clawnify mcp is a stdio MCP bridge. It reads newline-delimited JSON-RPC frames from stdin, forwards each to mcp.clawnify.com with your stored credentials, and writes the response to stdout. Works with any MCP client that can spawn a subprocess.

Setup

npm install -g clawnify
clawnify login

The bridge picks up the token + active org from ~/.clawnify/auth.json. No extra config.

Use it manually

# tools/list
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | clawnify mcp

# tools/call clawnify.execute
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"clawnify.execute","arguments":{"code":"console.log(1 + 1)"}}}' | clawnify mcp

Wire it into a client

Any client that takes a command + args MCP server config works. Common ones:

Claude Desktop

{
  "mcpServers": {
    "clawnify": { "command": "clawnify", "args": ["mcp"] }
  }
}

Cursor

{
  "mcpServers": {
    "clawnify": { "command": "clawnify", "args": ["mcp"] }
  }
}

Continue, Cline, opencode, OpenClaw, anything stdio-MCP

Same shape — point at clawnify with the mcp argument.

Multi-org

Override the active org per-bridge with an env var:

{
  "mcpServers": {
    "clawnify-prod": {
      "command": "clawnify",
      "args": ["mcp"],
      "env": { "CLAWNIFY_ORG_ID": "<your_prod_org_uuid>" }
    },
    "clawnify-staging": {
      "command": "clawnify",
      "args": ["mcp"],
      "env": { "CLAWNIFY_ORG_ID": "<your_staging_org_uuid>" }
    }
  }
}

The bridge sends X-Clawnify-Org-Id per call; the gateway routes to the right org.

Why use this vs the MCPB bundle?

  • Bridge — best for developer clients (Cursor, opencode, OpenClaw, anything bash-capable). Reuses clawnify login. Free CLI updates.
  • MCPB — best for non-CLI users on Claude Desktop. One-click install; no terminal required after the initial token paste.

Pick either; they hit the same gateway with the same tools.