MCP server exposing repository analysis, build validation, and test execution tools for the UpgradePilot framework upgrade automation system. Provides Discovery-phase tools (repo.*, framework detection) and Pipeline-phase tools (build.*, test.*).
UpgradePilot exposes 8 tools with basic descriptions and parameter types, but lacks depth in LLM-optimization. All tools have descriptions (10 - 100 chars, below the 194-char baseline), and input schemas are present with type declarations. However, descriptions are terse and lack context for when/why to use each tool. No output schemas are documented. Error handling is minimal, tools return raw exit codes and stdout/stderr without guidance on recovery. Parameter descriptions are present but generic ('Directory to search', 'Path to a file'). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk profiles (READ_ONLY vs WRITE). Composition is sound, tools are single-purpose and chainable, but descriptions do not guide the LLM on sequencing or dependencies.
Run `dotnet build` against a .csproj/.sln/.slnx path and return exit code plus output.
Run `npm run build` in the given project directory and return exit code plus output.
Run `npm install` in the given project directory and return exit code plus output.
Search for a literal substring across files under a directory matching a search pattern, returning matching file paths and line numbers.
Read the full text content of a file at the given absolute path.
List files under a directory (recursively) matching a search pattern, e.g. '*.csproj'.
Run `dotnet test` against a test project path and return exit code plus output.
No output schemas documented. Tools return raw strings (exit code + stdout/stderr) without structured field definitions. LLMs cannot plan downstream calls or extract specific data.
Descriptions are terse (10 - 55 chars, well below 194-char baseline) and lack context. No guidance on when to use each tool, prerequisites, or what to do with results. E.g., 'Run `dotnet build`...' does not explain when to call build_compile vs test_run or how to interpret exit codes.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk profiles are clear from metadata (READ_ONLY vs WRITE) but not exposed in tool definitions. LLMs cannot reason about safety or retry semantics.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Run `npm test` in the given project directory and return exit code plus output.
Error handling is minimal. Tools return raw exit codes and combined stdout/stderr without actionable recovery guidance. E.g., 'Exit code: 1' tells the LLM nothing about whether to retry, ask the user, or abort.
Parameter descriptions are generic and lack format/constraint guidance. E.g., 'Directory to search' does not specify if relative paths are allowed, whether it must exist, or what happens if it does not.