MCP server that provides semantic search using Oxen and OpenAI embeddings
Single tool with adequate schema and description, but lacks depth in parameter documentation and error handling guidance. The tool name 'oxen_embedding_search' follows verb_noun convention. Description (194 chars) is within baseline range (p10=34, p90=392) and explains the action clearly. Input schema is present with proper JSON Schema structure. However, parameter descriptions are minimal, 'limit' lacks guidance on valid range or default behavior. No output schema is documented, forcing LLMs to infer result structure. Error handling returns raw error strings without recovery guidance. No tool annotations (readOnlyHint, idempotentHint) despite being read-only. Missing pagination guidance despite returning lists.
Searches for similar content in an Oxen dataframe based on semantic similarity to the provided query. Converts query to an embedding using OpenAI and performs nearest neighbors search.
Output schema not documented. LLMs cannot infer the structure of 'results' array or 'similarity' field types, forcing guesswork on downstream processing.
Parameter 'limit' lacks range constraints and default behavior documentation. Description says 'default: 5' but does not specify min/max bounds, inviting LLMs to pass invalid values.
Error responses lack recovery guidance. Errors return raw strings like 'Error performing similarity search: ...' without suggesting next steps (e.g., 'Check query format' or 'Retry with fewer results').
No tool annotations despite read-only semantics. Tool should declare readOnlyHint=true to signal safety to agents and prevent unnecessary confirmation prompts.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Pagination not addressed. Tool returns 'total_results' but no next_cursor or offset mechanism for large result sets, risking context window exhaustion.