MCP server for Azure DevOps (ADO) integration, providing tools to interact with ADO projects, wikis, and organization data
Three tools with basic definitions but significant quality gaps. GetProjects and SearchWikis have minimal descriptions (34 and 33 chars respectively, below the 50-char baseline for clarity). SetProject lacks parameter description entirely. No input schemas visible in tool registration, only inferred from method signatures. No output schemas documented. Error handling is minimal (SearchWikis returns raw JSON; SetProject returns plain strings). No parameter validation guidance. Tool composition is weak: SetProject mutates shared state (memory dict) rather than returning structured data, violating single-responsibility principle.
Get the list of projects for the current organization.
Search the set of project wikis for something.
Sets the name of the target project
No input schemas visible in tool registration. Tool definitions use McpServerTool attributes but no explicit JSON Schema with type/description for parameters.
SetProject parameter 'project' has no description. LLM cannot infer what format is expected (project name? ID? slug?).
Tool descriptions are too short (GetProjects 34 chars, SearchWikis 33 chars). Below 50-char baseline for LLM clarity. Missing WHEN to use, WHAT it returns, and prerequisites.
SetProject mutates a shared Dictionary<string,string> memory object instead of returning structured data. Violates single-responsibility and makes state management implicit and fragile.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 26 | <=2025-11-25 | v2 |
SearchWikis returns raw JSON string (json.ToString()) instead of structured output. LLM must parse unstructured text, wasting tokens and increasing hallucination risk.