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

@securitychecks/mcp

v0.4.0

Published

MCP server for SecurityChecks - verify security invariants via AI assistants

Readme

@securitychecks/mcp

Security verification for AI-assisted development — MCP server for backend security invariant checks.

npm version

MCP server that lets Claude verify security invariants in your code — auth enforcement, injection safety, access control, webhook idempotency.

What is this?

Your AI assistant writes code. This gives it the ability to review that code for production-readiness.

The loop: Copilot/Cursor writes → Claude reviews via MCP → Ship with confidence.

Claude can now check for the patterns that cause production incidents, based on what staff engineers actually catch in review.

Installation

npm install -g @securitychecks/mcp

Usage with Claude Code

Add to your Claude Code MCP configuration:

{
  "mcpServers": {
    "scheck": {
      "command": "scheck-mcp",
      "args": [],
      "env": {
        "SCHECK_MCP_ALLOWED_ROOTS": "."
      }
    }
  }
}

Allowed roots (required)

For safety, scheck-mcp will only run inside the allowed roots. If you don’t set SCHECK_MCP_ALLOWED_ROOTS and the server is not started inside a git repository, it will refuse to scan.

Available Tools

scheck_run

Run scheck on the codebase.

Arguments:
- path (optional): Target path to audit
- include_context (optional): Include code context snippets in results
- max_findings (optional): Limit number of findings returned (default: 200)
- only (optional): Only run specific invariant checks by ID
- skip (optional): Skip specific invariant checks by ID

scheck_list_findings

List current findings from the last run.

Arguments:
- severity (optional): Filter by severity (P0, P1, P2)
- include_context (optional): Include code context snippets in results
- max_findings (optional): Limit number of findings returned (default: 200)

scheck_explain

Explain an invariant - what a staff engineer would say about it.

Arguments:
- invariant_id: The invariant to explain (e.g., "AUTHZ.SERVICE_LAYER.ENFORCED")

scheck_list_invariants

List all patterns a staff engineer checks for.

scheck_generate_test

Generate a test skeleton to prove an invariant is satisfied.

Arguments:
- invariant_id: The invariant to generate a test for
- framework (optional): Test framework (jest, vitest, playwright)
- context (optional): Extra context to generate a more targeted test

scheck_feedback

Report whether a finding was a true positive or false positive.

Arguments:
- invariant_id: Invariant ID (e.g., AUTHZ.SERVICE_LAYER.ENFORCED)
- verdict: true_positive or false_positive
- reason (optional): not_applicable, acceptable_risk, wrong_location, outdated_pattern, missing_context, other

Example Session

User: Check my code for issues a senior engineer would catch

Claude: [calls scheck_run]

Found 2 issues a staff engineer would flag:

1. **AUTHZ.SERVICE_LAYER.ENFORCED** (P0)
   Service "MembershipService" has exports without auth checks
   Location: src/services/membership.ts:12

   A staff engineer would ask: "What happens when a background
   job calls removeMember() directly, bypassing the route?"

2. **WEBHOOK.IDEMPOTENT** (P0)
   Webhook handler missing idempotency check
   Location: src/api/webhooks/stripe.ts:45

   A staff engineer would ask: "What happens when Stripe
   retries this webhook?"

User: Explain the webhook issue

Claude: [calls scheck_explain with invariant_id="WEBHOOK.IDEMPOTENT"]

Webhooks can be delivered multiple times. Without idempotency,
you might double-charge customers, send duplicate emails, or
corrupt data...

Why MCP?

AI writes code fast but doesn't reason about production scenarios:

  • Webhook retries → double-charges
  • Internal service calls → auth bypass
  • Transaction rollbacks → phantom emails

This MCP server gives Claude the ability to catch these patterns — the things AI-generated code routinely misses.

Enterprise

For teams with compliance requirements:

  • Audit trails: Every AI-assisted review is logged
  • Local analysis: SOC2 compliant — no source code transmission
  • Consistent patterns: Same staff check for all developers

License

Apache-2.0. See LICENSE for details.