The server defines 4 tools with basic structures, but quality is inconsistent. Two tools (process_items, get_current_time) have explicit schemas and descriptions in example_server. Two tools (return_string, search_about_neuroconv) in semantic_search have descriptions but schemas are inferred from parameter annotations only, no explicit schema registration visible in source. The description for search_about_neuroconv is verbose (347 chars with marketing copy) but lacks clarity on what the tool actually returns. Naming is action-oriented (process, get, return, search) but generic. Parameter descriptions exist but are minimal. No error handling, no output schema documentation, no parameter constraints (enums, ranges). Tools show no tool annotations (readOnlyHint, etc.). Semantic_search tools lack explicit input schema visibility, they appear to rely on function signature introspection rather than declared JSON schemas.
Get the current time in specified format
Process a list of items with progress updates
Return a string for testing.
Use this tool to ask questions and learn about NeuroConv. NeuroConv is a Python package for converting neurophysiology data in a variety of proprietary formats to the Neurodata Without Borders (NWB) standard. Features: - Reads data from 40 popular neurophysiology data formats and writes to NWB using best practices. - Extracts relevant metadata from each format. - Handles large data volume by reading datasets piece-wise. - Minimizes the size of the NWB files by automatically applying chunking and lossless compression. - Supports ensembles of multiple data streams, and supports common methods for temporal alignment of streams.
Semantic search tools (return_string, search_about_neuroconv) lack explicit input schema visibility in source code, schemas appear inferred from function signatures rather than declared as JSON Schema objects. Per hard scoring rule, capping schema scores at 30 for inferred schemas.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract fields when return types are unknown.
Tool naming lacks specificity. 'return_string' is generic and ambiguous, does it search, transform, or echo? Should be verb_noun like 'search_neuroconv' or 'fetch_neuroconv_info'.
search_about_neuroconv description is 347 chars with marketing copy about NeuroConv features. Excessive length dilutes actionable intent for LLM selection. Should be 50-150 chars stating what the tool does and when to use it.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 48 | - | v1 |
Parameter 'format' in get_current_time lacks enum constraint. Description mentions '12h' or '24h' but free-form string allows hallucinated values like '12-hour' or 'AM_PM'.
No error handling guidance. Tools lack recovery hints. If search_about_neuroconv fails due to Qdrant unavailability, no actionable error message guides the LLM.
No tool annotations present (readOnlyHint, idempotentHint, destructiveHint). All tools are marked READ_ONLY, but this is not formally declared in tool metadata.
get_current_time has no documented behavior for invalid format values. LLM may pass 'invalid_format' and get a cryptic error or unexpected fallback.