Read-only Gemini consultant exposed as a local stdio MCP server.
Two well-defined tools with complete schemas, clear descriptions, and proper tool annotations. ask_gemini has comprehensive parameter documentation with enums and constraints; get_gemini_consultant_config is minimal but correct. Both tools are read-only and properly annotated. Descriptions are concise (90 - 160 chars) and actionable. No critical gaps, but output schemas are not formally documented and error handling could be more granular.
Ask an independent Gemini model for a focused second opinion using only the supplied prompt and context.
Return safe, read-only Gemini consultant configuration without exposing the API key.
Output schemas not formally documented. ask_gemini and get_gemini_consultant_config return text content, but the structure and fields are not declared in the tool definition. LLMs cannot plan downstream operations without knowing what fields to extract.
Error handling lacks recovery guidance. ask_gemini catches ConsultantValidationError and ProviderRequestError but returns generic messages ('failed unexpectedly'). LLMs cannot determine if the error is retryable, user-fixable, or fatal.
thinkingBudget parameter lacks validation constraints. Description states 'cannot be used with thinkingLevel' but no mutual-exclusivity enforcement is visible. LLMs may pass both, causing silent failures or unexpected behavior.
maxOutputTokens range not specified in description. Parameter accepts 1 - 65536 but description omits bounds. LLMs may pass invalid values without guidance on acceptable ranges.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
get_gemini_consultant_config returns JSON string, not structured object. Returning JSON.stringify() forces LLMs to parse text rather than extract typed fields. Should return a structured response with typed fields.