Static source inference · medium confidence · detected: Logging
Deprecated protocol patterns detected
Summary
This server has 8 tools across two modules (RAGDocs + MSSQL). While tool names follow verb_noun conventions and basic descriptions exist, the server suffers from critical gaps: (1) Input schemas are not fully visible in the provided source code, only partial parameter definitions are shown; (2) Descriptions are generic and do not explain WHEN to use each tool or what makes it distinct from similar tools; (3) No documented output schemas, the code snippet for add_documentation is truncated, making it impossible to verify response structures; (4) No error handling guidance visible in the tool implementations; (5) The RAG tools lack clarity on embedding strategy, vector dimensions, and search result format; (6) SQL tools do not document what columns are returned or how to parse results. The server appears functional but incomplete for production agent use.
Tools (8)
add_directorywritesource verified45/100
Add all supported files from a directory to the RAG database.
add_documentationwritesource verified45/100
Add documentation from a URL to the RAG database.
execute_queryread onlysource verified48/100
Execute a read-only SQL query and return the results.
Output schemas not documented. No visible schema definitions for any tool's response structure. LLMs cannot plan downstream calls without knowing what fields to expect.
Descriptions lack context about WHEN to use each tool and how it differs from similar tools. 'Search through stored documentation' does not explain result format, ranking strategy, or whether it returns full text or summaries.
No error handling guidance visible. Tools like execute_query and add_documentation provide no recovery hints for common failures (SQL syntax error, URL unreachable, embedding service down).
execute_queryadd_documentationadd_directory
Recommendations
Document output schema for every tool. For search_documentation, specify: {results: [{text: string, score: float, source: string, chunk_id: string}], total: int, next_cursor?: string}. For execute_query, specify: {columns: [string], rows: [[any]], affected_rows: int}.
Expand tool descriptions to 100 - 200 characters, explaining WHEN to call the tool and HOW it differs from similar tools. Example: 'search_documentation: Search the RAG vector database using semantic similarity. Use this to find documentation chunks related to a question; results are ranked by embedding distance (0.0=dissimilar, 1.0=identical). Default limit=5 results. Does not return full documents, only relevant chunks.'
Add constraints to numeric parameters. Example: limit parameter description should read 'Maximum number of results to return (1 - 100, default: 5)'. Validate in code and reject invalid values with actionable error messages.
Document the embedding service strategy and vector dimensions. Add a resource (or tool output) that reveals: 'Embeddings: Ollama nomic-embed-text (384-dim) or OpenAI text-embedding-3-small (1536-dim). Search uses cosine similarity. Results ranked by score descending.'
Add error recovery hints to each tool. Examples: 'execute_query: If query fails with SQL syntax error, check table names via get_database_info(). If connection timeout, the database may be unreachable, retry in 30s.' 'add_documentation: If fetch fails with HTTP error, verify URL is accessible. If embedding fails, check QDRANT_URL and EMBEDDING_PROVIDER env vars.'
Spec posture evidence
Inferred effective spec: <=2025-11-25.
Relies on Logging (deprecated) - log to stderr or use OpenTelemetry
RAG tools do not document embedding dimension, vector search strategy, or result ranking. 'Search through stored documentation' with limit=5 does not explain whether results are ranked by relevance score, recency, or popularity.
SQL execute_query tool accepts arbitrary SELECT statements but does not document result pagination, column ordering, or maximum row limits. Unbounded queries could exhaust token context.
Destructive operations (add_documentation, add_directory) lack dry-run or confirmation step. No confirmation-request pattern visible in the code snippet.
Input parameter 'limit' on search_documentation and preview_table has no documented bounds (min/max). LLMs could pass 0, negative, or excessively large values.
search_documentationpreview_table
Implement result pagination for execute_query to cap output. Add offset/limit parameters and return a total_rows count. Document: 'Results are limited to 50 rows per call to prevent context window exhaustion. Use offset to fetch subsequent pages.'
Add a dry-run confirmation pattern for add_documentation and add_directory. Return a preview of N chunks before committing to storage, allowing agents to confirm or cancel.
Document the source metadata structure returned by list_sources and search_documentation. Example: 'Sources include url, file_path, fetch_date, chunk_count, and storage_size. Useful for auditing what's in the RAG database.'
Clarify the relationship between RAG search and MSSQL query tools. Add a discovery tool or documentation explaining when to use semantic search (RAG) vs structured queries (SQL). Example: 'Use search_documentation for natural-language questions over documentation. Use execute_query for structured data lookups and analytics.'
Add idempotency semantics. If add_documentation is called twice with the same URL, should it deduplicate or re-ingest? Document the behavior clearly so agents know whether to retry on failure.