MCP server for analyzing and searching AWS S3 access logs
Three tools with complete Zod schemas and basic descriptions in Japanese. All tools have input schemas with typed parameters and descriptions. However, descriptions are minimal (10-30 chars in English translation), lack actionable context for LLM selection, and do not explain when to use each tool vs. alternatives. No output schemas documented. Error handling exists but returns generic Japanese error messages without recovery guidance. Tool names follow verb_noun pattern (list-, search-, analyze-) but descriptions do not explain dependencies or prerequisites. No tool annotations (readOnlyHint, etc.). Composition is reasonable, three distinct concerns, but descriptions fail to guide LLM reasoning.
S3バケット内のログファイルを分析し、統計情報を生成します
S3バケットからログファイルの一覧を取得します
S3バケット内のログファイルからパターンに一致する行を検索します
Descriptions are too brief (10-30 chars) and lack LLM-optimized context. 'S3バケットからログファイルの一覧を取得します' (Get list of log files from S3 bucket) does not explain when to call this vs. search-s3-logs, what format the output is, or how to use the UNIX timestamp parameters. Baseline: A+ tools average 194 chars with clear WHAT/WHEN/HOW guidance.
Output schemas are not documented. LLMs cannot plan downstream calls or extract fields without knowing the response structure. list-s3-log-files returns string[], search-s3-logs returns unspecified results, analyze-s3-logs returns Record<string, number>, none are formally declared in tool definitions.
Error messages are generic Japanese strings without recovery guidance. 'エラー: <message>' does not tell the LLM whether to retry, ask the user, or try a different tool. Pattern: recovery-guide requires 'Try X instead' or 'This is retryable' classification.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Parameter descriptions lack format/constraint details. 'start' and 'end' are documented as 'UNIX timestamp' but do not specify range, precision (seconds vs. milliseconds), or validation rules. 'pattern' object has optional regex fields but does not explain regex syntax or escaping rules.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All three tools are read-only but this is not declared in the tool definition, forcing LLMs to infer safety from descriptions alone.