Skip to main content
Glama
@guardbee/mcp-security-proxy

@guardbee/mcp-security-proxy

Official

oauth_auditor__scan_text

Scans MCP authorization code for OAuth 2.1 anti-patterns: token passthrough, missing audience validation, discovery SSRF, missing PKCE, loose redirect_uri checks, and hardcoded client secrets.

Instructions

Scan an MCP server's authorization code for OAuth 2.1 anti-patterns named in the MCP spec's own Security Considerations: token passthrough (forwarding a client's token to a downstream API unchanged), missing audience validation on JWT verification, OAuth/OIDC discovery SSRF, missing PKCE, loose redirect_uri validation, and hardcoded client secrets.

Input Schema

NameRequiredDescriptionDefault
labelNoOptional label shown in findings (e.g. filename)
contentYesThe code content to scan

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.5
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Addedv0.1.1

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden; it discloses the detection scope precisely but says nothing about what a scan returns, whether results include severity/line locations, or any limits. Since this is a purely read-only text analysis of a user-supplied string, the risk surface is low, so this is a moderate rather than severe gap.

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?

A single front-loaded sentence with the verb and resource first, followed by an enumeration that earns its length by telling the agent what categories are covered. Slightly dense but no filler.

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

Completeness3/5

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

There is no output schema, so ideally the description would describe the shape of findings (list of findings with pattern, severity, snippet). It is complete about input scope and detection categories but silent on the return value, which an agent needs to interpret results.

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 coverage is 100% for both parameters, so 'label' and 'content' are already documented in the schema. The description adds no further guidance on what 'content' should contain (truncation, encoding, size limits), so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('Scan') and resource ('an MCP server's authorization code') and enumerates the exact OAuth 2.1 anti-pattern classes detected, which lets an agent distinguish this from generic text scanners like secret_scanner__scan_text. However, it never explicitly contrasts itself with its closest siblings, oauth_auditor__scan_file and oauth_auditor__scan_directory.

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

Usage Guidelines3/5

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

Usage is implied by the enumerated checks (use this when auditing OAuth code for token passthrough, PKCE, redirect_uri issues, etc.), giving an agent a reasonable trigger. There is no explicit when-not guidance and no mention of the file/directory siblings as the alternative for non-inline content.

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

Deploy Server

Other Tools