MCP server for IDE integration with Noricum migration tools. Autonomous C/C++ to Rust migration agent with LLM-powered code analysis, translation, and repair.
Noricum provides 10 tools with basic schemas and descriptions, but falls short of production quality. All tools have descriptions (10-100+ chars) and input schemas with type definitions, meeting minimum requirements. However, descriptions are often generic and lack LLM-optimized guidance on WHEN to use each tool or HOW to interpret results. Parameter descriptions are minimal (e.g., 'The C source code to migrate' for migrate_function). No output schemas are documented, LLMs cannot predict what fields to expect from responses. Error handling is absent: no guidance on recovery, retryability, or what to do when compilation fails. Tool composition is weak: migrate_function and repair both modify code but lack clear differentiation. No tool accepts human-friendly identifiers or provides pagination. The repair tool is marked WRITE but lacks confirmation/dry-run patterns. Overall, definitions meet the bare minimum but lack the LLM-optimization and error guidance expected of production tools.
Analyze a C function and return its difficulty classification and characteristics.
Check if Rust source code compiles. Returns success/failure and any compiler errors.
Run Clippy on Rust source code and return a list of warnings.
Compile-check Rust source code with rustc. Returns success/failure and any compiler errors.
Run differential test: compile C and Rust source, run both, compare outputs byte-by-byte.
Score Rust source code for idiomatic quality (0-100). Checks unsafe usage and clippy warnings.
Migrate a C function to idiomatic Rust. Returns the translated Rust source code.
No output schemas documented. LLMs cannot predict response structure, forcing them to guess what fields are returned and how to chain tools. E.g., migrate_function returns 'translated Rust source code' but no schema shows if it's a string, object with metadata, or error details.
No error handling guidance. Tools like check_compilation and compile_check fail silently or return raw compiler errors without recovery hints. LLMs cannot determine if errors are retryable, user-fixable, or fatal.
Duplicate/overlapping tools. check_compilation and compile_check both compile Rust code with identical purpose but different parameter names (source vs source_code). LLMs will waste reasoning cycles deciding between them.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
Read the contents of a source file from disk.
Attempt to fix Rust code that has compiler errors or test failures. Uses rule-based fixes.
Write content to a source file on disk.
repair tool lacks confirmation/dry-run pattern. It modifies code (WRITE risk) but provides no way to preview changes or confirm before applying. Agents cannot safely use this tool without risking data loss.
Parameter descriptions are minimal and lack LLM-optimization. E.g., 'The C source code to migrate' does not explain format expectations, size limits, or what happens if code is invalid. Descriptions should be 50-200 chars with actionable constraints.