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

@cronwatch/mcp

v0.12.1

Published

MCP server for CronWatch. Lets Claude Code, Cursor and other agents list jobs, read failures, run a check and silence alerts in an app that uses @cronwatch/sdk.

Readme

@cronwatch/mcp

An MCP server for apps that use @cronwatch/sdk. It talks to the JSON API the app mounts with cw.routes(), so Claude Code, Cursor or any MCP client can list jobs, read a failing run's error and output, run a check, and silence a job during a fix. Every port serves the same API at the same paths, so it works against those apps too: the Ruby gem's Cronwatch::Web, the Python package's cw.routes() (or cronwatch.django), the PHP package's $cw->routes() (and its Laravel, Symfony, WordPress, Drupal and Craft CMS integrations), the Go module's cw.Routes(), the Rust crate's cw.routes(options), nested in axum or served as a tower service, the Elixir package's Cronwatch.Web, forwarded to from a Phoenix router, the Java library's cw.routes(), served by its Spring Boot starter, a servlet filter or the JDK's own server, and the .NET package's cw.Routes(), mapped with app.MapCronwatch() in ASP.NET Core. Its end-to-end tests drive it against each port's dashboard as well as the SDK's, when CRONWATCH_TEST_RUBY, CRONWATCH_TEST_PYTHON, CRONWATCH_TEST_PHP, CRONWATCH_TEST_GO, CRONWATCH_TEST_RUST, CRONWATCH_TEST_ELIXIR, CRONWATCH_TEST_JAVA or CRONWATCH_TEST_DOTNET is set.

claude mcp add cronwatch \
  -e CRONWATCH_URL=https://app.example.com/cronwatch \
  -e CRONWATCH_TOKEN=your-token \
  -- npx -y @cronwatch/mcp

Any stdio MCP client:

{
  "mcpServers": {
    "cronwatch": {
      "command": "npx",
      "args": ["-y", "@cronwatch/mcp"],
      "env": { "CRONWATCH_URL": "https://app.example.com/cronwatch", "CRONWATCH_TOKEN": "your-token" }
    }
  }
}

Tools

| Tool | | |---|---| | list_jobs | every job with health, schedule, last run and next due | | get_job | one job with recent runs: errors, output tails, metrics | | run_check | look for missed and stuck runs now and send due alerts | | silence_job, unsilence_job | pause and resume alerts for a job | | forget_job | remove a job that no longer exists in the code | | get_setup_guide | the code to add CronWatch to a job |

Give the token through CRONWATCH_TOKEN, as above. The --url and --token flags still work, but a flag is visible to anyone who can list processes (ps), so keep the token in the environment. Node 22 or newer.

list_jobs, get_job and get_setup_guide are marked read-only; silence_job and forget_job are marked destructive, so clients that ask before destructive tools will ask. A run's error and output are written by the job, so tool results label them as untrusted data for the model to read, not follow.

The token grants everything the dashboard can do. Docs: cronwatch.dev/docs/mcp. MIT.