{"name":"io.github.R2Rlabs/reins","slug":"r2rlabs-reins","title":"Reins","description":"Risk limits and an audit log for AI agents trading Hyperliquid, enforced outside the model.","url":"https://mcp.market/server/r2rlabs-reins","rating":null,"grade":"C","score":55,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":3,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":null,"website":"https://www.npmjs.com/package/@r2rlabs/reins","version":"0.1.4","remotes":[],"packages":[{"registryType":"npm","identifier":"@r2rlabs/reins","version":"0.1.4","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Markets the agent may trade, comma separated, e.g. BTC,ETH. Every other market is refused.","isRequired":true,"format":"string","placeholder":"BTC,ETH","name":"REINS_SYMBOLS"},{"description":"Largest position per market, in USD.","isRequired":true,"format":"number","placeholder":"5000","name":"REINS_MAX_POSITION_USD"},{"description":"Realised loss in a UTC day after which new risk is refused.","isRequired":true,"format":"number","placeholder":"500","name":"REINS_DAILY_LOSS_USD"},{"description":"Largest total exposure as a multiple of account value.","format":"number","default":"3","name":"REINS_MAX_LEVERAGE"},{"description":"paper (live prices, simulated fills, nothing signed) or live.","format":"string","default":"paper","choices":["paper","live"],"name":"REINS_MODE"},{"description":"Hyperliquid network for prices and, in live mode, orders. Mainnet spends real money.","format":"string","default":"testnet","choices":["testnet","mainnet"],"name":"REINS_NETWORK"},{"description":"true to refuse any order that adds risk without a stop-loss.","format":"boolean","default":"false","name":"REINS_REQUIRE_STOP_LOSS"},{"description":"Decision log, one JSON line per action with the agent's stated reason. In memory if unset.","format":"filepath","name":"REINS_LOG_FILE"},{"description":"Where the paper account is kept between runs. In memory if unset.","format":"filepath","name":"REINS_PAPER_FILE"},{"description":"Live mode: the Hyperliquid account traded. Approve Reins' 2 bp builder fee from it first: npx @r2rlabs/reins approve-builder","format":"string","name":"REINS_ACCOUNT_ADDRESS"},{"description":"Live mode: an API wallet's key, which can trade but not withdraw. Never the account's own key.","format":"string","isSecret":true,"name":"REINS_PRIVATE_KEY"}]}],"tools":[{"name":"cancel_order","description":"Cancel a resting order by its exchange order id.","write_action":true,"price_micros":0,"input_schema":null},{"name":"close_position","description":"Flatten the whole position in one symbol with a reduce-only order that","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_book","description":"Top of book for a symbol: best bid, best ask, spread, and the nearest","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_candles","description":"Recent price history for a symbol as candles, oldest first: open, high,","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_limits","description":"Report the risk limits this account trades under and how much room is left","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_positions","description":"Open positions with their signed notional in USD (negative is short),","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_recent_decisions","description":"Your own recent actions and the reasons you gave for them, most recent","write_action":false,"price_micros":0,"input_schema":null},{"name":"place_order","description":"Place an order sized in USD notional. Every order is checked against the","write_action":true,"price_micros":0,"input_schema":null},{"name":"set_stop_loss","description":"Protect an open position with a stop-loss held on the exchange: once the price","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":55,"grade":"C","scanned_at":"2026-09-22T05:11:01.898Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-22T05:11:01.859Z","components":{"code":{"score":25,"max":25,"notes":["49 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@r2rlabs/reins","version":"0.1.4","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-09-22T03:42:51.684Z"}],"repo":{"found":false},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":"MIT","lastPushAt":null,"score":3}}}},"grade_history":[],"reviews":[]}