A collection of MCP servers demonstrating various patterns including document management, video conversion, GitHub API integration, Azure DevOps, SonarQube, MongoDB, file system access, and API connectors
This collection exhibits pervasive quality gaps across 27 tools. Most tools lack proper input schemas (many inferred from descriptions only), descriptions are generic or missing context, and parameter documentation is sparse. The 'add' tool has a basic schema but no error handling. Tools like 'convert_video', 'read_dir', and 'list_roots' show context-aware logic but lack output schema documentation. GitHub/Azure DevOps/SonarQube tools have better descriptions but missing parameter constraints (enums for 'state', 'status', 'severities'). No tool declares permissions, supports dry-run, or provides recovery guidance. Composition is poor: 'list_pull_requests' appears twice with different signatures (GitHub vs Azure), inviting LLM confusion. Average tool description ~120 chars (below 194 baseline); many parameters lack type hints or descriptions.
Add two integers together
Convert an MP4 video file to another format using ffmpeg
Edits the contents of a document given its ID and new content.
Read documents using approved equality filters
Get details for a specific SonarQube issue.
Get file content for a repository path at a specific commit.
Get SonarQube measures used to prioritize fixes in Copilot.
Duplicate tool names: 'list_pull_requests' and 'get_pull_request' appear in both GitHub and Azure DevOps contexts with different signatures. LLMs cannot disambiguate and will select the wrong tool.
Output schemas are not documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., does get_repository return 'repo_id' or 'id'?). This breaks tool chaining.
Parameter constraints missing: 'state' in list_pull_requests/list_issues should be enum (open|closed|all), 'severities' in list_project_issues should be enum. Free-form strings invite hallucinated values.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Get pull request details by number
Get pull request metadata for a specific Azure DevOps PR.
Get a GitHub repository by owner and repo name
Insert one approved document when writes are enabled
List issues for a repository
List open issues so Copilot can map SonarQube findings to local files.
List changed files for a PR iteration (defaults to latest iteration).
List iterations for a PR so clients can fetch file-level changes by iteration.
List review threads and comments for a PR so Copilot can summarize review feedback.
List work items linked to a PR.
List pull requests for a repository
List pull requests for a repository. Use this before reviewing a PR in Copilot.
List Azure DevOps repositories in the configured project.
List all directories that are accessible to this server. These are the root directories where files can be read from or written to.
Get the SonarQube quality gate status for a project.
Read directory contents. Path must be within one of the client's roots.
Reads the contents of a document given its ID.
Read a text file's contents from an allowed root only
Search filenames and text content across allowed roots
Summarize text using LLM sampling
No error handling guidance. Tools like 'convert_video', 'read_file', 'get_repository' provide no recovery hints. If a call fails, the LLM has no actionable next step.
Destructive operations (edit_doc_contents, insert_document, convert_video) lack dry-run or confirmation steps. Agents can accidentally modify or delete data without safeguards.