url_decode
Decode percent-encoded URL text.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | component | |
| input | Yes |
Decode percent-encoded URL text.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | component | |
| input | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it adds almost nothing beyond the verb. It does not say how malformed or partially-encoded input is handled, whether '+' is treated as space, or how the mode setting changes results — all of which matter for a decode operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, appropriate for a simple utility. It is efficient rather than bloated; the weakness is under-specification, not verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% schema coverage, the description is the only documentation available and it omits the mode enum semantics and any error/edge-case behavior. For a two-parameter tool whose enum materially changes output, that leaves a genuine gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across two parameters, so the description is the only source of parameter meaning. It implies that 'input' is the encoded text, but says nothing at all about 'mode', whose component/uri enum encodes a meaningful decoding difference (e.g., plus-sign and reserved-character handling) that an agent cannot guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Decode percent-encoded URL text'), which cleanly distinguishes it from the inverse sibling url_encode and from unrelated decoders like base64_decode or jwt_decode. It stops short of explicitly naming the counterpart tool, but the name-plus-description pairing leaves no ambiguity about what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to reach for this tool versus url_encode, base64_decode, or jwt_decode, and no mention of the component-vs-uri distinction that determines correct behavior. The agent must infer all selection logic from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.