Skip to content
Squatch MCP

Findings

Detected by Squatch rules from the server's metadata and protocol behavior. Latest completed scan: .

Severity: High1 finding

Severity: HighStatus: OpenSQ-SERVER-AUTH-NONE-WRITE

State-changing tools available without authentication

The remote server lists state-changing tools without requiring authentication.

First seen · Last seen

Suggested fix: Require MCP authorization for servers that expose state-changing tools.

Severity: Medium13 findings

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: MediumStatus: OpenSQ-TOOL-EXFIL-DIRECTIVE

Asks the AI model to pass conversation data or secrets

Model-facing text instructs the AI model to place conversation content, prompts, tool history or secrets into tool arguments or external destinations.

First seen · Last seen

Suggested fix: Do not ask the model to include conversation, prompt or credential content in arguments.

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: MediumStatus: OpenSQ-TOOL-CREDENTIAL-ARGUMENT

Asks the AI model to supply credentials as arguments

A tool parameter asks the AI model to supply a password, token, key or similar credential, which the model can see and repeat.

First seen · Last seen

Suggested fix: Obtain credentials through server-side configuration or MCP authorization instead of tool arguments.

Severity: Low43 findings

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-EXFIL-SHAPED-PARAM

Free-text parameter commonly used to collect conversation data

A free-text parameter has a name commonly abused to collect conversation, prompt or environment data.

First seen · Last seen

Suggested fix: Constrain the parameter (enum, maxLength) or rename it to reflect its purpose; never ask the model to fill it with conversation content.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-REPO-MISSING

No source repository linked

No source repository is linked in the registry entry.

First seen · Last seen

Suggested fix: Add a repository to server.json.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-EXFIL-SHAPED-PARAM

Free-text parameter commonly used to collect conversation data

A free-text parameter has a name commonly abused to collect conversation, prompt or environment data.

First seen · Last seen

Suggested fix: Constrain the parameter (enum, maxLength) or rename it to reflect its purpose; never ask the model to fill it with conversation content.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-CONFORMANCE-MODERN-FAILURE

Protocol conformance checks failed

The server failed one or more MCP protocol conformance checks.

First seen · Last seen

Suggested fix: Review the failed checks against the MCP specification.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-DESTRUCTIVE-NO-ANNOTATION

Destructive tool without annotations

A tool that appears to delete data, change permissions or run code declares no tool annotations.

First seen · Last seen

Suggested fix: Declare readOnlyHint, destructiveHint, idempotentHint and openWorldHint so clients can request confirmation.

Severity: LowStatus: OpenSQ-TOOL-META-INSUFFICIENT

Description too thin to determine behavior

The tool's name and description do not state what it does.

First seen · Last seen

Suggested fix: Describe the action the tool performs, its target and its side effects.

Severity: Info2 findings

Severity: InfoStatus: OpenSQ-TOOL-EXFIL-SHAPED-PARAM

Free-text parameter commonly used to collect conversation data

A free-text parameter has a name commonly abused to collect conversation, prompt or environment data.

First seen · Last seen

Suggested fix: Constrain the parameter (enum, maxLength) or rename it to reflect its purpose; never ask the model to fill it with conversation content.

Severity: InfoStatus: OpenSQ-TOOL-EXFIL-SHAPED-PARAM

Free-text parameter commonly used to collect conversation data

A free-text parameter has a name commonly abused to collect conversation, prompt or environment data.

First seen · Last seen

Suggested fix: Constrain the parameter (enum, maxLength) or rename it to reflect its purpose; never ask the model to fill it with conversation content.

What this scan does not cover

  • Squatch never calls a server's tools, so it cannot see what they actually do at run time.
  • It scans without credentials: tools behind authentication may not be visible.
  • It does not review source code, dependencies or the publisher's infrastructure.
  • A server can change behavior between scans; monitoring compares each scan with the last.
  • Classifications come from tool names, descriptions and schemas, which the publisher controls.

How Squatch scans servers