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.
23 tools: 1 do something that can't be undone, 19 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things19Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
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/mcpFindings
Matches of fixed checks, with the text they matched.
- Infovalidate_cors
The input schema at properties.allow_credentials.description mentions "Credentials".
What this check looks forMatched text
inputSchema.properties.allow_credentials.description: "Access-Control-Allow-Credentials"
- Infodetect_secrets
The description mentions "credentials".
What this check looks forMatched text
description: "Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entr..."
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".
What this check looks forMatched text
description: "Detect hardcoded secrets, API keys, and credentials in text using pattern matching and entr..."
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".
What this check looks forMatched text
inputSchema.properties.allow_credentials.description: "Access-Control-Allow-Credentials"
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/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.
