MCP, MCP server
forgemax
Code Mode MCP Gateway — collapses N servers x M tools into 2 tools (~1,000 tokens).
Compatibility: Not stated.
Grade C
One Medium finding. Read the findings before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit 83878b19c79d, unchanged since the check below.
SECRETS_PATH_CREDENTIAL
Why this grade
- SECRETS_PATH_CREDENTIAL Medium
Mentions a credential store path (~/.ssh, id_rsa, .npmrc, .aws/credentials, credentials.json, .netrc).
crates/forge-sandbox/src/executor.rs, line 1752
error_msg: "file not found: /var/secrets/database/credentials.json".into(),
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
npm/install.js, line 193
else fs.unlinkSync(path.join(binDir, name));
npm/install.js, line 206
if (!preserveTempDir) fs.rmSync(tempDir, { recursive: true, force: true });
npm/install.test.js, line 49
t.after(() => fs.rmSync(root, { recursive: true, force: true }));
Show more
npm/pack.test.js, line 12
t.after(() => fs.rmSync(root, { recursive: true, force: true }));
Install and update
Note
README documents an installer that pipes a download into a shell. The docs document an installer that pipes a download into a shell.
INSTALL_DOCUMENTED_INSTALLER
README.md, line 123
curl -fsSL https://raw.githubusercontent.com/postrv/forgemax/main/install.sh | bash
install.sh, line 5
# Usage: curl -fsSL https://raw.githubusercontent.com/postrv/forgemax/main/install.sh | bash
Network
Concern
can reach a host that is not written as a fixed address. can reach raw.githubusercontent.com. The description does not name that host. can reach example.com. The description does not name that host. can reach example.invalid. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
install.sh, line 61
if command -v curl &>/dev/null; then
install.sh, line 62
curl -fsSL --proto '=https' --proto-redir '=https' --tlsv1.2 \
install.sh, line 64
elif command -v wget &>/dev/null; then
Show more
install.sh, line 65
wget -q --https-only --timeout=30 --tries=3 --max-redirect=5 "$url" -O "$dest"
install.sh, line 67
error "Neither curl nor wget found"
install.sh, line 255
echo " curl -fsSL https://raw.githubusercontent.com/${REPO}/main/forge.toml.example > forge.toml"
crates/forge-sandbox/src/executor.rs, line 1092
await fetch("https://example.com");
npm/install.js, line 35
function fetch(url, maxBytes = MAX_ARCHIVE_BYTES, redirects = 0) {
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_CREDENTIAL
crates/forge-config/src/lib.rs, line 764
config.servers["example"].env["${FORGE_TEST_LITERAL_VALUE}"],
crates/forge-sandbox/src/ast_validator.rs, line 1464
let code = r#"async () => { return process.env.SECRET; }"#;
crates/forge-sandbox/src/executor.rs, line 1752
error_msg: "file not found: /var/secrets/database/credentials.json".into(),
Show more
crates/forge-sandbox/src/executor.rs, line 1757
await forge.readResource("server", "file:///var/secrets/database/credentials.json");
crates/forge-sandbox/src/executor.rs, line 1772
!msg.contains("credentials.json"),
crates/forge-sandbox/src/validator.rs, line 333
let code = r#"async () => { return process.env.SECRET; }"#;
CHANGELOG.md, line 51
- **`[servers.*].env` config field:** Map of explicit environment variables passed to stdio child processes. Supports `${VAR}` env expansion. Required for downstream servers that n
UPGRADE.md, line 23
If any downstream server expected to read credentials or other settings from the parent process environment (for example, a GitHub server reading `GITHUB_PERSONAL_ACCESS_TOKEN`), d
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 83878b19c79d. can delete files. README documents an installer that pipes a download into a shell. The docs document an installer that pipes a download into a shell. can reach a host that is not written as a fixed address. can reach raw.githubusercontent.com. The description does not name that host. can reach example.com. The description does not name that host. can reach example.invalid. The description does not name that host. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: 83878b19c79d69da2d1f21b785e1b8f4f296ebe1
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.