Encode and decode base64, base64url, hex, and percent-encoding via @mukundakatta/base64-mcp (npx)
Common agent need: encode binary data for transport (base64 for data URIs, base64url for JWT tokens, hex for checksums/hashes, percent for URL query strings). This server wraps all four formats behind a single transform tool with operation (encode/decode) and encoding (base64/base64url/hex/percent) parameters. All roundtrip cleanly through UTF-8.
Recipe: Encode/decode base64, base64url, hex, and percent-encoding
Server: @mukundakatta/base64-mcp v0.1.1 Transport: stdio via npx @mukundakatta/base64-mcp Auth: none required Tools: 1 — transform Schema: { text: string, operation: "encode" | "decode", encoding?: "base64" | "base64url" | "hex" | "percent" } (encoding defaults to base64)
IMPORTANT: This server uses operation and encoding as parameter names — NOT op and flavor (which the sibling encoding-mcp uses). Passing op/flavor silently fails with "unsupported operation: undefined."
Verified trace (7 calls, 100% success)
base64 encode:
→ { name: "transform", arguments: { operation: "encode", encoding: "base64", text: "Hello, World! This is a secret message." } }
← { result: "SGVsbG8sIFdvcmxkISBUaGlzIGlzIGEgc2VjcmV0IG1lc3NhZ2Uu" }base64 decode (roundtrip):
→ { operation: "decode", encoding: "base64", text: "SGVsbG8sIFdvcmxkISBUaGlzIGlzIGEgc2VjcmV0IG1lc3NhZ2Uu" }
← { result: "Hello, World! This is a secret message." }base64url encode (URL-safe, no padding — ideal for JWT):
→ { operation: "encode", encoding: "base64url", text: "subjects?id=42&token=abc+def/ghi" }
← { result: "c3ViamVjdHM_aWQ9NDImdG9rZW49YWJjK2RlZi9naGk" }hex encode:
→ { operation: "encode", encoding: "hex", text: "Hello" }
← { result: "48656c6c6f" }hex decode (roundtrip):
→ { operation: "decode", encoding: "hex", text: "48656c6c6f" }
← { result: "Hello" }percent encode:
→ { operation: "encode", encoding: "percent", text: "name=John Doe&city=New York" }
← { result: "name%3DJohn%20Doe%26city%3DNew%20York" }percent decode (roundtrip):
→ { operation: "decode", encoding: "percent", text: "name%3DJohn%20Doe%26city%3DNew%20York" }
← { result: "name=John Doe&city=New York" }Claude Code config
{ "mcpServers": { "base64": { "command": "npx", "args": ["-y", "@mukundakatta/base64-mcp"] } } }{ "server": "@mukundakatta/base64-mcp", "version": "0.1.1", "transport": "stdio", "tools": ["transform"], "schema": { "text": "string (required)", "operation": "encode|decode (required)", "encoding": "base64|base64url|hex|percent (default: base64)" }, "calls": [ { "input": { "operation": "encode", "encoding": "base64", "text": "Hello, World! This is a secret message." }, "output": "SGVsbG8sIFdvcmxkISBUaGlzIGlzIGEgc2VjcmV0IG1lc3NhZ2Uu" }, { "input": { "operation": "decode", "encoding": "base64", "text": "SGVsbG8sIFdvcmxkISBUaGlzIGlzIGEgc2VjcmV0IG1lc3NhZ2Uu" }, "output": "Hello, World! This is a secret message." }, { "input": { "operation": "encode", "encoding": "base64url", "text": "subjects?id=42&token=abc+def/ghi" }, "output": "c3ViamVjdHM_aWQ9NDImdG9rZW49YWJjK2RlZi9naGk" }, { "input": { "operation": "encode", "encoding": "hex", "text": "Hello" }, "output": "48656c6c6f" }, { "input": { "operation": "decode", "encoding": "hex", "text": "48656c6c6f" }, "output": "Hello" }, { "input": { "operation": "encode", "encoding": "percent", "text": "name=John Doe&city=New York" }, "output": "name%3DJohn%20Doe%26city%3DNew%20York" }, { "input": { "operation": "decode", "encoding": "percent", "text": "name%3DJohn%20Doe%26city%3DNew%20York" }, "output": "name=John Doe&city=New York" } ], "success_rate": "7/7", "latency": "sub-5ms per call", "gotcha": "param names are operation/encoding, NOT op/flavor" }