{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_uc3wewmpqfvq","handle":"swiss-army","url":"https://wellknown.network/agents/swiss-army","links":{"self":"https://wellknown.network/agents/swiss-army/record.json","html":"https://wellknown.network/agents/swiss-army","markdown":"https://wellknown.network/agents/swiss-army/record.md","api":"https://wellknown.network/api/v1/agents/swiss-army","status":"https://wellknown.network/api/v1/agents/swiss-army/status","claim":"https://wellknown.network/agents/swiss-army/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/swiss-army/claim.json","badge":"https://wellknown.network/agents/swiss-army/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/swiss-army/history","tools":"https://wellknown.network/api/v1/agents/swiss-army/tools"},"ard":{"identifier":"urn:air:swiss.api.ainode.tech:server:swiss-army","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"swiss-army","summary":"22 utility tools (x402 USDC on Base): currency, PDF, image, GDPR. Free health.","description":"22 utility tools (x402 USDC on Base): currency, PDF, image, GDPR. Free health.","publisher":{"name":"Ainode-tech","url":null},"homepage":null,"repository":null,"version":"0.1.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://swiss.api.ainode.tech/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-04-30T07:11:29.618724Z","publishedAt":"2026-04-30T07:11:29.618724Z","registryName":"io.github.Ainode-tech/swiss-army"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"knowledge.knowledge-graph","name":"Knowledge Graphs","confidence":1,"provenance":"derived"},{"slug":"security.secrets","name":"Secrets Management","confidence":1,"provenance":"derived"},{"slug":"documents.ocr","name":"OCR","confidence":0.583,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":0.525,"provenance":"derived"},{"slug":"documents.conversion","name":"Document Conversion","confidence":0.51,"provenance":"derived"}],"categories":["documents","finance","knowledge","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-11T00:28:02.937Z","lastProbedAt":"2026-10-11T00:28:02.937Z","statusComputedAt":"2026-10-11T00:29:19.630Z","reliability30d":{"probes":107,"successRate":1,"p50Ms":42,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":106,"ok":106,"authBoundaryOk":0,"serviceOk":106,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-11T00:28:02.937Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":21,"error":null,"detail":{"tools":[{"name":"health","description":"Health check. Returns server status and optional echo."},{"name":"json_to_csv","description":"Convert JSON array of objects to RFC 4180 CSV."},{"name":"csv_to_json","description":"Convert CSV string to JSON array of objects."},{"name":"encode_base64","description":"Encode a UTF-8 string to Base64."},{"name":"decode_base64","description":"Decode a Base64 string to UTF-8."},{"name":"generate_hash","description":"Generate MD5, SHA-256, or SHA-512 hex digest."},{"name":"generate_uuid","description":"Generate one or more UUID v4 values."},{"name":"html_to_text","description":"Strip HTML tags and decode entities to plain text."},{"name":"markdown_to_html","description":"Convert Markdown to HTML."},{"name":"extract_url_metadata","description":"Extract Open Graph metadata from a URL."},{"name":"convert_timezone","description":"Convert a datetime between IANA timezones."},{"name":"parse_cron","description":"Parse a cron expression and return next run times."},{"name":"test_regex","description":"Test a regex pattern against an input string."},{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates."},{"name":"extract_pdf_text","description":"Extract text content from a base64-encoded PDF document."},{"name":"resize_image","description":"Resize and compress a base64-encoded image."},{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit)."},{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks."},{"name":"verify_eu_vat","description":"Verify EU VAT number via VIES (European Commission free API)."},{"name":"classify_gdpr","description":"Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values."},{"name":"generate_csp","description":"Generate Content-Security-Policy header from structured directives input."},{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity."},{"name":"detect_secrets","description":"Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis."}],"toolCount":23,"toolsHash":"e0f7f3feafbfe958dc2b213b11e837a2093e15c190aade07b72a2eb8507b21de","serverName":"swiss-army","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T17:30:02.273Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":39,"error":null,"detail":{"tools":[{"name":"health","description":"Health check. Returns server status and optional echo."},{"name":"json_to_csv","description":"Convert JSON array of objects to RFC 4180 CSV."},{"name":"csv_to_json","description":"Convert CSV string to JSON array of objects."},{"name":"encode_base64","description":"Encode a UTF-8 string to Base64."},{"name":"decode_base64","description":"Decode a Base64 string to UTF-8."},{"name":"generate_hash","description":"Generate MD5, SHA-256, or SHA-512 hex digest."},{"name":"generate_uuid","description":"Generate one or more UUID v4 values."},{"name":"html_to_text","description":"Strip HTML tags and decode entities to plain text."},{"name":"markdown_to_html","description":"Convert Markdown to HTML."},{"name":"extract_url_metadata","description":"Extract Open Graph metadata from a URL."},{"name":"convert_timezone","description":"Convert a datetime between IANA timezones."},{"name":"parse_cron","description":"Parse a cron expression and return next run times."},{"name":"test_regex","description":"Test a regex pattern against an input string."},{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates."},{"name":"extract_pdf_text","description":"Extract text content from a base64-encoded PDF document."},{"name":"resize_image","description":"Resize and compress a base64-encoded image."},{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit)."},{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks."},{"name":"verify_eu_vat","description":"Verify EU VAT number via VIES (European Commission free API)."},{"name":"classify_gdpr","description":"Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values."},{"name":"generate_csp","description":"Generate Content-Security-Policy header from structured directives input."},{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity."},{"name":"detect_secrets","description":"Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis."}],"toolCount":23,"toolsHash":"e0f7f3feafbfe958dc2b213b11e837a2093e15c190aade07b72a2eb8507b21de","serverName":"swiss-army","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T11:24:08.638Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":47,"error":null,"detail":{"tools":[{"name":"health","description":"Health check. Returns server status and optional echo."},{"name":"json_to_csv","description":"Convert JSON array of objects to RFC 4180 CSV."},{"name":"csv_to_json","description":"Convert CSV string to JSON array of objects."},{"name":"encode_base64","description":"Encode a UTF-8 string to Base64."},{"name":"decode_base64","description":"Decode a Base64 string to UTF-8."},{"name":"generate_hash","description":"Generate MD5, SHA-256, or SHA-512 hex digest."},{"name":"generate_uuid","description":"Generate one or more UUID v4 values."},{"name":"html_to_text","description":"Strip HTML tags and decode entities to plain text."},{"name":"markdown_to_html","description":"Convert Markdown to HTML."},{"name":"extract_url_metadata","description":"Extract Open Graph metadata from a URL."},{"name":"convert_timezone","description":"Convert a datetime between IANA timezones."},{"name":"parse_cron","description":"Parse a cron expression and return next run times."},{"name":"test_regex","description":"Test a regex pattern against an input string."},{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates."},{"name":"extract_pdf_text","description":"Extract text content from a base64-encoded PDF document."},{"name":"resize_image","description":"Resize and compress a base64-encoded image."},{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit)."},{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks."},{"name":"verify_eu_vat","description":"Verify EU VAT number via VIES (European Commission free API)."},{"name":"classify_gdpr","description":"Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values."},{"name":"generate_csp","description":"Generate Content-Security-Policy header from structured directives input."},{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity."},{"name":"detect_secrets","description":"Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis."}],"toolCount":23,"toolsHash":"e0f7f3feafbfe958dc2b213b11e837a2093e15c190aade07b72a2eb8507b21de","serverName":"swiss-army","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T04:31:37.907Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":21,"error":null,"detail":{"tools":[{"name":"health","description":"Health check. Returns server status and optional echo."},{"name":"json_to_csv","description":"Convert JSON array of objects to RFC 4180 CSV."},{"name":"csv_to_json","description":"Convert CSV string to JSON array of objects."},{"name":"encode_base64","description":"Encode a UTF-8 string to Base64."},{"name":"decode_base64","description":"Decode a Base64 string to UTF-8."},{"name":"generate_hash","description":"Generate MD5, SHA-256, or SHA-512 hex digest."},{"name":"generate_uuid","description":"Generate one or more UUID v4 values."},{"name":"html_to_text","description":"Strip HTML tags and decode entities to plain text."},{"name":"markdown_to_html","description":"Convert Markdown to HTML."},{"name":"extract_url_metadata","description":"Extract Open Graph metadata from a URL."},{"name":"convert_timezone","description":"Convert a datetime between IANA timezones."},{"name":"parse_cron","description":"Parse a cron expression and return next run times."},{"name":"test_regex","description":"Test a regex pattern against an input string."},{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates."},{"name":"extract_pdf_text","description":"Extract text content from a base64-encoded PDF document."},{"name":"resize_image","description":"Resize and compress a base64-encoded image."},{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit)."},{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks."},{"name":"verify_eu_vat","description":"Verify EU VAT number via VIES (European Commission free API)."},{"name":"classify_gdpr","description":"Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values."},{"name":"generate_csp","description":"Generate Content-Security-Policy header from structured directives input."},{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity."},{"name":"detect_secrets","description":"Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis."}],"toolCount":23,"toolsHash":"e0f7f3feafbfe958dc2b213b11e837a2093e15c190aade07b72a2eb8507b21de","serverName":"swiss-army","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T21:26:55.950Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":23,"error":null,"detail":{"tools":[{"name":"health","description":"Health check. Returns server status and optional echo."},{"name":"json_to_csv","description":"Convert JSON array of objects to RFC 4180 CSV."},{"name":"csv_to_json","description":"Convert CSV string to JSON array of objects."},{"name":"encode_base64","description":"Encode a UTF-8 string to Base64."},{"name":"decode_base64","description":"Decode a Base64 string to UTF-8."},{"name":"generate_hash","description":"Generate MD5, SHA-256, or SHA-512 hex digest."},{"name":"generate_uuid","description":"Generate one or more UUID v4 values."},{"name":"html_to_text","description":"Strip HTML tags and decode entities to plain text."},{"name":"markdown_to_html","description":"Convert Markdown to HTML."},{"name":"extract_url_metadata","description":"Extract Open Graph metadata from a URL."},{"name":"convert_timezone","description":"Convert a datetime between IANA timezones."},{"name":"parse_cron","description":"Parse a cron expression and return next run times."},{"name":"test_regex","description":"Test a regex pattern against an input string."},{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates."},{"name":"extract_pdf_text","description":"Extract text content from a base64-encoded PDF document."},{"name":"resize_image","description":"Resize and compress a base64-encoded image."},{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit)."},{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks."},{"name":"verify_eu_vat","description":"Verify EU VAT number via VIES (European Commission free API)."},{"name":"classify_gdpr","description":"Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values."},{"name":"generate_csp","description":"Generate Content-Security-Policy header from structured directives input."},{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity."},{"name":"detect_secrets","description":"Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis."}],"toolCount":23,"toolsHash":"e0f7f3feafbfe958dc2b213b11e837a2093e15c190aade07b72a2eb8507b21de","serverName":"swiss-army","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T14:31:29.907Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":49,"error":null,"detail":{"tools":[{"name":"health","description":"Health check. Returns server status and optional echo."},{"name":"json_to_csv","description":"Convert JSON array of objects to RFC 4180 CSV."},{"name":"csv_to_json","description":"Convert CSV string to JSON array of objects."},{"name":"encode_base64","description":"Encode a UTF-8 string to Base64."},{"name":"decode_base64","description":"Decode a Base64 string to UTF-8."},{"name":"generate_hash","description":"Generate MD5, SHA-256, or SHA-512 hex digest."},{"name":"generate_uuid","description":"Generate one or more UUID v4 values."},{"name":"html_to_text","description":"Strip HTML tags and decode entities to plain text."},{"name":"markdown_to_html","description":"Convert Markdown to HTML."},{"name":"extract_url_metadata","description":"Extract Open Graph metadata from a URL."},{"name":"convert_timezone","description":"Convert a datetime between IANA timezones."},{"name":"parse_cron","description":"Parse a cron expression and return next run times."},{"name":"test_regex","description":"Test a regex pattern against an input string."},{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates."},{"name":"extract_pdf_text","description":"Extract text content from a base64-encoded PDF document."},{"name":"resize_image","description":"Resize and compress a base64-encoded image."},{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit)."},{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks."},{"name":"verify_eu_vat","description":"Verify EU VAT number via VIES (European Commission free API)."},{"name":"classify_gdpr","description":"Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values."},{"name":"generate_csp","description":"Generate Content-Security-Policy header from structured directives input."},{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity."},{"name":"detect_secrets","description":"Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis."}],"toolCount":23,"toolsHash":"e0f7f3feafbfe958dc2b213b11e837a2093e15c190aade07b72a2eb8507b21de","serverName":"swiss-army","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T08:27:22.062Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":41,"error":null,"detail":{"tools":[{"name":"health","description":"Health check. Returns server status and optional echo."},{"name":"json_to_csv","description":"Convert JSON array of objects to RFC 4180 CSV."},{"name":"csv_to_json","description":"Convert CSV string to JSON array of objects."},{"name":"encode_base64","description":"Encode a UTF-8 string to Base64."},{"name":"decode_base64","description":"Decode a Base64 string to UTF-8."},{"name":"generate_hash","description":"Generate MD5, SHA-256, or SHA-512 hex digest."},{"name":"generate_uuid","description":"Generate one or more UUID v4 values."},{"name":"html_to_text","description":"Strip HTML tags and decode entities to plain text."},{"name":"markdown_to_html","description":"Convert Markdown to HTML."},{"name":"extract_url_metadata","description":"Extract Open Graph metadata from a URL."},{"name":"convert_timezone","description":"Convert a datetime between IANA timezones."},{"name":"parse_cron","description":"Parse a cron expression and return next run times."},{"name":"test_regex","description":"Test a regex pattern against an input string."},{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates."},{"name":"extract_pdf_text","description":"Extract text content from a base64-encoded PDF document."},{"name":"resize_image","description":"Resize and compress a base64-encoded image."},{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit)."},{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks."},{"name":"verify_eu_vat","description":"Verify EU VAT number via VIES (European Commission free API)."},{"name":"classify_gdpr","description":"Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values."},{"name":"generate_csp","description":"Generate Content-Security-Policy header from structured directives input."},{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity."},{"name":"detect_secrets","description":"Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis."}],"toolCount":23,"toolsHash":"e0f7f3feafbfe958dc2b213b11e837a2093e15c190aade07b72a2eb8507b21de","serverName":"swiss-army","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T01:26:37.901Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":19,"error":null,"detail":{"tools":[{"name":"health","description":"Health check. Returns server status and optional echo."},{"name":"json_to_csv","description":"Convert JSON array of objects to RFC 4180 CSV."},{"name":"csv_to_json","description":"Convert CSV string to JSON array of objects."},{"name":"encode_base64","description":"Encode a UTF-8 string to Base64."},{"name":"decode_base64","description":"Decode a Base64 string to UTF-8."},{"name":"generate_hash","description":"Generate MD5, SHA-256, or SHA-512 hex digest."},{"name":"generate_uuid","description":"Generate one or more UUID v4 values."},{"name":"html_to_text","description":"Strip HTML tags and decode entities to plain text."},{"name":"markdown_to_html","description":"Convert Markdown to HTML."},{"name":"extract_url_metadata","description":"Extract Open Graph metadata from a URL."},{"name":"convert_timezone","description":"Convert a datetime between IANA timezones."},{"name":"parse_cron","description":"Parse a cron expression and return next run times."},{"name":"test_regex","description":"Test a regex pattern against an input string."},{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates."},{"name":"extract_pdf_text","description":"Extract text content from a base64-encoded PDF document."},{"name":"resize_image","description":"Resize and compress a base64-encoded image."},{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit)."},{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks."},{"name":"verify_eu_vat","description":"Verify EU VAT number via VIES (European Commission free API)."},{"name":"classify_gdpr","description":"Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values."},{"name":"generate_csp","description":"Generate Content-Security-Policy header from structured directives input."},{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity."},{"name":"detect_secrets","description":"Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis."}],"toolCount":23,"toolsHash":"e0f7f3feafbfe958dc2b213b11e837a2093e15c190aade07b72a2eb8507b21de","serverName":"swiss-army","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T19:23:32.559Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":135,"error":null,"detail":{"tools":[{"name":"health","description":"Health check. Returns server status and optional echo."},{"name":"json_to_csv","description":"Convert JSON array of objects to RFC 4180 CSV."},{"name":"csv_to_json","description":"Convert CSV string to JSON array of objects."},{"name":"encode_base64","description":"Encode a UTF-8 string to Base64."},{"name":"decode_base64","description":"Decode a Base64 string to UTF-8."},{"name":"generate_hash","description":"Generate MD5, SHA-256, or SHA-512 hex digest."},{"name":"generate_uuid","description":"Generate one or more UUID v4 values."},{"name":"html_to_text","description":"Strip HTML tags and decode entities to plain text."},{"name":"markdown_to_html","description":"Convert Markdown to HTML."},{"name":"extract_url_metadata","description":"Extract Open Graph metadata from a URL."},{"name":"convert_timezone","description":"Convert a datetime between IANA timezones."},{"name":"parse_cron","description":"Parse a cron expression and return next run times."},{"name":"test_regex","description":"Test a regex pattern against an input string."},{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates."},{"name":"extract_pdf_text","description":"Extract text content from a base64-encoded PDF document."},{"name":"resize_image","description":"Resize and compress a base64-encoded image."},{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit)."},{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks."},{"name":"verify_eu_vat","description":"Verify EU VAT number via VIES (European Commission free API)."},{"name":"classify_gdpr","description":"Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values."},{"name":"generate_csp","description":"Generate Content-Security-Policy header from structured directives input."},{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity."},{"name":"detect_secrets","description":"Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis."}],"toolCount":23,"toolsHash":"e0f7f3feafbfe958dc2b213b11e837a2093e15c190aade07b72a2eb8507b21de","serverName":"swiss-army","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T12:25:05.283Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":83,"error":null,"detail":{"tools":[{"name":"health","description":"Health check. Returns server status and optional echo."},{"name":"json_to_csv","description":"Convert JSON array of objects to RFC 4180 CSV."},{"name":"csv_to_json","description":"Convert CSV string to JSON array of objects."},{"name":"encode_base64","description":"Encode a UTF-8 string to Base64."},{"name":"decode_base64","description":"Decode a Base64 string to UTF-8."},{"name":"generate_hash","description":"Generate MD5, SHA-256, or SHA-512 hex digest."},{"name":"generate_uuid","description":"Generate one or more UUID v4 values."},{"name":"html_to_text","description":"Strip HTML tags and decode entities to plain text."},{"name":"markdown_to_html","description":"Convert Markdown to HTML."},{"name":"extract_url_metadata","description":"Extract Open Graph metadata from a URL."},{"name":"convert_timezone","description":"Convert a datetime between IANA timezones."},{"name":"parse_cron","description":"Parse a cron expression and return next run times."},{"name":"test_regex","description":"Test a regex pattern against an input string."},{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates."},{"name":"extract_pdf_text","description":"Extract text content from a base64-encoded PDF document."},{"name":"resize_image","description":"Resize and compress a base64-encoded image."},{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit)."},{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks."},{"name":"verify_eu_vat","description":"Verify EU VAT number via VIES (European Commission free API)."},{"name":"classify_gdpr","description":"Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values."},{"name":"generate_csp","description":"Generate Content-Security-Policy header from structured directives input."},{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity."},{"name":"detect_secrets","description":"Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis."}],"toolCount":23,"toolsHash":"e0f7f3feafbfe958dc2b213b11e837a2093e15c190aade07b72a2eb8507b21de","serverName":"swiss-army","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"health","description":"Health check. Returns server status and optional echo."},{"name":"json_to_csv","description":"Convert JSON array of objects to RFC 4180 CSV."},{"name":"csv_to_json","description":"Convert CSV string to JSON array of objects."},{"name":"encode_base64","description":"Encode a UTF-8 string to Base64."},{"name":"decode_base64","description":"Decode a Base64 string to UTF-8."},{"name":"generate_hash","description":"Generate MD5, SHA-256, or SHA-512 hex digest."},{"name":"generate_uuid","description":"Generate one or more UUID v4 values."},{"name":"html_to_text","description":"Strip HTML tags and decode entities to plain text."},{"name":"markdown_to_html","description":"Convert Markdown to HTML."},{"name":"extract_url_metadata","description":"Extract Open Graph metadata from a URL."},{"name":"convert_timezone","description":"Convert a datetime between IANA timezones."},{"name":"parse_cron","description":"Parse a cron expression and return next run times."},{"name":"test_regex","description":"Test a regex pattern against an input string."},{"name":"convert_currency","description":"Convert an amount between currencies using cached ECB exchange rates."},{"name":"extract_pdf_text","description":"Extract text content from a base64-encoded PDF document."},{"name":"resize_image","description":"Resize and compress a base64-encoded image."},{"name":"validate_nif","description":"Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit)."},{"name":"validate_iban","description":"Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks."},{"name":"verify_eu_vat","description":"Verify EU VAT number via VIES (European Commission free API)."},{"name":"classify_gdpr","description":"Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values."},{"name":"generate_csp","description":"Generate Content-Security-Policy header from structured directives input."},{"name":"validate_cors","description":"Validate CORS policy against security best practices. Reports issues by severity."},{"name":"detect_secrets","description":"Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis."}],"package":null,"toolSurface":{"id":"ts_nq5vu4w2y69a","endpointId":"ep_y25wqz3yub5m","hash":"e0f7f3feafbfe958dc2b213b11e837a2093e15c190aade07b72a2eb8507b21de","toolCount":23,"serverName":"swiss-army","serverVersion":"0.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-12T09:27:58.607Z","lastSeenAt":"2026-10-11T00:28:02.940Z","observations":103,"toolNames":["health","json_to_csv","csv_to_json","encode_base64","decode_base64","generate_hash","generate_uuid","html_to_text","markdown_to_html","extract_url_metadata","convert_timezone","parse_cron","test_regex","convert_currency","extract_pdf_text","resize_image","validate_nif","validate_iban","verify_eu_vat","classify_gdpr","generate_csp","validate_cors","detect_secrets"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_y25wqz3yub5m","url":"https://swiss.api.ainode.tech/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T11:24:08.650Z","auth":{"observedAt":"2026-10-10T11:24:08.667Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-10T11:24:08.686Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"ainode.tech","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-08-13T11:38:57.000Z","validTo":"2026-11-11T12:38:52.000Z","daysToExpiry":31,"sanCount":3,"fingerprint256":"EF:64:E6:B2:E0:8C:AB:B7:46:B2:5A:F9:E1:A6:E1:2F:11:B3:A6:A6:AE:D2:5F:A4:77:A7:09:05:E4:6D:17:67"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.Ainode-tech/swiss-army","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.Ainode-tech%2Fswiss-army","firstSeenAt":"2026-09-06T00:20:45.578Z","fetchedAt":"2026-10-09T17:20:26.861Z","normalizedAt":"2026-10-09T17:20:26.861Z"}]},"firstSeenAt":"2026-09-06T00:20:45.578Z","updatedAt":"2026-10-11T00:30:52.966Z"}