Model Context Protocol server that exposes Vynix annotations to AI coding agents.
Vynix MCP server demonstrates solid definition quality with consistent naming conventions, comprehensive parameter schemas, and well-organized tool composition. All 17 tools follow verb_noun naming patterns (list_, get_, create_, update_, add_, generate_, diagnose_). Input schemas are present and properly typed with Zod validation visible in source. Most parameters include enum constraints and descriptions. However, output schemas are not explicitly documented in the code, and some parameter descriptions lack actionable detail about formats/ranges. Error handling appears basic with no visible recovery guidance. The server appropriately marks tool risks (READ_ONLY, WRITE, IRREVERSIBLE) which aids agent planning. Security is well-handled with sensitive key sanitization visible in the codebase.
Add a comment to an annotation.
Create an issue on GitHub from an annotation. Requires GitHub integration to be configured on the project.
Generate a public review link for a project, optionally expiring after a given number of days.
Run the AI Diagnosis Engine on an annotation to analyze root causes, suggest fixes, and identify suspect source files. This is an AI-intensive operation.
Generate an AI-optimized prompt for an annotation, tailored to a specific coding agent (Claude, Cursor, Copilot, Gemini, etc.).
Retrieve recent activity history in a project (annotation status changes, comments, issue links, etc.).
Output schemas not documented in source code. Tool descriptions indicate what is returned (e.g., 'Retrieve screenshots attached to an annotation, including their dimensions and data URLs') but no formal output schema is visible. LLMs cannot reliably parse unstructured responses or plan downstream tool chaining.
Parameter descriptions lack actionable constraints. Examples: 'limit' parameter says 'Maximum number of results (default 50, max 200)' which is good, but most other numeric/string params lack min/max/format guidance. 'body' in add_comment lacks length limits or formatting expectations.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 71 | 2025-06-18+ | v2 |
Retrieve a single annotation with all its details, including DOM, page metadata, and element selectors.
Retrieve the latest AI diagnosis result for an annotation, including root causes, confidence scores, and suggested fixes.
Retrieve screenshots attached to an annotation, including their dimensions and data URLs.
Retrieve project-wide metrics and overview data: KPIs, status breakdown, activity trends, and recent activity.
List external tracker issues linked to an annotation (GitHub, Jira, Linear, etc.).
List annotations in a project, with optional filtering by status, type, and priority.
Retrieve all comments on an annotation.
List team members with access to a project.
Summarize all external tracker issues linked to annotations in a project.
List all projects accessible to the authenticated user.
Update the status of an annotation (open, in_progress, review, completed, rejected, or archived).
No visible error handling or recovery guidance in tool descriptions. Descriptions state what tools do but don't explain failure modes or next steps. Example: diagnose_annotation does not document what happens if the AI provider is unavailable, if the annotation is unanalyzable, or how the LLM should retry.
Missing idempotency guidance for write operations. update_annotation_status and add_comment are retryable operations, but no description indicates whether repeated calls are safe (idempotent) or could create duplicates/side effects.
Result pagination present but inconsistently documented. list_annotations accepts 'limit' and 'offset', but list_comments, list_members, and list_project_issues do not show pagination parameters. Either pagination is missing for some list tools, or it's underdocumented.
get_metrics description is vague: 'Retrieve project-wide metrics and overview data: KPIs, status breakdown, activity trends, and recent activity.' No input parameters shown, yet the description implies metric selection is possible. Does the LLM pass a project_id or not?