Analyze certificate/keystore files and return structured JSON metadata. Read-only analysis of PEM, DER, PKCS#12, JKS/JCEKS/BKS/UBER, PKCS#7, PKCS#8, and OpenSSH formats.
KeyProbe demonstrates solid definition quality with clear naming, comprehensive descriptions, and proper schema definitions. Both tools follow verb_noun patterns (analyze_from_*) and include detailed parameter descriptions. Tool annotations are present (readOnlyHint, idempotentHint, openWorldHint). However, output schemas are not formally documented in the code, the description mentions JSON fields but no explicit schema definition is visible. Error handling is minimal; no recovery guidance for common failures (invalid base64, unsupported formats, password errors). Prompts are well-structured but add complexity without clear necessity.
Analyze a certificate/keystore provided as base64 and return a JSON summary. Use this when the client cannot expose a local path (e.g., remote deployment). Read-only and idempotent.
Analyze a local certificate/keystore file and return a detailed JSON summary. Read-only and idempotent. Best for sandboxed setups where the server can read files.
Output schema not formally documented. Code mentions JSON fields (size, digest_sha256, format, entries, subject, issuer, etc.) in descriptions and prompts, but no explicit return type schema is visible in tool definitions. LLMs cannot reliably extract or chain on undocumented output fields.
No error handling or recovery guidance. Tools lack try-catch blocks or error classification. If base64 decoding fails, password is wrong, or format is unsupported, the LLM receives a raw exception with no actionable next step. Should return structured errors with suggestions (e.g., 'Invalid base64. Ensure content_b64 is RFC 4648 raw format without whitespace.').
Path traversal risk in analyze_from_local_path. The resolve_path() function is called but not shown in source. If it does not properly validate against a sandbox/allowlist, an LLM could be tricked into reading /etc/passwd or other sensitive files. Code comment mentions 'sandbox/allowlist' but implementation is opaque.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Prompts add complexity without clear value. audit_local_file and audit_base64_file are prompts that instruct the LLM to call the tools and format output. This is redundant, the LLM can call tools directly and format results. Prompts should provide domain expertise or multi-step workflows, not just wrapper instructions.
No pagination or result limits documented. If a keystore contains hundreds of entries, the response could be very large. No mention of max entries returned, pagination support, or truncation behavior. Large responses waste tokens and risk context window exhaustion.