MCP server exposing specrails-core knowledge (specs, personas, memory, config) to MCP-compatible clients
Server has 7 tools with consistent naming (verb_noun pattern: doctor, hub_status, list_projects, get_jobs, get_job_detail, get_analytics, enqueue_job). All tools have descriptions (avg ~80 chars, within baseline). Input schemas are present and typed for all tools. However, descriptions are terse and lack WHEN/WHY guidance. Parameter descriptions exist but are minimal. Output schemas are not documented in the source. Error handling is basic (no recovery guidance visible). No tool annotations (readOnlyHint/destructiveHint). Overall: functional but below production bar.
Health check for the specrails installation. Verifies required directories and config files.
Enqueue a new AI job in a specrails project. The hub server must be running. Commands follow specrails-core conventions (e.g. "implement", "health-check", "product-backlog")
Get analytics data — cost, job counts, success rates. Optionally scoped to a single project
Get detailed information about a specific job including its event log and phase transitions
Get jobs for a specific project with optional status filtering and pagination
Check if specrails-hub is running and accessible
List all projects registered in specrails-hub
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what fields does list_projects return? Does get_jobs return job IDs for get_job_detail chaining?).
Descriptions are terse (avg 60-70 chars) and lack WHEN/WHY context. E.g., 'Check if specrails-hub is running' does not explain when an LLM should call this vs list_projects. Missing dependency hints.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe read-only tools from destructive ones. enqueue_job is WRITE but lacks annotation.
Error handling not visible in source. No recovery guidance (e.g., 'If hub not found, try doctor tool first'). No categorization of retryable vs fatal errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Parameter descriptions are minimal. E.g., 'Project ID from list_projects' assumes LLM knows what list_projects returns. 'Command to run' lacks format/constraint guidance (what are valid commands?).