MCP server · Org-owned · Audited from source
Reactive Resume MCP server
by reactive-resume/reactive-resumeMIT licenceAudited 19 Sep 2026 · source 4d474828a092
Is it safe? No — BLOCK, grade F (41/100). It exposes 2 tools: 2 read, 0 write and 0 destructive. The audit recorded 47 findings (0 critical, 3 high, 7 medium, 36 low). Maintainer's description: A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!
Cite
Cite this page
ModelsAtlas. “Reactive Resume MCP server (reactive-resume/reactive-resume)”. Retrieved 19 Sep 2026. https://modelsatlas.com/mcp/reactive-resume/reactive-resume-2
Why this is BLOCK. The audit found 0 critical and 3 high findings; the most severe is Hard-coded secrets at .env.example:19. Each finding is listed below with its file and line.
Why this page is still public. People search for this server by name. Hiding it would leave them with the README's word alone; here they see what the code does. We list it so you can decide, and we do not show connect commands for BLOCK servers.
Copy of mcp/amruthpillai/reactive-resume: identical text; the original is the page to read and cite.
Trust audit
Audit 0.4.1 · full source read 19 Sep 2026
47 findings, listed below with the file and line each was found on. Grade A needs a sandboxed behavioural run too; this audit read the source only.
What the source does
- FilesystemDeclared3 observations
- NetworkDeclared4 observations
- ShellNone observedNothing seen in the source
- DependenciesNot pinnedSome ranges float
- SecretsFoundSee the findings
Findings (47)
Sorted by severity · the 25 most severe of 47 are listed
HIGHHard-coded secretssecret.db_uri · .env.example:19
Excerpt withheld: it is a secret, and we never print one.
- Why
- No further detail recorded for this rule.
- Fix
- —
HIGHHard-coded secretssecret.db_uri · compose.dev.yml:16
Excerpt withheld: it is a secret, and we never print one.
- Why
- No further detail recorded for this rule.
- Fix
- —
HIGHPrompt injectionprompt.zero_width · plans/14-rtl-export-layout.md:45
| fa-IR | `توسعهدهنده نرمافزار — ۲۰۲۶` | Persian letters/digits and the literal ZWNJ between words |
- Why
- invisible characters in instruction text
- Fix
- strip non-printing characters
MEDIUMNetwork egressnet.raw_ip · Dockerfile:75
CMD ["node", "-e", "fetch(`http://127.0.0.1:${process.env.PORT ?? 3000}/api/health`).then((r) => { if (!r.ok) process.exit(1); }).catch(() => process.exit(1));"]- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMObfuscation / stealthobf.zero_width · apps/web/src/features/applications/csv.ts:10
const text = input.replace(/^/, "");
- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMHard-coded secretssecret.db_uri · .github/workflows/e2e.yml:15
Excerpt withheld: it is a secret, and we never print one.
- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMHard-coded secretssecret.db_uri · docs/contributing/development.mdx:75
Excerpt withheld: it is a secret, and we never print one.
- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMHard-coded secretssecret.db_uri · docs/getting-started/quickstart.mdx:88
Excerpt withheld: it is a secret, and we never print one.
- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMHard-coded secretssecret.generic · packages/pdf/src/semantic/template-manifest.test.ts:69
Excerpt withheld: it is a secret, and we never print one.
- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMHard-coded secretssecret.generic · packages/pdf/src/templates/bronzor/semantic.ts:21
Excerpt withheld: it is a secret, and we never print one.
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWInventory / provenanceinv.symlink · CLAUDE.md
CLAUDE.md
- Why
- link not followed
- Fix
- —
LOWFilesystem / pathfs.traversal · apps/server/src/openapi/generate-spec.ts:5
target = fileURLToPath(new URL("../../../../docs/spec.json", import.meta.url)),- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · apps/server/src/openapi/generate-spec.ts:7
const packageJson = JSON.parse(await readFile(new URL("../../../../package.json", import.meta.url), "utf8")) as {- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · apps/server/src/openapi/generator.test.ts:110
await readFile(new URL("../../../../docs/spec.json", import.meta.url), "utf8"),- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · apps/server/src/static/web.ts:10
fileURLToPath(new URL("../../../web/dist", import.meta.url)),- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · apps/server/src/static/web.ts:12
fileURLToPath(new URL("../../web/dist", import.meta.url)),- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.metadata_ip · packages/utils/src/url-security.node.test.ts:197
expect(isPrivateOrLoopbackHost("::ffff:169.254.169.254")).toBe(true);- Why
- cloud metadata endpoint: the classic SSRF credential grab
- Fix
- —
LOWNetwork egressnet.raw_ip · apps/server/src/http/auth.test.ts:77
body: JSON.stringify({ redirect_uris: ["https://192.168.1.10/callback"] }),- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · apps/server/src/http/oauth-flow.integration.test.ts:20
const redirectURI = "http://127.0.0.1:33921/callback";
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · apps/server/src/http/oauth-flow.integration.test.ts:166
const redirectURI = "http://127.0.0.1:33921/callback";
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · apps/server/src/http/oauth-flow.integration.test.ts:276
redirect_uris: ["http://127.0.0.1:33921/callback"],
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWObfuscation / stealthobf.decode_call · packages/pdf/src/templates/shared/picture-shadow.test.ts:8
const png = decode(Uint8Array.from(atob(shadow.src.split(",")[1] ?? ""), (char) => char.charCodeAt(0)));- Why
- No further detail recorded for this rule.
- Fix
- —
Tools it exposes
2 declared in source · 0 destructive
| Tool | What it does | Risk |
|---|---|---|
English | Native | read |
id | Resume ID. | read |
Safer alternatives
21st-dev/magic-mcp
It's like v0, but in your Cursor / Claude Code / Windsurf: search 10,000+ React/Tailwind components, generate new UI with AI, and publish your own — right from your editor. Magic MCP is now the 21st MCP; this package keeps old configs working. Setup: 21st.dev/mcp
langchain-ai/langchainjs-mcp-adapters
** THIS REPO HAS MOVED TO https://github.com/langchain-ai/langchainjs/tree/main/libs/langchain-mcp-adapters ** Adapters for integrating Model Context Protocol (MCP) tools with LangChain.js applications, supporting both stdio and SSE transports.
pnp/cli-microsoft365-mcp-server
Manage Microsoft 365 using MCP server
Audit history
- ✕BLOCK F 41 / 100
Source changed, verdict held ·
4d474828a092
Questions about Reactive Resume MCP server
What is the Reactive Resume MCP server?
What tools does Reactive Resume expose?
Is Reactive Resume safe to connect to an agent?
What credentials does Reactive Resume need?
How does Reactive Resume run?
How current is this page?
I already installed Reactive Resume. What should I do?
Can the verdict change?
Sources
- reactive-resume/reactive-resume on GitHub — the source we read, its licence, stars and activityObserved · 19 Sep 2026
- ModelsAtlas trust audit — BLOCK verdict for commit 4d474828a092Observed · 19 Sep 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What is the Reactive Resume MCP server?
- What tools does Reactive Resume expose?
- Is Reactive Resume safe to connect to an agent?