stdio MCP server that lets agent CLIs (codex / gemini / claude) self-manage research project state in Convex
research-mcp defines 14 tools with consistent naming (verb_noun pattern: register, get_state, advance, log_artifact, etc.) and reasonable descriptions (50-150 chars). All tools have input schemas with typed parameters and enums where appropriate (kind, status). However, parameter descriptions are sparse or missing entirely, most params lack explanatory text beyond the name. Output schemas are not documented, forcing LLMs to infer response structure. Error handling is minimal; no recovery guidance or actionable error messages. The server follows a coherent domain model (research projects, experiments, tables) but lacks the depth of documentation and error resilience expected in production tools.
Transition the project to a new state. Validated against the FSM; pass force:true to override (logs the override but skips edge validation).
Remove an experiment record by researchSlug+expSlug.
Remove a table record by researchSlug+tableSlug.
Fetch a single experiment by researchSlug+expSlug.
Return current phase + valid next states for a project.
Fetch a single table by researchSlug+tableSlug.
Parameter descriptions are missing or trivial. Most params (e.g., 'title', 'venue', 'deadline', 'params', 'metrics') have empty or single-word descriptions. LLMs cannot infer parameter semantics from names alone.
Output schemas are not documented. Tools return data but the response structure is not specified. LLMs must guess what fields to expect, risking failed downstream tool calls.
No error handling or recovery guidance. Tools do not specify what errors can occur, whether they are retryable, or what the LLM should do next. A missing project returns an unspecified error.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
List all experiments for a project, optionally filtered by status.
List all registered research projects, optionally filtered by kind.
List all tables for a project, optionally filtered by source experiment.
Record an artifact (file path, URL) at the project's current state without changing state.
Create or update a research project. Initial state defaults to 'ideation' (own) or 'setup' (review).
Create or update an experiment record (upsert by researchSlug+expSlug). Venue-independent. Use to track planned/running/done/failed experiments with their params and metrics.
Create or update a result table (upsert by researchSlug+tableSlug). Venue-independent. Store csv/markdown/latex variants as needed; link to source experiment via expSlug.
Return state-transition history for a project, newest first.
Destructive operations (delete_experiment, delete_table) lack confirmation or dry-run support. An agent could accidentally delete experiments or tables without a safety mechanism.
List tools (list_projects, list_experiments, list_tables) do not document pagination. No limit, offset, or cursor parameters visible; no indication of result count or truncation behavior.