MCP server giving AI agents local encoding tools — base64/hex/url encode-decode & URL parsing (free), plus JWT-decode & file↔base64 (Pro). Runs locally, nothing uploaded.
VaultBase MCP provides 5 tools with clear, concise descriptions (avg 85 chars) and well-defined input schemas using Zod. All tools have descriptions and parameters are typed with enums where appropriate. However, output schemas are not formally documented, responses are free-text strings rather than structured objects. Error handling is basic (try-catch with message wrapping). Tool names are action-oriented (encode, decode, parse, jwt_decode, file_base64) but lack verb_noun consistency. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles. Parameter descriptions are minimal (10-30 chars), below the 72-char baseline. The 'file_base64' tool accepts absolute file paths without documented sanitization, creating path-traversal risk.
Decode base64, base64url, hex, or URL-encoded text back to UTF-8.
Encode text as base64, base64url, hex, or URL-encoding.
Pro: encode a local file to base64 text, or decode base64 text back to a file.
Pro: decode a JWT's header and payload (does NOT verify the signature).
Break a URL into protocol, host, path, query parameters and hash.
Output schemas not documented. All tools return free-text strings (via text() wrapper) rather than structured JSON objects. LLMs cannot parse or chain results reliably.
Parameter descriptions are minimal (10-30 chars, well below 72-char baseline). 'scheme' param lacks guidance on when to use each encoding. 'direction' param in file_base64 lacks explanation of encode vs decode semantics.
No tool annotations despite clear risk profiles. 'encode' and 'decode' are READ_ONLY but lack readOnlyHint. 'file_base64' is WRITE but lacks destructiveHint. Agents cannot infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
file_base64 accepts absolute file paths without documented path-traversal sanitization. Tool description does not warn about security implications or constraints (e.g., 'paths must be within /tmp').
Error handling is generic. Catch blocks return 'Error: ' + e.message without categorization (retryable vs fatal) or recovery guidance. LLMs cannot determine next steps.