Announcing Beacon: Self-improving memory for coding agents
← All MCP servers
MCP server

tools.ref/ref-tools-mcp

mcp:ref-tools/ref-tools-mcp

Token-efficient search for coding agents over public and private documentation.

Verdict
Inconclusive

The analysis could not cover enough of the artifact to decide.

Analyzed Oct 26, 2026, 12:19 UTC at f5feb82

Dispute security verdict

If you believe this verdict is incorrect, submit a dispute and we'll review it.

0
findings
—
highest severity
0
threat classes
16
files scanned
293/293
checks satisfied
0
package advisories

Why this verdict

  • inconclusive: gap dynamic_metadata at index.ts
  • inconclusive: gap request_unanswered

Security findings 0

No individual findings recorded

The inconclusive verdict rests on the open questions and coverage gaps below; 1 candidate finding was refuted on review.

Open questions 3

What the analysis could not settle from the code alone.

Tool metadata (names, descriptions, input schemas) for searchTool and readTool is defined elsewhere in index.ts and is not shown in this unit; do those descriptions contain directives conditioning other tools or parameters?
Tool poisoning
The searchTool and readTool definitions (names, descriptions, parameter descriptions) are referenced by variable and not shown in this unit; do they contain steering text or conditioning of other tools?
Tool poisoning
[invalid file request] Where are searchTool and readTool defined? Check their names, descriptions, and input schema parameter descriptions for hidden directives, conditioning of other tools, or context harvesting.
Tool poisoning
Refuted findings 1

Candidates the review stage examined and rejected, kept for transparency.

Credential access

highRefutedlow confidence

The REF_URL environment variable overrides the API base URL, so the Ref API key headers (X-Ref-Api-Key/X-Ref-Alpha) and search queries would be sent to whatever host the operator configures; the default is the declared api.ref.tools.

return process.env.REF_URL
Why it was refuted

REF_URL is an operator-controlled base-URL override, a routine config knob. The default is the wrapped service's own host, and no attacker-controlled input reaches it. Sending the service's own API key to the configured endpoint is the declared core capability, not a credential-harvesting channel.

Coverage gaps 2

Parts of the artifact the static analysis could not fully examine.

dynamic_metadata line 120: tool definition is computed: readTool
index.ts
request_unanswered instruction-surface.1000: invalid file request (evidence_ids not shown in the asking request)