Reins MCP
Reins is an open-source MCP server that provides risk limits and an audit log for AI agents trading on Hyperliquid. It enforces constraints such as position size, leverage, and daily loss outside the model, ensuring agents cannot bypass safety rules. It supports paper trading on live prices and logs every decision with the agent's reasoning for transparency and post-trade analysis.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Enforce risk limits on AI trading agents
- Log agent trading decisions and reasons
- Paper trade on live Hyperliquid prices
- Block orders exceeding risk thresholds
Source and maintenance
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
@r2rlabs/reins 0.1.8
{
"version": "0.1.8",
"transport": "stdio",
"identifier": "@r2rlabs/reins",
"runtimeHint": "npx",
"registryType": "npm",
"environmentVariables": [
{
"name": "REINS_SYMBOLS",
"format": "string",
"isRequired": true,
"description": "Markets the agent may trade, comma separated, e.g. BTC,ETH. Every other market is refused.",
"placeholder": "BTC,ETH"
},
{
"name": "REINS_MAX_POSITION_USD",
"format": "number",
"isRequired": true,
"description": "Largest position per market, in USD.",
"placeholder": "5000"
},
{
"name": "REINS_DAILY_LOSS_USD",
"format": "number",
"isRequired": true,
"description": "Realised loss in a UTC day after which new risk is refused.",
"placeholder": "500"
},
{
"name": "REINS_MAX_LEVERAGE",
"format": "number",
"default": "3",
"description": "Largest total exposure as a multiple of account value."
},
{
"name": "REINS_MODE",
"format": "string",
"choices": [
"paper",
"live"
],
"default": "paper",
"description": "paper (live prices, simulated fills, nothing signed) or live."
},
{
"name": "REINS_NETWORK",
"format": "string",
"choices": [
"testnet",
"mainnet"
],
"default": "testnet",
"description": "Hyperliquid network for prices and, in live mode, orders. Mainnet spends real money."
},
{
"name": "REINS_REQUIRE_STOP_LOSS",
"format": "boolean",
"default": "false",
"description": "true to refuse any order that adds risk without a stop-loss."
},
{
"name": "REINS_LOG_FILE",
"format": "filepath",
"description": "Decision log, one JSON line per action with the agent's stated reason. In memory if unset."
},
{
"name": "REINS_PAPER_FILE",
"format": "filepath",
"description": "Where the paper account is kept between runs. In memory if unset."
},
{
"name": "REINS_ACCOUNT_ADDRESS",
"format": "string",
"description": "Live mode: the Hyperliquid account traded. Approve Reins' 2 bp builder fee from it first: npx @r2rlabs/reins approve-builder"
},
{
"name": "REINS_PRIVATE_KEY",
"format": "string",
"description": "Live mode: an API wallet's key, which can trade but not withdraw. Never the account's own key."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"reins-mcp": {
"command": "npx",
"args": [
"-y",
"@r2rlabs/reins@0.1.8"
],
"env": {
"REINS_SYMBOLS": "<YOUR_REINS_SYMBOLS>",
"REINS_MAX_POSITION_USD": "<YOUR_REINS_MAX_POSITION_USD>",
"REINS_DAILY_LOSS_USD": "<YOUR_REINS_DAILY_LOSS_USD>",
"REINS_MAX_LEVERAGE": "<YOUR_REINS_MAX_LEVERAGE>",
"REINS_MODE": "<YOUR_REINS_MODE>",
"REINS_NETWORK": "<YOUR_REINS_NETWORK>",
"REINS_REQUIRE_STOP_LOSS": "<YOUR_REINS_REQUIRE_STOP_LOSS>",
"REINS_LOG_FILE": "<YOUR_REINS_LOG_FILE>",
"REINS_PAPER_FILE": "<YOUR_REINS_PAPER_FILE>",
"REINS_ACCOUNT_ADDRESS": "<YOUR_REINS_ACCOUNT_ADDRESS>",
"REINS_PRIVATE_KEY": "<YOUR_REINS_PRIVATE_KEY>"
}
}
}
}Cline
{
"mcpServers": {
"reins-mcp": {
"command": "npx",
"args": [
"-y",
"@r2rlabs/reins@0.1.8"
],
"env": {
"REINS_SYMBOLS": "<YOUR_REINS_SYMBOLS>",
"REINS_MAX_POSITION_USD": "<YOUR_REINS_MAX_POSITION_USD>",
"REINS_DAILY_LOSS_USD": "<YOUR_REINS_DAILY_LOSS_USD>",
"REINS_MAX_LEVERAGE": "<YOUR_REINS_MAX_LEVERAGE>",
"REINS_MODE": "<YOUR_REINS_MODE>",
"REINS_NETWORK": "<YOUR_REINS_NETWORK>",
"REINS_REQUIRE_STOP_LOSS": "<YOUR_REINS_REQUIRE_STOP_LOSS>",
"REINS_LOG_FILE": "<YOUR_REINS_LOG_FILE>",
"REINS_PAPER_FILE": "<YOUR_REINS_PAPER_FILE>",
"REINS_ACCOUNT_ADDRESS": "<YOUR_REINS_ACCOUNT_ADDRESS>",
"REINS_PRIVATE_KEY": "<YOUR_REINS_PRIVATE_KEY>"
}
}
}
}VS Code
{
"servers": {
"reins-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@r2rlabs/reins@0.1.8"
],
"env": {
"REINS_SYMBOLS": "<YOUR_REINS_SYMBOLS>",
"REINS_MAX_POSITION_USD": "<YOUR_REINS_MAX_POSITION_USD>",
"REINS_DAILY_LOSS_USD": "<YOUR_REINS_DAILY_LOSS_USD>",
"REINS_MAX_LEVERAGE": "<YOUR_REINS_MAX_LEVERAGE>",
"REINS_MODE": "<YOUR_REINS_MODE>",
"REINS_NETWORK": "<YOUR_REINS_NETWORK>",
"REINS_REQUIRE_STOP_LOSS": "<YOUR_REINS_REQUIRE_STOP_LOSS>",
"REINS_LOG_FILE": "<YOUR_REINS_LOG_FILE>",
"REINS_PAPER_FILE": "<YOUR_REINS_PAPER_FILE>",
"REINS_ACCOUNT_ADDRESS": "<YOUR_REINS_ACCOUNT_ADDRESS>",
"REINS_PRIVATE_KEY": "<YOUR_REINS_PRIVATE_KEY>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"reins-mcp": {
"command": "npx",
"args": [
"-y",
"@r2rlabs/reins@0.1.8"
],
"env": {
"REINS_SYMBOLS": "<YOUR_REINS_SYMBOLS>",
"REINS_MAX_POSITION_USD": "<YOUR_REINS_MAX_POSITION_USD>",
"REINS_DAILY_LOSS_USD": "<YOUR_REINS_DAILY_LOSS_USD>",
"REINS_MAX_LEVERAGE": "<YOUR_REINS_MAX_LEVERAGE>",
"REINS_MODE": "<YOUR_REINS_MODE>",
"REINS_NETWORK": "<YOUR_REINS_NETWORK>",
"REINS_REQUIRE_STOP_LOSS": "<YOUR_REINS_REQUIRE_STOP_LOSS>",
"REINS_LOG_FILE": "<YOUR_REINS_LOG_FILE>",
"REINS_PAPER_FILE": "<YOUR_REINS_PAPER_FILE>",
"REINS_ACCOUNT_ADDRESS": "<YOUR_REINS_ACCOUNT_ADDRESS>",
"REINS_PRIVATE_KEY": "<YOUR_REINS_PRIVATE_KEY>"
}
}
}
}Let your agent find its tools
Find servers like Reins MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.