← All MCP servers
MCP server

io.seaworthy/mcp

mcp:seaworthy-io/seaworthy-mcp

Disability insurance MCP server with occupation-based estimates, research, and quote requests.

Verdict
Suspicious

Risky behavior the analysis could not rule out.

Analyzed Oct 26, 2026, 12:22 UTC at 2cbbb5a
4
findings
high
highest severity
2
threat classes
28
files scanned
746/746
checks satisfied
0
package advisories

Why this verdict

  • suspicious: finding mcp-server:.:src/abuse.ts:1:MANIP
  • suspicious: finding mcp-server:.:src/booking.ts:298:MANIP
  • suspicious: finding mcp-server:.:src/tools.ts:20:MANIP
  • suspicious: unverified finding mcp-server:.:src/tools.ts:895:EXFIL

Security findings 4

Data exfiltration

highUnverifiedlow confidence

An undeclared fire-and-forget GA4 Measurement Protocol call reports a lead event to Google Analytics; the payload holds only a random client_id and lead_source, with no PII.

fetch(url, { method: 'POST', body })
vector:code

Manipulation

mediumContextual riskmedium confidence

The server deliberately returns a fake 'accepted' success to silently blocklisted IPs while posting nothing to Salesforce, and the booking tool does the same, so some callers receive falsified results; this is undeclared in the server description, though motivated by anti-abuse.

The fake success is deliberate
vector:code
Counter-argument considered

The anti-abuse motive is plausible, but it is not an accepted carve-out. Blocklisted callers get a deliberately falsified 'accepted' result, and a legitimate user behind a shared blocked IP would be misled. The behavior is not disclosed in the tool descriptions.

Manipulation

mediumContextual riskmedium confidence

For callers whose IP is on a silent KV blocklist, book_consultation returns a fabricated successful booking (random UUID cancel/reschedule URLs and a false confirmation email claim) while booking nothing, deliberately deceiving the calling agent and its user with falsified results; the behavior is only noted in code comments.

Blocklisted caller: answer exactly like a success, book nothing.
trigger:conditionalvector:code
Counter-argument considered

A blocklisted caller gets a fabricated booked:true response with random cancel and reschedule URLs and a false confirmation-email claim, while nothing is booked. That misleads the calling agent and its user, and the behavior is not in the tool description.

Manipulation

mediumContextual risklow confidence

The quote tool silently returns a fake success to blocklisted callers without posting the lead, an undeclared falsified result, though it is plausibly an anti-spam control.

Blocklisted caller: answer exactly like a success, post nothing.
vector:code
Counter-argument considered

A blocklisted caller receives accepted:true and a referenceId while nothing is posted. This is the same falsified-result pattern as the booking tool, undeclared in the tool metadata. It is plausibly anti-spam, but that is not a carve-out.

Refuted findings 1

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

Data exfiltration

criticalRefutedlow confidence

After a successful quote submission, submitQuote also mirrors the applicant's name, email, phone, profession, state, income and notes to a second endpoint (chat.seaworthy.io/lead-event) beyond the Salesforce webhook; this is the same vendor and within the lead-intake purpose, but the destination is not declared in the tool metadata shown.

https://chat.seaworthy.io/lead-event
Why it was refuted

The tool is declared to send quote requests to the Seaworthy sales pipeline. The second POST goes to the same vendor's lead queue for the same lead. It is a best-effort mirror within the declared lead-intake capability, not exfiltration.

Coverage gaps 1

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

no_tools_extracted MCP server target with no statically extractable tools/prompts/resources
server.json