Robin: AI-Powered Dark Web OSINT
Dark web OSINT over Tor: search onion engines, scrape pages, report with your own model.
Local MCP tools that keep secrets out of agent context: redact files, scan commits, verify webhooks.
Pick the AI app you use, then copy the settings.
Passed 3/3 checks · Runs on your computer
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude, with some setup first
Install Node.js on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
One time only; it works for every server that needs Node.js
SettingsDeveloperEdit Config
Checking the commands · copy buttons appear once they pass
Use OpsecForge and tell me what you can do for me, then show me one thing✓ If Claude says it is using OpsecForge or shows a OpsecForge tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
ChatGPT cannot connect OpsecForge yet
OpsecForge runs on your computer, but ChatGPT can only connect servers that run on the web
A · Use an app that can connect OpsecForge
B · Others in Cybersecurity that work with ChatGPT
Picked from the most used in the same category, only ones that connect by address with no key
Works with Claude Code, with some setup first
Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Mac: press Command+Space and type Terminal · Windows: open PowerShell
Checking the commands · copy buttons appear once they pass
You should see OpsecForge listed as connected
Use OpsecForge and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using OpsecForge or shows a OpsecForge tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor, with some setup first
Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Checking the commands · copy buttons appear once they pass
Use OpsecForge and tell me what you can do for me, then show me one thing✓ If Cursor says it is using OpsecForge or shows a OpsecForge tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code, with some setup first
Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Checking the commands · copy buttons appear once they pass
Use OpsecForge and tell me what you can do for me, then show me one thing✓ If VS Code says it is using OpsecForge or shows a OpsecForge tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
JSON settings are under “For developers” below
Claude Code
Checking the commands · copy buttons appear once they pass
Claude Desktop (claude_desktop_config.json)
Checking the commands · copy buttons appear once they pass
Cursor (~/.cursor/mcp.json)
Checking the commands · copy buttons appear once they pass
VS Code (mcp.json)
Checking the commands · copy buttons appear once they pass
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
npm: opsecforge-mcpBased on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 13, 2026
The registry name was verified with the GitHub account cyberdroid2077, which owns the repo
Code last changed yesterday
Uses MIT
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
No reviews yet
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed yesterday, and the latest version (0.1.1) reached the registry 30 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Robin: AI-Powered Dark Web OSINT, HOL Guard, SonarQube MCP Server
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Dark web OSINT over Tor: search onion engines, scrape pages, report with your own model.
Local-first AI agent security evidence and approval workflows through HOL Guard's stdio MCP server.
Analyze code quality and security with SonarQube Server or Cloud directly in AI assistants.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A local MCP server (stdio) for AI coding agents such as Claude Code, Codex and Cursor. It helps keep secrets out of the model context: the agent passes a file path or an environment variable name, the work happens on your machine, and only redacted or derived results come back.
Read the limitations below before relying on this. Redaction is heuristic, the Claude Code hook is a best-effort guard rather than a sandbox, and Codex and Cursor have no hook at all.
Requires Node.js 20 or newer.
/plugin marketplace add cyberdroid2077/opsecforge-tools
/plugin install opsecforge@opsecforge
The plugin adds three things:
npx -y opsecforge-mcp@0.1), exposed as mcp__plugin_opsecforge_opsecforge__*;PreToolUse hook that blocks Read, Grep and Bash calls that would directly read .env, *.pem, *.key, id_rsa*, id_ed25519*, credentials, *.p12 and similar files, and tells the model to use redact_file instead (.env.example, .env.sample, .env.template and *.pub are allowed);The hook's onFailure: "block" setting needs a recent Claude Code (v2.1.295 or later according to the hooks documentation). On older versions a hook that times out may be skipped instead of blocking.
claude mcp add opsecforge -- npx -y opsecforge-mcp
Add to ~/.codex/config.toml:
[mcp_servers.opsecforge]
command = "npx" args = ["-y", "opsecforge-mcp"]
(or codex mcp add opsecforge -- npx -y opsecforge-mcp).
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": { "opsecforge": { "type": "stdio", "command": "npx", "args": ["-y", "opsecforge-mcp"] } } }
verify_webhook and inspect_jwt read secrets from environment variables by name. The variable must exist in the environment of the MCP server process. Export it in the shell that starts the agent, or add an env entry to the server's configuration in your client. Do not paste the secret into chat and do not commit it.
Optional hardening: set OPSECFORGE_MCP_ROOTS to a path-delimiter-separated list of directories (for example /home/me/projects) and the file tools refuse paths outside them.
Every tool is read-only, runs locally, and returns readable errors instead of crashing the server.
redact_file({ path })Reads a local text file and returns it with secrets replaced by [REDACTED], plus a findings summary: type, count and line numbers (of the original file). Original values are never returned, and no part of a value is shown. The response starts with a notice that the original values did not leave the machine or reach the model.
Only regular files (no directories, pipes, devices), at most 1 MiB; larger files fail with an explicit message. Binary files are refused. Detects, among others: private key blocks (including unterminated ones, which are masked from BEGIN to the end of the text), sensitive named fields (password, token, secret, *_KEY, ...), Authorization / cookie / API-key headers, URL credentials, AWS, Stripe, GitHub, GitLab, Slack, Google, OpenAI, Anthropic and SendGrid key formats, and JWT-shaped strings.
scan_secrets({ paths?, staged? })Pre-commit check. Scans files or directories (paths) and/or only the lines added in git diff --cached (staged: true). Lists file:line, the secret type and a masked preview: the first 4 characters for values of 20 or more characters, otherwise just …. Never returns an original value. Directory scans skip .git, node_modules, build output and symlinks, read at most 2000 files of at most 1 MiB, and skip binaries.
redact_text({ text })Redacts text the agent already has, for example before pasting logs into an issue or ticket. That text is already in the model context; this tool cannot take it back out. It only produces a safer copy to share outward. To keep a secret out of the context in the first place, use redact_file with a path.
verify_webhook({ provider, body_path, secret_env, signature, algorithm?, tolerance_seconds? })Verifies a github (X-Hub-Signature-256), stripe (Stripe-Signature) or generic HMAC (hex or base64, sha1/sha256/sha512) signature offline.
secret_env. There is no plaintext secret parameter; any unknown parameter (for example secret) is rejected with an explanation, and the value is not echoed.body_path as raw bytes (up to 10 MiB). Save it exactly as received.whsec_ signing secret is needed.inspect_jwt({ token_env?, token? })Decodes a JWT and returns the header, the claims, time-claim status (exp, nbf, iat, auth_time) and risk notes: alg: none, HMAC algorithms that cannot be verified offline, a missing exp, jku/jwk/x5u headers. Decoding is not verification: the tool has no key and never checks the signature. Prefer token_env (the variable name) so the raw token does not pass through the model; a token parameter is already in the context. Claim values under secret-looking field names are masked, but the claims you get back are in the context either way.
file_checksum({ path, algorithm, expected? })SHA-256 or SHA-512 of a local file (up to 32 MiB), optionally compared with an expected value ( , sha256: and sha256sum output are accepted). A match proves only that the file equals whatever the expected value came from.
python app.py that opens .env, make, docker compose config), grep -r over a directory that contains a .env, commands that use shell variables or command output as file names (cat "$FILE", find . -name .env | xargs cat), or anything a language runtime does inside a program. Treat it as a speed bump that catches the common, accidental case.Read deny rules for your secret paths in settings.json (check the permissions documentation for the exact pattern syntax), for example: { "permissions": { "deny": ["Read(./.env)", "Read(./.env.local)", "Read(**/*.pem)", "Read(~/.ssh/**)"] } }
Deny rules also have gaps and can produce prompts or false positives; test them.
redact_text and inspect_jwt with token cannot keep what you hand them out of the context.scan_secrets is not a replacement for a dedicated scanner with a maintained rule set in CI.Browser-local versions of these checks and the background behind them, all at opsecforge.com:
MIT