A document search chatbot that integrates Google Drive with AWS Bedrock for document summarization. Provides FastAPI endpoints for querying Google Drive and extracting file content, with a Streamlit frontend for user interaction.
This server has significant definition quality gaps. Tool descriptions are present but generic (avg ~80 chars, below the 194-char baseline). Input schemas are visible but lack parameter descriptions, critical for LLM reasoning. The summarize_documents tool accepts an array but provides no guidance on the expected object structure. No output schemas are documented. Error handling exists in code but is not surfaced in tool definitions. Tool naming is reasonable (verb_noun pattern), but parameter naming lacks type suffixes (e.g., 'query' should be 'query_string' or 'search_query'). No tool annotations (readOnlyHint, destructiveHint) despite all being read-only operations.
Fetches and extracts content from a Google Drive file by file ID. Supports text/plain, DOCX, and PDF file types.
Searches Google Drive for files matching a query string
Summarizes Google Drive documents using AWS Bedrock Claude 3 Sonnet model
Parameter descriptions missing. 'query' and 'file_id' have descriptions, but 'documents' array lacks structure guidance, what fields must each object contain? LLMs cannot infer nested object schemas.
No output schemas documented. Tools return structured data (files list, content dict, summary) but LLMs have no formal schema to plan downstream calls or extract fields reliably.
Tool descriptions are generic and lack context. 'Searches Google Drive for files matching a query string' (48 chars) does not explain when to use this vs. get_file_content, or what fields are returned. Baseline is 194 chars.
No tool annotations. All three tools are read-only, but readOnlyHint is not declared. This prevents agents from reasoning about safety and retry logic.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | <=2025-11-25 | v2 |
Error handling not surfaced in tool definitions. Code catches HttpError and returns structured error dicts, but tool schemas do not document error cases or recovery guidance.