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

intervals-mcp-with-stryd

v0.12.0

Published

An Intervals.icu MCP server built for Stryd runners — power-based running analysis (a dual PMC with RSS and LBSS), designed so the LLM never does the math.

Readme

English | 日本語

Intervals.icu MCP Server — for Stryd runners

An Intervals.icu MCP (Model Context Protocol) server built for Stryd runners — power-based running analysis (a dual Performance Management Chart with RSS, LBSS), designed so the LLM never does the math. The deterministic numbers (PMC values, cardiac decoupling, ramp rates) are computed server-side; the AI client (Claude Desktop, Codex, …) is left to interpret, not to guess.

It is designed to run locally, for a single athlete (you) — not as a hosted, multi-user service.

What it does

  • Stryd extension (the reason this exists). A second Performance Management Chart computed server-side from a lower-body load metric — LBSS (Lower Body Stress Score) — via EMA, sitting next to Intervals.icu's built-in RSS-based PMC. You get a dual PMC (musculoskeletal load and metabolic load), ILR (Impact Loading Rate) trends, and weekly / phase-level summaries aimed at ultramarathon-style review. The LBSS / ILR custom-field names are configurable (LBSS_FIELD / ILR_FIELD, default StrydLBSSv2 / StrydILR) so a recalibrated or renamed field needs no code change — see INSTALL.md and the field recipes. estimate_critical_impact reverse-estimates Stryd's Critical Impact from your Intervals streams and Critical Power (no Stryd API), so LBSS calibration stays self-contained.
  • Core (any Intervals.icu user). List and inspect activities, wellness, HRV trends, events / planned workouts (read + create / update / delete), athlete summaries, and stream-level analysis (splits, cardiac decoupling, grade-adjusted pace, custom power/HR zones).

The server provides data and math only. It does not decide how you should train — that interpretation comes from a knowledge file you write and load into your AI client. See training-knowledge-template/.

Quick start

Pick the install path that matches your client. Full steps and prerequisites: INSTALL.md.

1. MCPB bundle — Claude Desktop (easiest)

Download the .mcpb bundle from the latest release, double-click to install into Claude Desktop, and fill in the three fields it asks for (Athlete ID, API key, timezone). Your API key is stored in the OS keychain, not in a plaintext file.

2. npx — one-line config (Claude Desktop / Codex / any MCP client)

No clone, no build. Point your client at the published npm package:

{
  "mcpServers": {
    "intervals-stryd": {
      "command": "npx",
      "args": ["-y", "intervals-mcp-with-stryd"],
      "env": {
        "INTERVALS_ATHLETE_ID": "i0000000",
        "INTERVALS_API_KEY": "your-api-key",
        "ATHLETE_TIMEZONE": "Asia/Tokyo",
        "CACHE_DIR": "/absolute/path/to/intervals-cache"
      }
    }
  }
}

CACHE_DIR is optional but recommended under npx: without it the stream cache lands in npx's volatile package cache. See INSTALL.md.

3. From source / Docker (development, HTTP mode)

git clone https://github.com/methylone/Intervals-MCP-Server-with-STRYD.git
cd Intervals-MCP-Server-with-STRYD
npm install
cp .env.example .env      # then fill in your API key, athlete ID, timezone
npm run build

Then point your client at build/index.js over stdio, or run HTTP / Docker — see INSTALL.md. New to this? Hand the repo URL to your AI client and ask it to walk you through installation using the README and INSTALL.md.

Command-line use

The same tools are also available from a shell via the intervals-mcp CLI (no MCP client, no LLM) — useful for automation, piping into jq, and quick checks. It returns raw data only; it does not apply the methodology. See docs/CLI.md.

Documentation

Security & privacy

It talks to one host (intervals.icu), writes only to your Intervals.icu calendar events, never logs your API key, and ships no telemetry. The HTTP transport has no application-layer authentication — run locally over stdio (or MCPB / npx) for personal use and never expose HTTP mode to the public internet. Full details — cache contents, key blast radius, build verification, uninstall — in SECURITY.md.

Contributing

Forks are welcome — take it and make it yours. Pull requests are not actively maintained, so please fork freely rather than expecting timely reviews.

License

AGPL-3.0-or-later. In short: you're free to use, modify, and run this, including commercially — but if you distribute it or run a modified version as a network service, you must release your source under the same license. It cannot be turned into a closed, proprietary product.