Experiment tracking server with MCP (Model Context Protocol) support for accessing experiment data, comparing metrics, and analyzing hyperparameters
The vibetrack MCP server defines 4 tools for experiment tracking. While tool names follow the verb_noun pattern and input schemas are present with typed parameters, the implementation has significant gaps in descriptions, parameter documentation, and output schema clarity. Tool descriptions exist but are minimal (13-80 chars, below the 50-200 char baseline for LLM optimization). Most critically, parameter descriptions are largely absent, parameters like 'smoothing', 'objective', and 'tag' lack explanations of valid values, constraints, or how they affect behavior. Output schemas are not documented in the source, making it impossible for LLMs to plan downstream operations or extract needed fields. The tools are read-only (safe) but lack error handling guidance. The server appears to be inferred from an example file (examples/arch_search_mcp.py) rather than a fully implemented, registered tool framework, this caps confidence in the definition quality.
Analyze a scalar metric for a single experiment, including statistics and trends
Compare scalar metrics across multiple experiments with optional smoothing
Get hyperparameters and final metrics for an experiment
List all experiments in the project
Parameter descriptions are missing or incomplete. 'smoothing' accepts 'none'|'ema'|'moving_average'|'gaussian' but the parameter description does not explain what each method does or when to use each. 'objective' accepts 'min'|'max' but lacks guidance on how it affects ranking. 'tag' lacks a concrete example or explanation of the naming convention (e.g., 'loss/train' vs 'loss_train').
Output schemas are not documented. None of the 4 tools document what fields they return or the structure of their responses. LLMs cannot infer downstream operations (e.g., after list_experiments returns experiment names, what field contains the name?) or plan multi-step workflows.
Tool descriptions are too short (13-80 chars, below 50-200 char baseline). 'List all experiments in the project' (32 chars) lacks context for when to call it vs other discovery tools. 'Compare scalar metrics...' (80 chars) does not explain what 'scalar' means in this domain or what output format to expect. Short descriptions force LLMs to guess intent and reduce confidence in tool selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
No error handling or recovery guidance documented. If an experiment_name is invalid or not found, there is no indication of what error the tool returns or how the LLM should recover.
Tool definitions appear to be inferred from example code (examples/arch_search_mcp.py) rather than from explicit registration in a complete server implementation. The actual MCP server code is not visible in the provided source, only pyproject.toml and web UI code. Without seeing the tool registration logic, it is impossible to verify that schemas are correctly formatted, that tools are discoverable, or that the implementation is complete. This is a critical gap.
Enum constraints not formalized in schema. The 'smoothing' parameter lists valid values in the description ('none', 'ema', 'moving_average', 'gaussian') but these should be declared as an enum in the JSON Schema. Free-form strings invite hallucinated values.