{"serverId":"mcp-registry/io.github.ainode-tech/swiss-army","tools":[{"name":"convert_currency","fixed":{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["amount","from","to"],"properties":{"to":{"type":"string","maxLength":3,"minLength":3,"description":"Target currency code (ISO 4217)"},"from":{"type":"string","maxLength":3,"minLength":3,"description":"Source currency code (ISO 4217)"},"amount":{"type":"number","description":"Amount to convert","exclusiveMinimum":0}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"convert_timezone","fixed":{"name":"convert_timezone","description":"Convert a datetime between IANA timezones.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["datetime","from_timezone","to_timezone"],"properties":{"datetime":{"type":"string","description":"Datetime in ISO format (YYYY-MM-DDTHH:mm:ss)"},"to_timezone":{"type":"string","description":"Target IANA timezone (e.g. Europe/Lisbon)"},"from_timezone":{"type":"string","description":"Source IANA timezone (e.g. America/New_York)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":151,"tokensAfter":151},{"name":"health","fixed":{"name":"health","description":"Health check. Returns server status and optional echo.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"echo":{"type":"string","description":"Optional string to echo back"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"validate_cors","fixed":{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["allow_origin"],"properties":{"max_age":{"type":"number","description":"Access-Control-Max-Age in seconds"},"allow_origin":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Access-Control-Allow-Origin value(s)"},"allow_headers":{"type":"array","items":{"type":"string"},"description":"Allowed request headers"},"allow_methods":{"type":"array","items":{"type":"string"},"description":"Allowed HTTP methods"},"expose_headers":{"type":"array","items":{"type":"string"},"description":"Access-Control-Expose-Headers"},"allow_credentials":{"type":"boolean","description":"Access-Control-Allow-Credentials"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":247,"tokensAfter":247},{"name":"validate_iban","fixed":{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["iban"],"properties":{"iban":{"type":"string","description":"IBAN string (with or without spaces)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"validate_nif","fixed":{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["nif"],"properties":{"nif":{"type":"string","description":"Portuguese NIF or NIPC (9 digits)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":94,"tokensAfter":94}],"toolsChanged":6,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}