Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

Reins

de R2Rlabsversión 0.1.8i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.R2Rlabs/hyperliquid-reins

Instalar

Resumen

Descripción del creador (original en inglés)

Risk limits and an audit log for AI agents trading Hyperliquid, enforced outside the model.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Contabilidad, finanzas e impuestos
  • Debes completar: REINS_SYMBOLS, REINS_MAX_POSITION_USD, REINS_DAILY_LOSS_USD, REINS_PRIVATE_KEY

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

  • Revisiones básicas: 1 de 1 superadas
  • Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
  • Debes completar tú: REINS_SYMBOLS, REINS_MAX_POSITION_USD, REINS_DAILY_LOSS_USD, REINS_MAX_LEVERAGE, REINS_MODE, REINS_NETWORK, REINS_REQUIRE_STOP_LOSS, REINS_LOG_FILE, REINS_PAPER_FILE, REINS_ACCOUNT_ADDRESS, REINS_PRIVATE_KEY

Los valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.

Necesitas

  • npmNode.js instalado (para el comando npx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "hyperliquid-reins": {
      "command": "npx",
      "args": [
        "-y",
        "@r2rlabs/reins"
      ],
      "env": {
        "REINS_SYMBOLS": "your-value",
        "REINS_MAX_POSITION_USD": "your-value",
        "REINS_DAILY_LOSS_USD": "your-value",
        "REINS_MAX_LEVERAGE": "your-value",
        "REINS_MODE": "your-value",
        "REINS_NETWORK": "your-value",
        "REINS_REQUIRE_STOP_LOSS": "your-value",
        "REINS_LOG_FILE": "your-value",
        "REINS_PAPER_FILE": "your-value",
        "REINS_ACCOUNT_ADDRESS": "your-value",
        "REINS_PRIVATE_KEY": "your-value"
      }
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add hyperliquid-reins --env REINS_SYMBOLS=your-value --env REINS_MAX_POSITION_USD=your-value --env REINS_DAILY_LOSS_USD=your-value --env REINS_MAX_LEVERAGE=your-value --env REINS_MODE=your-value --env REINS_NETWORK=your-value --env REINS_REQUIRE_STOP_LOSS=your-value --env REINS_LOG_FILE=your-value --env REINS_PAPER_FILE=your-value --env REINS_ACCOUNT_ADDRESS=your-value --env REINS_PRIVATE_KEY=your-value -- npx -y @r2rlabs/reins

Completa los valores vacíos antes de ejecutarlo.

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "hyperliquid-reins": {
      "command": "npx",
      "args": [
        "-y",
        "@r2rlabs/reins"
      ],
      "env": {
        "REINS_SYMBOLS": "your-value",
        "REINS_MAX_POSITION_USD": "your-value",
        "REINS_DAILY_LOSS_USD": "your-value",
        "REINS_MAX_LEVERAGE": "your-value",
        "REINS_MODE": "your-value",
        "REINS_NETWORK": "your-value",
        "REINS_REQUIRE_STOP_LOSS": "your-value",
        "REINS_LOG_FILE": "your-value",
        "REINS_PAPER_FILE": "your-value",
        "REINS_ACCOUNT_ADDRESS": "your-value",
        "REINS_PRIVATE_KEY": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "hyperliquid-reins": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@r2rlabs/reins"
      ],
      "env": {
        "REINS_SYMBOLS": "your-value",
        "REINS_MAX_POSITION_USD": "your-value",
        "REINS_DAILY_LOSS_USD": "your-value",
        "REINS_MAX_LEVERAGE": "your-value",
        "REINS_MODE": "your-value",
        "REINS_NETWORK": "your-value",
        "REINS_REQUIRE_STOP_LOSS": "your-value",
        "REINS_LOG_FILE": "your-value",
        "REINS_PAPER_FILE": "your-value",
        "REINS_ACCOUNT_ADDRESS": "your-value",
        "REINS_PRIVATE_KEY": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Valores que debes completar

  • REINS_SYMBOLS obligatorio env
    Markets the agent may trade, comma separated, e.g. BTC,ETH. Every other market is refused.
  • REINS_MAX_POSITION_USD obligatorio env
    Largest position per market, in USD.
  • REINS_DAILY_LOSS_USD obligatorio env
    Realised loss in a UTC day after which new risk is refused.
  • REINS_MAX_LEVERAGE env
    Largest total exposure as a multiple of account value.
  • REINS_MODE env
    paper (live prices, simulated fills, nothing signed) or live.
  • REINS_NETWORK env
    Hyperliquid network for prices and, in live mode, orders. Mainnet spends real money.
  • REINS_REQUIRE_STOP_LOSS env
    true to refuse any order that adds risk without a stop-loss.
  • REINS_LOG_FILE env
    Decision log, one JSON line per action with the agent's stated reason. In memory if unset.
  • REINS_PAPER_FILE env
    Where the paper account is kept between runs. In memory if unset.
  • REINS_ACCOUNT_ADDRESS env
    Live mode: the Hyperliquid account traded. Approve Reins' 2 bp builder fee from it first: npx @r2rlabs/reins approve-builder
  • REINS_PRIVATE_KEY secreto env
    Live mode: an API wallet's key, which can trade but not withdraw. Never the account's own key.

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub R2Rlabs, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Contabilidad, finanzas e impuestosi

  • Más estrellas que el 0% de los otros 1726 servidores de esta categoría
  • Publicado en el registro más recientemente que el 54% de los otros 1726 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 1726 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro Reins?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

Debes completar: REINS_SYMBOLS, REINS_MAX_POSITION_USD, REINS_DAILY_LOSS_USD, REINS_PRIVATE_KEY

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (0.1.8) llegó al registro hace 34 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: Finance Toolkit, SolidInvoice, Korea Tax Calculator

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Finance Toolkit

de JerBouma

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

Computadora o nube★ 5496MITActualizado anteayer
Instalar

SolidInvoice

de SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

Se ejecuta en la nube★ 981MITActualizado hace 7 días
Instalar

Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.

Se ejecuta en tu computadora★ 97MITActualizado ayer
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

Reins

Let an AI agent trade without giving it the power to lose everything.

npx @r2rlabs/reins init      # adds a paper-trading Reins server to .mcp.json

See it at work: an AI agent trading Hyperliquid on paper, run 2.

The source is on GitHub: R2Rlabs/reins. Every limit in this README is a function you can read.

What Reins is
  • Limits the agent can't argue with. Every order passes checks that live outside the model: position size, leverage, daily loss, which markets it may trade, and a stop-loss on every position. No prompt, clever reasoning or mistake gets around them.
  • A record you can check. Every decision is logged with the reason the agent gave — including the orders it was refused, the times it chose to wait, and what the exchange did without it. You can compare what the agent *said* with what actually *happened*.
  • Somewhere to rehearse. Paper trading on live Hyperliquid prices with realistic fills and fees, using the same tools and limits as live trading.
  • Non-custodial. Your money stays in your own Hyperliquid account. Reins trades through an API wallet, which can place orders but cannot withdraw.
  • Paid for openly. A small builder fee (2 bp) on live orders, shown up front.
What Reins is not
  • Not a trading bot or a strategy. Reins doesn't decide what to trade and won't make an agent profitable. The demo agent is a test drive, not the product.
  • Not an exchange, broker or custodian. It holds no funds and matches no orders; Hyperliquid does that.
  • Not a promise against losses. Limits cap how much can go wrong. They don't make bad trades good, and stops can slip in fast markets.
  • Not financial advice.
  • Not something you have to take on trust. Not the agent's word, and not ours: every action is on the record.
Principles
  1. Limits live outside the model.
  2. The record outranks the reasoning.
  3. Paper before real money.
  4. Your keys, your funds.

Why this exists

Several open-source Hyperliquid MCP servers already exist. They are thin API wrappers: you hand them a private key and hope the model behaves. The gap is everything around that — the limits, the sandbox, the audit trail. That is what this repo is.

Status

Early, but real. 391 tests, no network calls in any of them.

ModuleWhat it does
src/risk.tsThe risk engine — position cap, risk per trade, leverage cap, daily loss halt, allowlist, rate limit
src/client.tsHyperliquid REST client — orders, cancels, book, candles, fills, account state, builder code
src/mcp-server.tsThe agent-facing tools, each risk-checked and logged before anything is sent
src/paper.tsPaper trading — live prices, simulated fills. See below
src/paper-store.tsPersists a paper run across restarts
src/trading-client.tsThe interface live and paper both satisfy
src/decision-log.tsAppend-only record of every attempt and its stated reason
src/decision-log-file.tsJSON Lines log on disk
src/bin/cli.tsThe reins command: serve (default), init, approve-builder, live-check, http and stats
src/bin/serve.tsstdio entry point
src/bin/http.tsreins http — the HTTP server: token, binding, JSON
src/http-api.tsThe same nine tools as HTTP routes, for bots that do not speak MCP
src/runtime.tsThe limits, client, log and banner both front doors share
src/init.tsreins init — writes a paper-mode server entry into .mcp.json
src/builder-fee.tsReins' builder fee, and the approval live trading needs before it starts
src/approve-builder.tsreins approve-builder — the user approves the builder fee in their own wallet
src/live-check.tsreins live-check — proves the live exchange accepts what Reins sends
src/platform-stats.tsreins stats — accounts, trades, volume and fees through Reins' builder code
src/lz4.tsReads Hyperliquid's LZ4-compressed data files, without a dependency
src/builder-approval.tsThe ApproveBuilderFee action: EIP-712 typed data, signature checks
src/format.tsPrice and size formatting to Hyperliquid's tick and lot rules
src/signing.tsL1 action signing, verified against the Python SDK's vectors
src/private-key-signer.tsA Signer backed by a private key
src/signer.tsThe Signer interface plus a stub. See "On signing" below
src/mock-transport.tsIn-memory API stand-in, so agents can be tested without a network
examples/demo-agent/Claude trading on paper through Reins, producing a publishable decision log

All of it works end to end. Going live is now a matter of funding an account and setting REINS_MODE=live with a key.

Going live
REINS_MODE=live

REINS_NETWORK=testnet # mainnet spends real money REINS_ACCOUNT_ADDRESS=0x... # your Hyperliquid account REINS_PRIVATE_KEY=0x... # an API wallet's key, not your account's; omit to stay read-only

On mainnet, approve Reins' 2 bp builder fee once, from the account's own wallet, before the first live session: npx @r2rlabs/reins approve-builder. Until the account has, live mode refuses to start and says so.

Use an API wallet, not your account's own key. Hyperliquid lets an account approve API wallets that can trade for it but cannot withdraw from it — create one on Hyperliquid's API page, signing the approval with your main wallet. Put its key in REINS_PRIVATE_KEY and your account's address in REINS_ACCOUNT_ADDRESS: orders are signed by the API wallet, while positions, fills and stops are read from the account, because under the API wallet's own address the account looks empty. The startup banner names both. Hyperliquid prunes API wallets that expire or are replaced; make a fresh one rather than reusing an old address.

Every account mode works. Hyperliquid starts new accounts in Unified, where the USDC sits in the spot balance and the perps account reads $0; Reins asks the account which mode it is in and, for Unified and Portfolio margin, takes equity from the USDC balance plus the positions' unrealized PnL. Manual accounts are read from perps as before. (A *builder* address is different: it must be in Manual — standard — to earn fees.)

Defaults are deliberately safe: REINS_MODE is paper and REINS_NETWORK is testnet, so trading real funds takes two explicit changes rather than one forgotten variable. Live mode without a key stays read-only instead of failing at the first order, and mainnet prints a loud banner on startup.

The private key is only read in live mode — paper never signs anything, so it is never handed the means to.

See it run

npm run build

npm run demo -- --scripted # free: no API key, live prices, paper fills

With an Anthropic API key, npm run demo runs Claude as the agent under a hard spending cap. See examples/demo-agent for cost, limits and how to publish the result honestly.

The decision log

Every attempted action is appended to a log with the reason the agent gave for it — including the ones the risk limits refused. That is the point. "The agent tried to open six times its position cap at 3am, and here is what it said it was doing" is the most useful thing this system can tell you, and it only exists if refusals are written down.

place_order, close_position and set_stop_loss take a required reason. An optional field gets omitted; a required one gets answered.

Records are JSON Lines — one self-contained object per line, appended, never rewritten. Appends stay cheap as the file grows, a truncated write damages one line instead of the file, and you can query it with ordinary tools:

jq -r 'select(.risk.allowed == false) | [.time, .risk.code, .reason] | @tsv' decisions.jsonl

Each record holds the stated reason, the request, the account context at the time, the risk verdict, and the outcome. Set REINS_LOG_FILE to persist it; without it the log lives in memory and dies with the process.

The exchange also acts on its own: a stop-loss fires, a resting order fills hours after it was placed. Before every tool call Reins compares the account's fills with the log and appends each one it has not seen as an exchange_fill record, whose reason starts "Not an agent decision:" and says whether it was a stop, a resting order, or a fill Reins did not place. Without them the trade that mattered most, the stop that closed it, would be missing from the record. The agent reads them back through get_recent_decisions like anything else.

Two things to be clear about

`reason` is testimony, not ground truth. It is the model's own account of why it acted, captured because reasoning that is not asked for cannot be recovered later. A model can rationalise after the fact, and a confident explanation is not evidence that the explanation is what actually drove the decision. It is extremely useful for debugging and audit. It is not proof.

A failed log write never fails a filled order. If the log cannot be written, the tool still reports success and attaches a warning. An agent told its order failed will place it again — so a lost log line would become a doubled position, which is far worse than the missing line. The risk engine is the safety mechanism; the log is observability.

Paper trading

REINS_MODE=paper (the default) runs the same tools, the same risk engine and the same agent against real prices with simulated fills. Nothing is signed and nothing reaches the exchange.

Paper and live are swapped behind one interface, so an agent cannot tell which one it is talking to — which is the point. A strategy that works on paper runs unchanged on live.

What the simulation models
  • Real book depth. A large order walks levels and pays real slippage instead of filling entirely at the touch.
  • Partial fills when the book is too thin inside the limit price.
  • Taker and maker fees at Hyperliquid's base tier (0.045% / 0.015%), plus any builder fee, so the equity curve is net of what trading actually costs.
  • **Resting orders that only fill when the market trades strictly *through* them**, never merely to them. At your own price you are behind a queue this simulation cannot see; assuming a fill there is the most common way a paper equity curve lies.
  • Fills between polls. Each call checks resting orders against the one-minute candles printed since they were placed, not just the book at that moment, and fills them at the minute the market first went through. Cancelling an order that already filled is refused, as the exchange would. Before this, the demo agent's breakout bid went unfilled under a dip that lasted two minutes, and it then cancelled an order Hyperliquid would already have filled.
What it does not model

The first five flatter the result; the last two can miss a fill either way. All of them are listed rather than buried:

  • Latency — fills are priced off the book as it was when the tool was called
  • Market impact — your order never moves the price or removes liquidity
  • Funding payments on perps
  • Slippage past a stop inside a minute already gone — a stop found triggered in a past candle fills at its trigger, or at the candle's open if the market gapped through it. One triggered right now walks the real book.
  • Mark price — Hyperliquid triggers stops on the mark price; paper uses traded prices, which can differ briefly
  • The minute an order was placed in — candles are only counted from the first minute that opened after it, so a dip in that same minute is missed
  • Orders resting longer than about three days — only the latest 5000 one-minute candles are available, so older stretches go unchec

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx