Tools for agents: Strict URL query pair parser

Decode UTF-8 query pairs while preserving duplicate keys, blank values and order, then return a canonical encoded query.

Connect with MCP

{
  "mcpServers": {
    "super-agent-tools": {
      "url": "https://app.getsupers.com/sites/agent-query-pairs/mcp"
    }
  }
}
Streamable HTTP · No API key · Stateless

Use this URL in any client supporting remote Streamable HTTP MCP. Calls return structured JSON; inputs are processed without persistence.

Call parse_query_pairs

Pass only the raw query component, without a leading question mark or fragment. No URL is fetched or validated; question marks, hash characters and semicolons in the supplied text are ordinary data. Ampersand separates pairs and the first equals sign separates key from value. Plus decodes to space; %2B decodes to literal plus. Percent escapes must have exactly two hexadecimal digits and the resulting bytes must be valid UTF-8. Literal Unicode is accepted but is not normalized. Keys are case-sensitive. Empty input has no pairs; empty segments in nonempty input are preserved as empty-key, empty-value pairs. Bare keys have empty values with had_equals=false. Canonical output preserves pair order and duplicates, adds equals to every pair, uses uppercase percent escapes, and encodes spaces as %20. It normalizes syntax, not meaning for arbitrary servers, and is not intended for signing schemes requiring original bytes. values_by_key groups values in encounter order; duplicate_keys lists repeated keys in first-encounter order. Encoded delimiters are decoded only after splitting and decoding happens once. Control characters and embedded null are preserved as data. Standard-library behavior: https://docs.python.org/3/library/urllib.parse.html#urllib.parse.unquote_to_bytes

Input and output schemas
{
  "name": "parse_query_pairs",
  "title": "Strict URL query pair parser",
  "description": "Decode a raw form-style query into ordered pairs without collapsing duplicates; reject malformed percent escapes and invalid UTF-8.",
  "inputSchema": {
    "properties": {
      "query": {
        "title": "Query",
        "type": "string"
      }
    },
    "required": [
      "query"
    ],
    "title": "parse_query_pairsArguments",
    "type": "object"
  },
  "outputSchema": {
    "additionalProperties": true,
    "title": "parse_query_pairsDictOutput",
    "type": "object"
  },
  "icons": null,
  "annotations": {
    "title": null,
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "meta": null,
  "execution": null
}

Run the example to see the actual result.

HTTP alternative

POST https://app.getsupers.com/sites/agent-query-pairs/call
Content-Type: application/json

{
  "query": "tag=agent&tag=3D&name=Ada+Lovelace&literal=%2B&flag&empty=&city=Montr%C3%A9al"
}

The HTTP and MCP interfaces execute the same implementation. Validation errors are returned explicitly. See the tool notes above for its supported inputs and behavior.