Give your LLM glasses to understand meaning, not just read words. Semantic search for AI assistants.
Context Lens provides three tools with clear naming (add_document, list_documents, search_documents) and reasonable descriptions. However, critical gaps exist: parameter descriptions are minimal or missing for most fields, output schemas are completely undocumented, and error handling provides no recovery guidance. The tool descriptions explain what they do and reference constraints (file types, max sizes, character limits), which is positive. However, parameter-level documentation is sparse, and LLMs have no visibility into what these tools return or how to chain them. The server follows basic naming conventions (verb_noun) and provides good high-level descriptions, but falls short of production quality due to schema and parameter documentation gaps.
Adds a document or GitHub repository to the knowledge base. Supports local files, GitHub repositories, and direct file URLs. Supported file types: .py, .txt, .md, .js, .jsx, .ts, .tsx, .mjs, .cjs, .java, .cpp, .c, .h, .hpp, .go, .rs, .rb, .php, .json, .yaml, .yml, .toml, .sh, .bash, .zsh Maximum file size: 10 MB (configurable via MAX_FILE_SIZE_MB environment variable)
Lists all documents in the knowledge base with pagination support.
Searches documents using semantic vector similarity to find relevant content. Uses AI embeddings to understand meaning, not just keywords. Finds related concepts even without exact word matches (e.g., "authentication" finds "login", "credentials").
Output schemas completely undocumented. LLMs cannot see what fields these tools return, making it impossible to chain tools or extract results reliably.
Parameter descriptions are absent or minimal. 'limit' and 'offset' in list_documents have basic descriptions, but add_document's 'file_path' description is the only substantive one. Parameters lack guidance on accepted formats, constraints, or when to use each.
Error handling provides no recovery guidance. No indication of what errors are retryable, what the agent should do if a file is too large, or how to handle missing documents.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 32 | - | v1 |
list_documents and search_documents accept 'limit' parameters but return type is unknown. No documentation of pagination structure (total_count, next_cursor, items array, etc.), forcing LLMs to guess result shape.
search_documents query parameter lacks format guidance. Description says '1-10,000 characters' but LLMs have no sense of what constitutes a valid query (natural language, keywords, multi-line, special characters).
add_document description references supported file types but does not explain the expected behavior when unsupported types are provided. Does it reject them? Skip them? Return a partial result?