MCP server for scanning Google Drive for PDFs, chunking them, embedding them, and storing in a vector database. Also supports fetching papers from arXiv URLs, DOIs, or direct PDF links.
Both tools have descriptions but lack critical schema detail. ingest_papers has empty input schema ({}), violating the requirement that every parameter needs a description and type. fetch_paper has a single string parameter with description, but no input schema validation visible. Descriptions are present (94 and 118 chars respectively) but generic, they state WHAT but not WHEN to use or prerequisites. No output schemas documented. No error handling guidance. No parameter constraints (e.g., URL format validation). Tools combine multiple concerns (fetch + chunk + embed + store) rather than single responsibility. No idempotency guarantees stated despite WRITE risk classification.
Fetch a single PDF from an arXiv URL, DOI, or direct PDF link, chunk it, embed it, and store in the vector database.
Scan the authenticated Google Drive for PDFs, chunk them, embed them, and store in the vector database. Skips already-ingested files.
ingest_papers has empty input schema ({}). No parameters documented despite tool accepting Google Drive authentication context.
fetch_paper accepts 'url' parameter but no format constraint, regex pattern, or enum of valid URL types (arXiv, DOI, direct PDF). LLMs will hallucinate invalid URLs. Missing: 'Must be a valid arXiv URL (arxiv.org/abs/...), DOI (doi.org/...), or direct HTTPS PDF link.'
No output schemas documented for either tool. LLMs cannot plan downstream calls or extract success/failure status. What fields does ingest_papers return? How many papers ingested? What errors occurred?
Both tools combine fetch + chunk + embed + store into single operations. Violates single-responsibility principle. Agent cannot retry just the embedding step if that fails, or reuse chunks with different embeddings. Should split into separate tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
No error handling guidance. If Google Drive auth fails, if PDF is corrupted, if vector DB is full, what does the agent do? No recovery hints, no retryable vs fatal classification, no actionable error messages.