Static source inference · medium confidence · detected: Logging
Deprecated protocol patterns detected
Summary
The server defines 3 tools with basic schemas and descriptions, but falls significantly short of production-grade quality. Tool descriptions are present but generic (averaging ~80 characters, below the 194-char baseline). Input parameters lack proper type constraints and validation guidance. No output schemas are documented. Error handling is minimal. Naming is acceptable but descriptions do not guide LLM tool selection effectively. The server operates in READ_ONLY mode (no state-modifying operations), which mitigates some safety concerns, but the overall definition quality is below the 70+ threshold needed for confident production recommendation.
Tools (3)
collect_contextread only50/100
Collects file context from the repository for prompt enhancement
enhance_promptread onlyauth50/100
Enhances coding prompts using configured LLM providers
health_checkread only50/100
Performs health check of the MCP server and its providers
No output schemas documented. Tools return JSON results but LLMs have no visibility into field names, types, or structure needed for downstream tool calls or data extraction.
Input parameter descriptions lack actionable constraints. 'provider' parameter accepts specific enum values (anthropic, openai, gemini, perplexity, azureOpenAI) but this constraint is not encoded in the schema or described in the parameter description, inviting hallucinated invalid provider names.
Generic descriptions inadequate for LLM tool selection. 'Enhances coding prompts using configured LLM providers' is 59 characters, below the 194-char baseline. Does not answer WHEN to use this vs alternatives, WHAT happens on success, or prerequisite context. LLM will guess wrong when multiple enhancement-like tools exist.
enhance_prompt
Recommendations
Document output schemas for all 3 tools. For enhance_prompt, specify: {enhanced_prompt: string, provider_used: string, tokens_used?: number, execution_time_ms?: number}. For collect_context, specify: {files: Array<{path: string, content: string, size_bytes: number}>, total_files: number, bytes_collected: number}. This enables LLMs to plan downstream operations.
Expand enhance_prompt description to 150 - 200 characters: 'Enhances a coding prompt by submitting it to a selected LLM provider (anthropic, openai, gemini, perplexity, azureOpenAI) and returning the enhanced version. Use this after collect_context to enrich the prompt with repository context. Returns the enhanced prompt and metadata about which provider was used.'
Add enum constraint to provider parameter schema: {"type": "string", "enum": ["anthropic", "openai", "gemini", "perplexity", "azureOpenAI"], "description": "The LLM provider to use for enhancement. If not provided, defaults to the configured DEVORA_LLM_PROVIDER environment variable."}
Expand collect_context description to clarify dependencies and output: 'Recursively collects source files from a directory, optionally filtering by glob patterns, and aggregates their content for use with enhance_prompt. Returns file paths, content, and counts. Respects .gitignore and .mcpignore. Useful for providing repository context before prompt enhancement.'
Document result limits for collect_context: 'Total files collected is capped at 500 and total bytes at 10MB per call. If the repository exceeds these limits, use glob patterns to focus on specific directories or file types.'
Spec posture evidence
Inferred effective spec: <=2025-11-25.
Relies on Logging (deprecated) - log to stderr or use OpenTelemetry
collect_context tool description ('Collects file context from the repository') is 59 characters and does not explain what file context means, what output structure to expect, or when to call this before enhance_prompt. Undocumented dependency.
No error classification or recovery guidance. If enhance_prompt fails (invalid provider, rate limit, API error), the tool does not tell the LLM whether to retry, ask the user, or abandon the plan. Error responses are missing from the visible tool definitions.
Parameter descriptions are minimal. 'directory' param (collect_context) has a 40-char description. 'patterns' param is described as 'Optional glob patterns to include files' but does not specify format, example patterns, or default behavior if omitted.
No pagination or result limits documented. collect_context returns 'file context from the repository' but does not specify if results are paginated, capped, or unbounded. Large repositories could exhaust context windows; no guidance for LLMs on handling large result sets.
collect_context
Add error classification and recovery guidance to tool descriptions. E.g. for enhance_prompt: 'Errors are classified as: (1) Invalid provider → check DEVORA_LLM_PROVIDER config; (2) Rate limit → retry after 30 seconds; (3) API key invalid → verify provider credentials in environment; (4) Prompt too large → reduce prompt size and retry.'
Parameterize provider selection in a way that guides LLM behavior. Change description to: 'Optional. The LLM provider to use. If omitted, uses the DEVORA_LLM_PROVIDER env var. Must be one of: anthropic (Claude), openai (GPT-4), gemini (Google Gemini), perplexity (Perplexity), azureOpenAI (Azure OpenAI). Each has different pricing, latency, and capability profiles, choose based on your prompt complexity.'
Document health_check output schema: {status: 'ok'|'degraded'|'error', providers: {anthropic: boolean, openai: boolean, gemini: boolean, perplexity: boolean, azureOpenAI: boolean}, uptime_seconds: number, version: string, timestamp: string}. This lets LLMs understand the health state and which providers are available.