Model Context Protocol (MCP) server for seamless integration with Onyx AI knowledge bases
Two tools with solid input schemas and reasonable descriptions, but with notable gaps in parameter documentation and output schema clarity. Naming follows verb_noun convention appropriately (search_onyx, chat_with_onyx). Both tools have descriptions between 34-70 chars, which is at the lower end of the 10-1024 char range. Input schemas are present and typed, but several parameters lack descriptions. Output structure is returned as text content with metadata, but no formal output schema documentation is provided in the code. Error handling returns text responses but lacks actionable recovery guidance. Overall quality is above median but requires improvements in parameter documentation and output schema clarity.
Chat with Onyx to get comprehensive answers
Search the Onyx backend for relevant documents
Parameter descriptions missing or incomplete. 'chunksAbove', 'chunksBelow', 'retrieveFullDocuments', and 'enableAutoDetectFilters' have descriptions in schema but limited actionable guidance. For example, 'chunksAbove' says 'Number of chunks to include above the matching chunk' but does not explain what a 'chunk' is or when to adjust this value.
Output schema not documented. Both tools return text content with metadata, but the expected structure (e.g., fields in 'documents' array, 'sources' format, metadata fields) is inferred from code rather than explicitly documented for the LLM. Code shows 'documents' returned in chat response with 'semantic_identifier' and 'document_id' fields, but this is not declared in a formal output schema.
Error handling lacks recovery guidance. Both tools catch errors and return isError: true with a generic message (e.g., 'Error searching Onyx: ...'). Errors do not guide the LLM on what to do next (retry, ask user, try a different tool).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 61 | - | v1 |
Result limits not enforced or documented. search_onyx accepts maxResults parameter (capped at 10) but chat_with_onyx has no result limit parameter. For tools returning potentially large lists, the description should state limits and pagination strategy. Current implementation does not document how many results are typically returned or how to page through them.
documentSets parameter accepts an array but lacks clarity on expected values. The description says 'List of document set names to search within (empty for all)' but does not explain how to discover valid document set names or what happens if an invalid name is provided.
Response field naming inconsistency. chat_with_onyx returns a field 'chat_session_id' in metadata. If this is a critical field for follow-up calls (continuing a chat), it should be prominently documented and the parameter name should match (chatSessionId in input vs chat_session_id in output). Follow the naming consistency guideline: if input accepts 'chatSessionId', output should return 'chatSessionId' or clearly document the mapping.