Skip to content

io.github.Ainode-tech/swiss-army

by Ainode-tech · remote · no sign-in to list tools · v0.1.1 · published by GitHub user Ainode-tech

22 utility tools (x402 USDC on Base): currency, PDF, image, GDPR. Free health.

Final · 1Changes · 19

23 tools: 1 do something that can't be undone, 19 change things and 3 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http swiss-army https://swiss.api.ainode.tech/mcp

Findings

Matches of fixed checks, with the text they matched.

2 info
  • The input schema at properties.allow_credentials.description mentions "Credentials".

    Matched text

    inputSchema.properties.allow_credentials.description: "Access-Control-Allow-Credentials"

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entr..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

23 tools

Can't be undone 1Claude Code: ask
  • convert_currencyConvert an amount between currencies using cached ECB exchange rates.No findings

    Why it is in this group

    • The name "convert_currency" says "convert": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Convert an amount between currencies using cached ECB exchange rates.
Changes things 19Claude Code: ask
  • classify_gdprDetect GDPR PII categories in text (email, phone, IP, name, location).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Detect GDPR PII categories in text (email, phone, IP, name, location). Returns categories only, never actual PII values.
  • convert_timezoneConvert a datetime between IANA timezones.No findings

    Why it is in this group

    • The name "convert_timezone" says "convert": a word for a change.
    Description, as the server wrote it
    Convert a datetime between IANA timezones.
  • csv_to_jsonConvert CSV string to JSON array of objects.No findings

    Why it is in this group

    • The description's first verb is "convert": a word for a change.
    Description, as the server wrote it
    Convert CSV string to JSON array of objects.
  • decode_base64Decode a Base64 string to UTF-8.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Decode a Base64 string to UTF-8.
  • detect_secretsDetect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entr..."

      What this check looks for
    Description, as the server wrote it
    Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entropy analysis.
  • encode_base64Encode a UTF-8 string to Base64.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Encode a UTF-8 string to Base64.
  • extract_pdf_textExtract text content from a base64-encoded PDF document.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Extract text content from a base64-encoded PDF document.
  • extract_url_metadataExtract Open Graph metadata from a URL.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Extract Open Graph metadata from a URL.
  • generate_cspGenerate Content-Security-Policy header from structured directives input.No findings

    Why it is in this group

    • The name "generate_csp" says "generate": a word for a change.
    Description, as the server wrote it
    Generate Content-Security-Policy header from structured directives input.
  • generate_hashGenerate MD5, SHA-256, or SHA-512 hex digest.No findings

    Why it is in this group

    • The name "generate_hash" says "generate": a word for a change.
    Description, as the server wrote it
    Generate MD5, SHA-256, or SHA-512 hex digest.
  • generate_uuidGenerate one or more UUID v4 values.No findings

    Why it is in this group

    • The name "generate_uuid" says "generate": a word for a change.
    Description, as the server wrote it
    Generate one or more UUID v4 values.
  • healthHealth check.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Health check. Returns server status and optional echo.
  • html_to_textStrip HTML tags and decode entities to plain text.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Strip HTML tags and decode entities to plain text.
  • json_to_csvConvert JSON array of objects to RFC 4180 CSV.No findings

    Why it is in this group

    • The description's first verb is "convert": a word for a change.
    Description, as the server wrote it
    Convert JSON array of objects to RFC 4180 CSV.
  • markdown_to_htmlConvert Markdown to HTML.No findings

    Why it is in this group

    • The description's first verb is "convert": a word for a change.
    Description, as the server wrote it
    Convert Markdown to HTML.
  • parse_cronParse a cron expression and return next run times.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Parse a cron expression and return next run times.
  • resize_imageResize and compress a base64-encoded image.No findings

    Why it is in this group

    • The name "resize_image" says "resize": a word for a change.
    Description, as the server wrote it
    Resize and compress a base64-encoded image.
  • test_regexTest a regex pattern against an input string.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Test a regex pattern against an input string.
  • verify_eu_vatVerify EU VAT number via VIES (European Commission free API).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Verify EU VAT number via VIES (European Commission free API).
Only reads 3Claude Code: allow
  • validate_corsValidate CORS policy against security best practices.1 finding

    Why it is in this group

    • The name "validate_cors" says "validate": a word for reading.

    Findings

    • Info

      The input schema at properties.allow_credentials.description mentions "Credentials".

      Matched text

      inputSchema.properties.allow_credentials.description: "Access-Control-Allow-Credentials"

      What this check looks for
    Description, as the server wrote it
    Validate CORS policy against security best practices. Reports issues by severity.
  • validate_ibanValidate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks.No findings

    Why it is in this group

    • The name "validate_iban" says "validate": a word for reading.
    Description, as the server wrote it
    Validate IBAN (ISO 13616 mod-97) with SEPA BIC lookup for Portuguese banks.
  • validate_nifValidate Portuguese NIF/NIPC tax identification number (mod-11 check digit).No findings

    Why it is in this group

    • The name "validate_nif" says "validate": a word for reading.
    Description, as the server wrote it
    Validate Portuguese NIF/NIPC tax identification number (mod-11 check digit).

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.1.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http swiss-army https://swiss.api.ainode.tech/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__swiss-army__validate_nif",
      "mcp__swiss-army__validate_iban",
      "mcp__swiss-army__validate_cors"
    ],
    "ask": [
      "mcp__swiss-army__health",
      "mcp__swiss-army__json_to_csv",
      "mcp__swiss-army__csv_to_json",
      "mcp__swiss-army__encode_base64",
      "mcp__swiss-army__decode_base64",
      "mcp__swiss-army__generate_hash",
      "mcp__swiss-army__generate_uuid",
      "mcp__swiss-army__html_to_text",
      "mcp__swiss-army__markdown_to_html",
      "mcp__swiss-army__extract_url_metadata",
      "mcp__swiss-army__convert_timezone",
      "mcp__swiss-army__parse_cron",
      "mcp__swiss-army__test_regex",
      "mcp__swiss-army__convert_currency",
      "mcp__swiss-army__extract_pdf_text",
      "mcp__swiss-army__resize_image",
      "mcp__swiss-army__verify_eu_vat",
      "mcp__swiss-army__classify_gdpr",
      "mcp__swiss-army__generate_csp",
      "mcp__swiss-army__detect_secrets"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as swiss-army. Review it before you use it.