npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

honest-risk-mcp

v1.0.0

Published

MCP server for the Honest Risk API — position sizing and pre-trade gates that refuse, and say why

Readme

honest-risk-mcp

MCP server for the Honest Risk API — position sizing and pre-trade gates that refuse, and say why.

Hand any position-size calculator a trade with no stop and it will still hand you a size. That number is the most dangerous output in the category, because it looks like an answer — a position without a defined stop has unbounded loss, so no size puts it inside a risk limit. This refuses, and names the reason.

A blocked result renders no numbers at all. Printing a size next to a refusal invites exactly the misread this exists to prevent, and there is a test that fails if it ever does.

Install

{
  "mcpServers": {
    "honest-risk": {
      "command": "npx",
      "args": ["-y", "honest-risk-mcp"],
      "env": {
        "RAPIDAPI_KEY": "your-key"
      }
    }
  }
}

Works with any MCP client — Claude Desktop, Claude Code, Cursor, Cline, Windsurf.

Tools

| Tool | Question it answers | |---|---| | risk_limits | What are the rules, and what does each govern | | position_size | How large may this position be, and which limit is binding | | pre_trade_check | May it be opened, given what is already open | | circuit_breaker | Should trading halt on the last 24h | | go_live_check | Has this strategy earned the right to real money |

A note for agents using this

A BLOCKED result is a valid answer, not an error to route around. Retrying with looser limits until the check passes defeats the entire purpose — and if you do loosen them at a user's request, say so when reporting the result. The server's own instructions say this too, so a well-behaved client should already be doing it.

The gate that catches the most strategies

go_live_check returns every failure at once. Sample size is the one most often skipped — a Sharpe of 2.8 over 6 closed trades clears every other bar and means nothing:

❌ NOT CLEARED for real money.
- Only 6 closed trades in the sample. Below 30, risk-adjusted metrics are
  noise rather than evidence.

Limits are yours, but not silently

Every limit is overridable per request. Loosen one past the point where it stops constraining anything and the response carries a LIMIT_RELAXED note. Bounds are enforced in the tool schema, so an impossible rule set fails before a network call — and a typo'd limit name is rejected rather than silently falling back to a default.

Configuration

| Variable | Default | Purpose | |---|---|---| | RAPIDAPI_KEY | — | Marketplace subscription key | | RAPIDAPI_HOST | API host | Override when calling through a different gateway | | HONEST_RISK_API_URL | production Worker | Point at a different deployment | | HONEST_RISK_TIMEOUT_MS | 30000 | Request timeout |

Not investment advice

These are arithmetic checks against limits you supply. Passing them means a trade is inside your own rules, not that it is a good trade.

License

MIT