MCP server for Azure DevOps pull request review automation, providing tools to retrieve pull request diffs and create thread comments on specific lines
Two tools with basic schemas and minimal descriptions. Tool names lack action verbs (should be 'get_pull_request_diff', 'create_thread_comment'). Parameters have types but lack depth. No output schema documented. No error handling guidance. No parameter constraints (enums, ranges). Secrets (AZURE_PAT) exposed in environment but not validated in tool layer. No idempotency hints for write operation.
Create thread comment
Get pull request diff
Tool descriptions are under 20 characters ('Get pull request diff', 'Create thread comment'). LLMs cannot determine when/why to select tools without substantive descriptions.
Tool names do not start with action verbs. 'Get pull request diff' should be 'get_pull_request_diff'; 'Create thread comment' should be 'create_thread_comment'. Verb-noun naming lets LLMs parse intent from the name alone.
No output schema documented. LLMs cannot plan downstream calls or extract structured data. Both tools return generic text responses without field definitions.
No error handling guidance. Errors from Azure API calls (getPullRequestInfo, createThreadComment) are not caught with actionable recovery messages. LLMs receive raw errors with no next-step guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
Parameter 'pullRequestUrl' accepts free-form strings with no validation or format constraint. No description of expected URL format (Azure DevOps URL pattern). LLMs may pass invalid URLs.