Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

OpsecForge

NPM · OPSECFORGE-MCP

Local MCP tools that keep secrets out of agent context: redact files, scan commits, verify webhooks.

Available components

80 Trust /100

Last scanned (21 hours ago)

Scores higher than 65% of npm servers

Category Security

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to cyberdroid2077/opsecforge-tools). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability68
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1333 tokens (~222/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 14 Oct 26 80

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 16 Oct 2026 · Analysed npm/opsecforge-mcp@0.1.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo cyberdroid2077/opsecforge-tools
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/cyberdroid2077/opsecforge-tools/.github/workflows/release-mcp.yml@refs/tags/mcp-v0.1.1
Rekor log index 3248734384
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:6f61b21475e91eea011dd963a96d08707d01cd7dbf6dd90979d3a9b2101f6fd4aff74885bd715b5fc3b104b9f9047c1f81df1209194024d0c18093f97

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 6 exposed · ~1,195 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
file_checksum ~139

Computes the SHA-256 or SHA-512 digest of a local file (regular file, up to 32 MiB) and optionally compares it with an expected value. A match proves only that the file equals whatever the expected value was taken from, so it is only as trustworthy as the source of that value.

NameTypeReqDescription
algorithmstringyesDigest algorithm.
expectedstring–Optional expected digest (hex; "sha256:<hex>" and sha256sum-style "<hex> name" are accepted) to compare against.
pathstringyesPath of the file to hash (regular file, up to 32 MiB).

No output schema declared.

No examples provided.

inspect_jwt ~205

Decodes a JWT locally and returns its header, claims (field values whose names look like secrets are masked), time-claim status (exp, nbf, iat) and risk notes such as alg none, HMAC algorithms that cannot be verified offline, missing exp, and jku/jwk/x5u key-injection headers. DECODING IS NOT VERIFICATION: this tool has no key, never checks the signature and cannot tell you the token is genuine. Prefer token_env (the NAME of an environment variable) so the raw token does not pass through the model; a token passed as `token` is already in the context. The claims returned are in the model context either way.

NameTypeReqDescription
tokenstring–The JWT itself. Passing it here puts it in the model context; use token_env when possible.
token_envstring–NAME of an environment variable that holds the JWT. Preferred: the raw token then never passes through the model.

No output schema declared.

No examples provided.

redact_file ~195

Reads a local text file on this machine and returns its content with secrets (API keys, tokens, passwords, private keys, connection-string credentials, JWTs, cookies) replaced by [REDACTED], plus a findings summary (type, count, line numbers). The original values are read inside the local MCP server process only and are never returned, so use this instead of Read or cat for .env files, config files, logs, key files and similar. Pass a path, not file contents. Only regular files are accepted (no directories, pipes or devices), up to 1 MiB, and binary files are refused. The response starts with a notice that the original values did not leave the machine or reach the model. Redaction is heuristic and can miss custom formats.

NameTypeReqDescription
pathstringyesPath of the local text file to read (absolute, relative to the server working directory, or starting with ~/).

No output schema declared.

No examples provided.

redact_text ~137

Redacts secrets in text you ALREADY HAVE (for example before pasting logs into an issue, ticket, chat message or commit message) and returns the redacted copy with a findings summary. Honest limitation: the text you pass as the argument is already in the model context, and calling this tool does not remove it from there; it only produces a safer copy to share outward. To avoid putting a secret into the context at all, use redact_file with a path instead. Heuristic: can miss custom formats.

NameTypeReqDescription
textstringyesText to redact. NOTE: this text is already in your context; see the tool description.

No output schema declared.

No examples provided.

scan_secrets ~181

Pre-commit check. Scans files or directories (paths) and/or the lines added in the staged git diff (staged: true) for known secret patterns. Lists only file:line, the secret type and a masked preview (at most the first 4 characters of values of 20+ characters; short values are shown as an ellipsis), never the original value. Provide paths, staged, or both. Heuristic: a clean result is not proof that nothing sensitive is present.

NameTypeReqDescription
pathsarray–Files or directories to scan. Directories are walked recursively (skipping .git, node_modules, build output and symlinks; at most 2000 files).
stagedboolean–When true, scan only the lines added in `git diff --cached` (the staged changes) in the server working directory.

No output schema declared.

No examples provided.

verify_webhook ~338

Verifies a GitHub, Stripe or generic HMAC webhook signature locally and explains why a mismatch happened. The signing secret is read ONLY from the environment variable named in secret_env; there is no parameter for a plaintext secret and one is rejected if supplied. The body is read as raw bytes from body_path. Returns match / no match plus diagnostics: whether the signature header is well-formed, whether the Stripe timestamp is outside the tolerance, whether the body looks reformatted (trailing newline, CRLF, re-serialized or pretty-printed JSON) and common secret mistakes (whitespace, wrong key type). It sends nothing over the network and never returns the secret or a computed signature.

NameTypeReqDescription
algorithmstring–HMAC hash for provider "generic" (default sha256). Not used by github or stripe.
body_pathstringyesPath to a file holding the RAW request body exactly as received (not re-serialized). Read as bytes, up to 10 MiB.
providerstringyesgithub: X-Hub-Signature-256 (sha256=<hex>). stripe: Stripe-Signature header (t=...,v1=...). generic: plain HMAC over the body, hex (or base64) signature.
secret_envstringyesNAME of the environment variable that holds the signing secret (for example GITHUB_WEBHOOK_SECRET). Never the secret itself.
signaturestringyesThe signature header value as received. It is not a secret.
tolerance_secondsnumber–Stripe only: maximum allowed age of the signed timestamp in seconds (default 300).

No output schema declared.

No examples provided.

Install

How do I install the OpsecForge MCP server?

OpsecForge runs locally as an npm package, launched with npx -y opsecforge-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · opsecforge-mcp

# add to Claude Code
claude mcp add cyberdroid2077-opsecforge -- npx -y opsecforge-mcp
Common questions

What is the OpsecForge MCP server?

OpsecForge is an MCP server listed in the public MCP registry as io.github.cyberdroid2077/opsecforge. Local MCP tools that keep secrets out of agent context: redact files, scan commits, verify webhooks. This page covers its npm package (opsecforge-mcp).

Is the OpsecForge MCP server safe to use?

OpsecForge scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 16 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the OpsecForge MCP server expose?

OpsecForge exposes 6 tools: redact_file, scan_secrets, redact_text, verify_webhook, inspect_jwt, file_checksum. Their descriptions and schemas cost roughly 1,195 tokens of context every time the server is loaded.

Is the OpsecForge MCP server still maintained?

OpsecForge is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the OpsecForge MCP server under?

OpsecForge declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.