{"id":"url-query-merge","version":"1.0.0","description":"Merge query pairs into an absolute URL. No fetching.","supported_operations":["url query merge","merge search params","update url query"],"unsupported_operations":["fetch","sort params as security"],"semantics":["url is an absolute URL. pairs is a non-empty ordered list of {name,value}.","mode is append (default), replace_names, or replace_all.","append: keep existing pairs then add pairs.","replace_names: for each distinct name in pairs, drop existing params of that name, then append the supplied pairs in given order (other existing names kept in original order).","replace_all: drop existing query, use pairs only.","Fragment is preserved. Return { url }. Max 512 pairs after merge."],"limits":{"max_url_bytes":8192,"max_query_pairs":512},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["url","pairs"],"properties":{"url":{"type":"string","minLength":1,"maxLength":8192},"pairs":{"type":"array","minItems":1,"maxItems":512,"items":{"type":"object","additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"mode":{"type":"string","enum":["append","replace_names","replace_all"]}}},"output_schema":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string"}}},"examples":[{"input":{"url":"https://example.com/p?a=1&b=2","pairs":[{"name":"a","value":"9"}],"mode":"replace_names"},"output":{"url":"https://example.com/p?b=2&a=9"}}],"execute_url":"/v1/tools/url-query-merge/versions/1.0.0/execute"}