MCP server for querying and analyzing Google Cloud Platform logs
Five tools with consistent naming (verb_noun pattern: gcp_logs_*) and complete input schemas. All parameters have type definitions and descriptions. However, tool descriptions are terse (15-80 chars, well below the 194-char baseline), lacking context on WHEN to use each tool and HOW they differ. Output schemas are not documented, LLMs cannot predict response structure. No error handling guidance. Parameter descriptions are minimal; e.g., 'target' lists options but doesn't explain when to pick each. Missing idempotency and retry semantics.
Check whether the target has errors in a time window
Return the most recent error log entry in a time window
List raw GCP log entries for a time window
List configured projects available to this MCP server
Summarize GCP errors in last X hours (groups by normalized message)
Tool descriptions are too brief (15 - 80 chars vs. 194-char baseline). Missing WHEN to use each tool and how they differ. E.g., gcp_logs_list vs gcp_logs_summarize_errors both fetch errors but serve different purposes, not explained.
Output schemas are not documented. LLMs cannot predict response structure (e.g., does gcp_logs_summarize_errors return an array of error groups or a single summary object?). Blocks downstream tool chaining.
Parameter 'target' accepts enum values (appengine|cloud_run|cloud_functions|gce|gce_instance|any) but descriptions don't explain when to pick each. LLMs must guess which target matches the user's intent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No error handling guidance. If a project_id is invalid or user lacks permissions, what error is returned? How should the LLM recover? No recovery hints provided.
No tool annotations (readOnlyHint, idempotentHint). All tools are read-only and idempotent, but this is not declared. LLMs cannot optimize retry logic or understand safety guarantees.