Skip to content
Holdout
Skill + MCP

Your rulebook inside your agent

The Holdout Skill tells your coding agent to check a trade against your rulebook before it previews an order, and to wait for you. The MCP server answers those checks. Neither one places orders.
  1. 01

    Export the rulebook

    Download the JSON from the Rulebook page on the desk.

  2. 02

    Build the server

    Clone the repo and build the skill package.

  3. 03

    Register it

    Add the command to your agent with HOLDOUT_RULEBOOK set.

  4. 04

    Copy SKILL.md

    Put it in your agent skills folder.

What the agent is told

Before any order preview with the Bitget agent CLI, call check_trade, show the card, and wait for the human. Never place an order on the human's behalf because of Holdout output.

Tools

  • get_rulebookReturns your exported rulebook. The path comes from the HOLDOUT_RULEBOOK environment variable.
  • check_tradeTakes symbol, side, leverage, and optionally product and time. Returns the rules the trade breaks, stats from similar past trades, session state now, earnings state and signal tags. Read only.
  • explain_ruleTakes a rule id and returns the evidence for that rule.

Install

Export your rulebook JSON from the Rulebook page on the desk, then point the server at it. The stdio server runs from a clone of the repo.

Build the stdio server
git clone https://github.com/winsznx/holdout
cd holdout
pnpm install
pnpm --filter @holdout/skill build

HOLDOUT_RULEBOOK is the path to the exported rulebook file. If it is not set, the server says so and returns no rulebook.

Claude Code

stdio
claude mcp add holdout \
  --env HOLDOUT_RULEBOOK=/path/to/holdout-rulebook.json \
  -- node /path/to/holdout/packages/skill/dist/stdio.js
HTTP at https://holdout.timjosh507.workers.dev/api/mcp
claude mcp add --transport http holdout https://holdout.timjosh507.workers.dev/api/mcp \
  --header "x-holdout-rulebook-url: https://example.com/your-rulebook.json"

Over HTTP the server has no file path, so send the rulebook location in the x-holdout-rulebook-url header.

Codex

~/.codex/config.toml
[mcp_servers.holdout]
command = "node"
args = ["/path/to/holdout/packages/skill/dist/stdio.js"]
env = { HOLDOUT_RULEBOOK = "/path/to/holdout-rulebook.json" }

Cursor

.cursor/mcp.json
{
  "mcpServers": {
    "holdout": {
      "command": "node",
      "args": ["/path/to/holdout/packages/skill/dist/stdio.js"],
      "env": { "HOLDOUT_RULEBOOK": "/path/to/holdout-rulebook.json" }
    }
  }
}

OpenClaw

Register the same stdio command, node with the path to dist/stdio.js and the HOLDOUT_RULEBOOK variable, in OpenClaw's MCP server settings.

The Skill file

SKILL.md lives in packages/skill. Copy it into your agent's skills folder so the agent knows to call check_trade before an order preview.

Limits

Market state tags come from the live signal and earnings sources, so they describe now and not the past. If a source is unavailable the card names it and leaves that row out.