REA
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Runs Foundry tests and builds; returns compact, structured failures to AI coding agents
Pick the AI app you use, then copy the settings.
Passed 3/3 checks · Runs on your computer · ✓ Commands checked Nov 13, 2026
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
{
"mcpServers": {
"forge-test": {
"command": "npx",
"args": [
"-y",
"forge-test-mcp"
]
}
}
}Use Forge Test MCP and tell me what you can do for me, then show me one thing✓ If Claude says it is using Forge Test MCP or shows a Forge Test MCP 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 Forge Test MCP yet
Forge Test MCP runs on your computer, but ChatGPT can only connect servers that run on the web
A · Use an app that can connect Forge Test MCP
B · Others in Developer tools 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
claude mcp add --scope user forge-test -- npx -y forge-test-mcpYou should see Forge Test MCP listed as connected
Use Forge Test MCP and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using Forge Test MCP or shows a Forge Test MCP 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
Use Forge Test MCP and tell me what you can do for me, then show me one thing✓ If Cursor says it is using Forge Test MCP or shows a Forge Test MCP 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
Use Forge Test MCP and tell me what you can do for me, then show me one thing✓ If VS Code says it is using Forge Test MCP or shows a Forge Test MCP 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
claude mcp add --scope user forge-test -- npx -y forge-test-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"forge-test": {
"command": "npx",
"args": [
"-y",
"forge-test-mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"forge-test": {
"command": "npx",
"args": [
"-y",
"forge-test-mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"forge-test": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"forge-test-mcp"
]
}
}
}These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Based 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 14, 2026
The registry name was verified with the GitHub account vschernoff, which owns the repo
Code last changed 2 days ago
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 2 days ago, and the latest version (0.1.0) reached the registry 19 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: REA, GitHub, Serena MCP: the IDE for your agent
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
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
A powerful toolkit for coding, providing semantic retrieval and editing capabilities.
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.
An MCP server that runs Foundry's forge test and forge build and returns compact, structured results an AI coding agent can act on: for every failing test, its kind, the decoded reason, the fuzz counterexample or invariant call sequence, console logs and a short decoded trace. It speaks standard MCP over stdio and is meant for any MCP client (Claude Code, Codex, Cursor, Claude Desktop, Windsurf, …). So far it has been tested with an MCP test client, not yet inside each of those clients.
When forge did not run the tests (a compile error, no matching tests, a timeout, a missing or unsupported forge, …) the tool says so as an error. It never reports "0 failed" for tests that did not run.
Status: 0.1.0, the first release. See CHANGELOG.md for what is in it
and what is not yet verified.
forge test executes the project's Solidity with your user's rights. Use this server only on projects you would test in a terminal yourself.--allow-ffi, even when foundry.toml enables it. forge runs with --offline, but tests can still reach the network themselves, for example through fork cheatcodes.Details in Security and trust.
forge 1.8.5 or a later 1.8.x. You install it; this server never installs or updates anything. Newer versions run but are flagged as untested.forge build in a terminal first. The server runs forge with --offline, so it cannot download solc itself.Start the server in your Foundry project (the directory with foundry.toml, or below it). Most clients accept this mcpServers entry:
{
"mcpServers": { "forge-test": { "command": "npx", "args": ["-y", "forge-test-mcp@0.1.0"] } } }
Pin an exact version, as above. Client shortcuts, from each vendor's documentation (checked 2026-10-23, not yet verified by running each client):
.mcp.json at the project root. In interactive sessions Claude Code asks you to approve project servers the first time..cursor/mcp.json, adding "type": "stdio" to the server entry..codex/config.toml (loaded for trusted projects only) or ~/.codex/config.toml: [mcp_servers.forge-test]
command = "npx" args = ["-y", "forge-test-mcp@0.1.0"]
The image contains the server and forge 1.8.6, the official static Alpine build. The build checks the download against pinned SHA-256 digests; those digests were taken from the release's provenance attestation and verified when they were pinned. Mount the project at /project and a cache volume at /cache, where forge keeps the compiler:
docker build -t forge-test-mcp .
docker run --rm -v "$PWD":/project -v forge-test-mcp-cache:/cache --entrypoint forge forge-test-mcp build
The second command installs the project's solc once, online. Then configure the client to run docker with ["run", "-i", "--rm", "-v", " :/project", "-v", "forge-test-mcp-cache:/cache", "forge-test-mcp"]. forge writes out/ and cache/ into the project, so on Linux add --user "$(id -u):$(id -g)" to both commands.
Options go after the package name in args. Only the user sets them; no tool argument can.
| Option | Meaning |
|---|---|
--root | Project directory (default: where the client starts the server). |
--forge | The forge executable (default: forge on PATH). |
--timeout | Stop a forge run after this long (default 300). |
--allow-ffi | Let tests use FFI cheatcodes when foundry.toml enables them. Off by default; see below. |
--strict-version | Refuse forge versions newer than the tested range instead of flagging them. |
| Tool | What it does |
|---|---|
run_tests | Runs forge test. Filters: match_test, match_contract, match_path; fuzz_runs; traces (default true); max_bytes (default 8192). |
explain_failure | Re-runs one test at high verbosity and returns only that test: reason, counterexample, logs, backtrace and the decoded trace. Pass the name as run_tests prints it, e.g. "BankTest.test_transfer()". |
build | Runs forge build and returns compiler errors and warnings with file, line, column and code. force: true recompiles everything. |
None of them sends transactions, deploys, signs or accepts keys.
A failing run_tests result looks like this:
{
"status": "failed", "forge": "1.8.6", "summary": { "suites": 1, "passed": 1, "failed": 1, "skipped": 0 }, "ffi": "disabled", "fuzzRuns": { "configured": 256, "used": 256 }, "notRun": [], "failures": [ { "test": "SupplyInvariantTest.invariant_supplyMatches()", "file": "test/Supply.t.sol", "kind": "invariant", "reason": "supply mismatch: 6683 != 6355", "sequence": { "calls": [ { "call": "Handler.mint(uint256)", "args": "6683", "sender": "0x…022f" }, { "call": "Handler.burnFrom(uint256)", "args": "328", "sender": "0x…054e" } ], "shrunkFrom": 4 }, "trace": [ "[21670] SupplyInvariantTest::invariant_supplyMatches()", " ├─ [0] VM::assertEq(6683, 6355, \"supply mismatch\") [staticcall]", " │ └─ ← [Revert] supply mismatch: 6683 != 6355", " └─ ← [Revert] supply mismatch: 6683 != 6355" ], "traceLinesOmitted": 16 } ], "truncated": null }
Responses stay within the size budget. When there is more than fits, traces and logs go first, then whole failures, and truncated says exactly how many were left out.
The result is an MCP error (isError: true) with a code, a message and a hint:
| Code | Cause |
|---|---|
COMPILE_FAILED | The project does not compile (the first compiler errors are included). |
NO_TESTS_RAN | No test matched the filters, or every matched test was skipped. |
NOT_A_FOUNDRY_PROJECT | No foundry.toml here or above it in the repository. |
FORGE_NOT_FOUND, UNSUPPORTED_FORGE_VERSION | forge is missing, or older than 1.8.5. |
SOLC_MISSING | Run forge build once in a terminal so forge can install the compiler. |
TIMEOUT | The run took longer than --timeout; forge reports nothing until it finishes. |
CONFIG_ERROR, INVALID_ARGUMENTS, FORGE_CRASHED, FORGE_FAILED, UNPARSEABLE_OUTPUT, INCONSISTENT_RESULT, OUTPUT_TOO_LARGE, FFI_OVERRIDE_FAILED | forge could not produce a trustworthy report; the message and stderr say why. |
.env contents, RPC URLs with API keys, or code you can't share.Running tests runs code. forge test executes the project's Solidity and cheatcodes with your user's rights, just as it does in a terminal. Only use this server on projects you would test in a terminal yourself. It cannot make an untrusted repository safe.
What the server does to reduce that risk:
FOUNDRY_FFI in the environment, so when foundry.toml sets ffi = true the server runs forge with a copy of the resolved configuration that has ffi = false, and checks through forge that it took effect before running anything. Start the server with --allow-ffi if you want FFI.--offline, so forge itself makes no network lookups. Tests can still reach the network on their own, for example fork tests through vm.createSelectFork and RPC endpoints.--flag=value arguments..env itself, so tests can read and print those values. The server replaces the exact values of variables named like *PRIVATE_KEY*, *MNEMONIC*, *SECRET*, *TOKEN*, *API_KEY* and *RPC_URL* (RPC URLs often embed an API key), from its environment and .env, with [redacted:NAME]. A hex value such as a private key is also caught without 0x, in either case, without leading zeros, and in decimal (as vm.envUint and console.log print it). It cannot catch a secret printed in any other form. Keep spendable keys out of projects you test with an agent.To report a vulnerability, see SECURITY.md.
Passing tests do not prove a contract is secure. They show the tests you wrote pass. Contracts that will hold value need an independent audit.
Tested in CI against forge 1.8.5 and 1.8.6 on Linux, macOS and Windows. Supported range: >=1.8.5 <1.9.0. Older versions are refused. Newer ones run with a forgeUntested