Skip to main content
Glama

Scan an MCP server's tool descriptions for poisoning patterns

scan_mcp_server

Connect to a remote Streamable HTTP MCP server, fetch its tools/list (sends only initialize, notifications/initialized and tools/list — never tools/call) and scan every tool name, description, parameter description and the server's initialize instructions string for tool-poisoning patterns: hidden-instruction markers, invisible Unicode, directives aimed at the model, credential/secret references, exfiltration shapes and instructions about other tools. Returns per-tool findings with severity, excerpt and a score band. Use it before installing or trusting a third-party server. Heuristic: a clean result means nothing obvious in what the server declares about itself, not that it is safe. Wraps GET /v1/mcp-scan. Free, rate-limited per caller; private/internal-network hosts are rejected.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesThe MCP server's Streamable HTTP endpoint URL, e.g. https://example.com/mcp

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full transparency burden and does so thoroughly. It discloses exactly which protocol messages are sent (initialize, notifications/initialized, tools/list) and explicitly states it never sends tools/call. It also reveals important operational constraints: rate limiting, rejection of private/internal-network hosts, and the heuristic nature of the scan result, which materially affects how an agent should interpret the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence contributes: protocol behavior, scanned content, output shape, usage context, heuristic caveat, and operational limits. It is somewhat long, but the complexity of a security-scanning tool justifies the detail. The key action and scope appear immediately in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides everything an agent needs: the network interaction model, the exact data scanned, the return format (per-tool findings, severity, excerpt, score band), usage timing, safety caveat, and constraints. This is a complete picture for a security tool with a single parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter 'url' is already described as the Streamable HTTP endpoint URL. The description adds context about remote hosts and private-network rejection, but that is more behavioral constraint than parameter semantics. Therefore the schema already carries the necessary meaning, and the description adds only marginal parameter-level value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a precise verb and resource: connect to a Streamable HTTP MCP server and scan its tool declarations for poisoning patterns. It enumerates exactly what is inspected (tool names, descriptions, parameter descriptions, initialize instructions) and what it returns, leaving no ambiguity about the tool's core function. This clearly differentiates it from the sibling data-retrieval tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use it: 'before installing or trusting a third-party server.' It also warns about the heuristic limitation, telling the agent that a clean result does not imply safety. No alternative tools are mentioned, but none of the siblings perform a comparable scan, so the primary use case is well covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation4/5

read_url and get_metadata both fetch a URL server-side, so an agent could initially hesitate between them, though they cleanly differ in output: Markdown content vs structured metadata. The two product-related tools list_products and get_purchase_info have distinct roles as catalog browsing vs single-item purchase details.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (read_url, get_metadata, list_products, get_purchase_info). The verb choices are standard and predictable, and there are no mixed casing styles or vague names.

Tool Count5/5

Four tools is a well-scoped surface for a URL-reading/metadata service with a small digital-product lookup side. Each tool earns it place, and none feel redundant or missing as a basic unit.

Completeness4/5

URL content and metadata handling is fully covered, and the product side is covered for listing and purchase lookup. The only notable gap is that the purchase flow is informational only: no tool executes the actual x402 payment, so a transactional workflow cannot be completed solely through this server.

Resources