vynix-mcp-server
OfficialThe Vynix MCP server gives AI coding agents direct access to your Vynix annotation/feedback platform, enabling you to read, analyze, and act on UI annotations without leaving your editor.
Read & Browse
List projects, and list/filter annotations by status, type, or priority
Fetch a single annotation with full captured context: page info, target element (selector, XPath, styles), surrounding DOM, and runtime diagnostics (console + network errors)
Read discussion threads (comments) on any annotation
Get team members (roles, status) and recent activity feeds
AI & Analysis
Read existing AI diagnoses — root causes, confidence scores, suggested fixes, and likely source files
Run the AI Diagnosis Engine on an annotation to generate a fresh diagnosis (calls an external AI provider, uses tokens)
Generate ready-to-paste coding prompts formatted for Claude, Copilot, Cursor, Gemini, Codex, or a generic assistant (deterministic, no AI spend)
Screenshots & Visuals
View attached screenshots of the reported issue region
GitHub Integration
List GitHub issues linked to an annotation (with optional live refresh of open/closed state and linked PRs)
List all tracker issues across an entire project
Create a GitHub issue directly from an annotation, embedding an AI-generated prompt in the issue body
Metrics & Reporting
Get KPI metrics — status breakdowns, daily time series, and activity overviews
Create a public share link for a project so stakeholders can review annotations without an account
Write / Update
Update annotation status (e.g.,
in_progress,completed,rejected)Post comments to an annotation's thread (notifies the team)
Guided Workflow
fix_annotation— a step-by-step prompt that walks the agent from reading an annotation through context → screenshots → AI diagnosis → generating a fix → updating status and posting a comment
Enables creating GitHub issues from Vynix annotations and listing associated issues
Vynix MCP Server
Model Context Protocol server for Vynix. It gives coding agents direct access to visual feedback, bug reports, screenshots, diagnostics, comments, and issue workflows so agents can reason from real context instead of guessing.
Why Vynix
Feedback with evidence: page metadata, target element, screenshot, console/network context.
End-to-end execution: inspect feedback, diagnose, generate coding prompts, create GitHub issues, update status, comment.
Agent-safe hints: read-only/idempotent/open-world annotations for better approval behavior in MCP clients.
Registry-ready metadata for modern MCP directories.
Related MCP server: yo-bug
Architecture
flowchart LR
A[MCP Client\nClaude/Cursor/Copilot/VS Code] -->|stdio or streamable-http| B[Vynix MCP Server]
B --> C[Vynix API]
B --> D[GitHub API via Vynix backend]
C --> E[Projects]
C --> F[Annotations]
C --> G[Screenshots and diagnostics]Features
17 production tools for read and write workflows.
Resource catalog for server metadata, tool/prompt/skill references, and contextual summaries.
Workflow prompts for QA, release readiness, PM briefings, and engineering planning.
Dual transport support:
stdioand Streamable HTTP.Auth via API token or email/password refresh flow.
Installation
Node.js 18+ is required.
NPX (recommended)
{
"mcpServers": {
"vynix": {
"command": "npx",
"args": ["-y", "@usevynix/mcp-server"],
"env": {
"VYNIX_API_URL": "https://www.vynix.in",
"VYNIX_API_TOKEN": "PASTE_YOUR_TOKEN_HERE"
}
}
}
}npm global install
npm install -g @usevynix/mcp-server
vynix-mcpDocker
docker run --rm -i \
-e VYNIX_API_URL=https://www.vynix.in \
-e VYNIX_API_TOKEN=PASTE_YOUR_TOKEN_HERE \
ghcr.io/usevynix/vynix-mcp:latestLocal development
git clone https://github.com/UseVynix/vynix-mcp.git
cd vynix-mcp
npm install
npm run build
npm run check
node dist/index.jsClient Configuration
Claude Desktop
Use claude_desktop_config.json:
{
"mcpServers": {
"vynix": {
"command": "npx",
"args": ["-y", "@usevynix/mcp-server"],
"env": {
"VYNIX_API_TOKEN": "PASTE_YOUR_TOKEN_HERE"
}
}
}
}Diagnostics are written to stderr; stdout is reserved for the protocol stream.
Cursor
Use ~/.cursor/mcp.json.
{
"mcpServers": {
"vynix": {
"command": "npx",
"args": ["-y", "@usevynix/mcp-server"],
"env": {
"VYNIX_API_TOKEN": "PASTE_YOUR_TOKEN_HERE"
}
}
}
}VS Code
Use .vscode/mcp.json with top-level servers:
{
"servers": {
"vynix": {
"command": "npx",
"args": ["-y", "@usevynix/mcp-server"],
"env": {
"VYNIX_API_TOKEN": "PASTE_YOUR_TOKEN_HERE"
}
}
}
}Windsurf
Use your Windsurf MCP config file with this server block:
{
"mcpServers": {
"vynix": {
"command": "npx",
"args": ["-y", "@usevynix/mcp-server"],
"env": {
"VYNIX_API_TOKEN": "PASTE_YOUR_TOKEN_HERE"
}
}
}
}ChatGPT connectors
For hosted mode, use the Streamable HTTP endpoint:
Base URL:
https://mcp.vynix.in/mcpOAuth discovery:
/.well-known/oauth-authorization-server
Generic mcp.json
See examples/configs/mcp.json.
Authentication
Environment variables:
VYNIX_API_URL(optional, default:https://www.vynix.in)VYNIX_API_TOKEN(recommended)VYNIX_API_EMAILandVYNIX_API_PASSWORD(fallback login mode)VYNIX_MCP_MODE(stdioorhttp)VYNIX_MCP_HOST,VYNIX_MCP_PORT,VYNIX_MCP_PATH(HTTP mode)
Generate a token from: https://www.vynix.in/mcp
Tools, Prompts, and Resources
Tool reference: docs/tools.md
Prompt reference: docs/prompts.md
Resource reference: docs/resources.md
Skill/workflow reference: docs/skills.md
Deployment guide: docs/deployment.md
Agent discovery guide: docs/agent-discovery.md
LLM index file: llms.txt
Directory listing tracker: docs/listings-status.md
Examples
Conversation workflows: examples/workflows
Prompt library (100+ prompts): examples/prompts.md
Troubleshooting
Not configurederror: setVYNIX_API_TOKENor bothVYNIX_API_EMAILandVYNIX_API_PASSWORD.401errors: regenerate token and verify API URL.No tools listed: confirm the MCP config key (
mcpServersvsservers) for your client.Hosted mode not reachable: verify
VYNIX_MCP_MODE=httpand check/health.
FAQ
Does this send data to third-party AI providers?
Only diagnose_annotation can invoke external AI providers through your Vynix workspace configuration.
Is this read-only?
No. It includes read tools and write tools. MCP annotations identify mutating/open-world calls so clients can request confirmation.
Can I self-host?
Yes. Run in stdio mode locally or HTTP mode behind your own infrastructure.
Contributing
See CONTRIBUTING.md. For local validation run:
npm run checkSecurity
Never commit API tokens.
Prefer short-lived tokens where possible.
See SECURITY.md (create one if your org requires a disclosure policy).
License
Changelog
Available Tools
17 toolsadd_commentAdd commentAInspect
Add a comment to an annotation’s thread, e.g. to record what you changed. Notifies the team.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The comment text. | |
| annotation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| body | No | |
| created_at | No | |
| annotation_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false) and non-destructive behavior (destructiveHint=false), which the description's 'add a comment' aligns with. The description adds value beyond annotations by disclosing the side-effect 'Notifies the team' and clarifying the threading model ('annotation's thread'), details not present in the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences (22 words) that front-load the verb and resource in the first phrase. The first sentence conveys the action and purpose; the second conveys a side-effect. No filler, redundancy, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter mutation tool with an output schema, the description covers the core essentials: what it does, an example use, and a side-effect. The output schema handles return values, and annotations cover the safety profile. It could note that the annotation must exist or explain invalid-input behavior, but that is an edge detail for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents 'body' with 'The comment text' (50% coverage), but 'annotation_id' only has a type with no description. The description's reference to 'an annotation's thread' provides minimal semantic context for annotation_id — that it identifies the annotation whose thread receives the comment — but this does not fully close the parameter documentation gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Add a comment') and the target resource ('an annotation's thread'), making the action unambiguous. The example 'e.g. to record what you changed' adds concrete intent, and the verb-plus-resource combination distinguishes it from sibling read-only tools like list_comments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The example 'e.g. to record what you changed' provides a clear scenario for when to use the tool, implying context such as recording changes on an annotation. However, it does not explicitly name alternatives or state when not to use it, so it stops short of full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_github_issueCreate GitHub issueAInspect
Create a GitHub issue from an annotation. Uses the project’s configured repo and assignee unless overridden. Embeds the generated AI prompt in the issue body.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | owner/repository to file the issue in. Optional. | |
| assignees | No | GitHub usernames to assign. Optional. | |
| annotation_id | Yes | The id of the annotation to file as an issue. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| repo | No | |
| state | No | |
| provider | No | |
| issue_url | No | |
| created_at | No | |
| issue_number | No | |
| annotation_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey non-read-only, non-idempotent, and open-world nature. The description adds useful context: it uses the project's configured repo/assignee unless overridden and embeds the AI prompt in the body, which goes beyond the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise, front-loaded sentences with zero waste. Every phrase contributes, from the core action to the defaultValue context and prompt embedding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema, annotations, and a 100% schema coverage, the description sufficiently covers purpose, defaults, and body content. The tool is simple and the description leaves no major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters, so baseline is 3. The description adds meaning by explaining that repo and assignees default to project configuration unless overridden, which is not evident from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a GitHub issue from an annotation' with a specific verb and resource. It distinguishes from sibling read-only tools like list_annotation_issues and generate_prompt by specifying the creation action and source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by stating it creates an issue from an annotation and uses configured defaults. It gives context about repo and assignee override behavior but does not explicitly name alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_annotationRun AI diagnosisAInspect
Run the AI Diagnosis Engine on an annotation: it analyses the captured page, element, DOM, and runtime errors to produce ranked root causes, a confidence score, a suggested fix, and the likely source files. Calls an AI provider (uses tokens / may cost money) and stores the result. Requires AI + diagnosis enabled by the workspace admin and a key set.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Override the model. Optional. | |
| provider | No | Override the AI provider. Defaults to the workspace default. | |
| annotation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| model | No | |
| status | No | |
| summary | No | |
| provider | No | |
| confidence | No | |
| created_at | No | |
| updated_at | No | |
| root_causes | No | |
| annotation_id | No | |
| suggested_fix | No | |
| suggested_files | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool calls an external AI provider, consumes tokens/may cost money, stores the result, and requires specific admin and key configuration. These details go beyond the annotations (which only indicate mutation and non-idempotency) and provide essential operational context for a side-effecting tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences are used: the core action/outputs, the side effects (provider call, cost, storage), and the prerequisites. The description is front-loaded with the action and contains no filler; every clause contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, side-effecting tool, the description covers the action, analysis inputs, output types, cost, storage, and admin requirements. An output schema exists so return-value details need not be explained, and the description is sufficient to guide an agent even among many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes model and provider overrides, and the tool description mentions analyzing 'an annotation,' which loosely maps to annotation_id. However, annotation_id lacks a schema description, and the description does not clarify the override parameters or the required annotation reference beyond the schema. Coverage is 67%, so the description adds modest semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Run the AI Diagnosis Engine') and names the resource (an annotation). It enumerates concrete outputs (ranked root causes, confidence score, suggested fix, source files) and distinguishes itself from the sibling get_annotation_analysis by emphasizing that it runs and stores a new diagnosis rather than retrieving existing analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: this tool generates a new AI diagnosis, with prerequisites (admin-enabled AI + diagnosis, key set) and cost implications. It does not explicitly name get_annotation_analysis as the read-only alternative, but the operational context is unambiguous enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_promptGenerate coding promptARead-onlyInspect
Render a ready-to-paste coding prompt for an annotation, formatted for a target assistant. A deterministic template (no AI spend); for a deeper analysis use diagnose_annotation.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Which assistant to format for. Defaults to generic. | |
| annotation_id | Yes | The id of the annotation to turn into a prompt. |
Output Schema
| Name | Required | Description |
|---|---|---|
| prompt | No | |
| target | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the readOnlyHint by disclosing a deterministic template and 'no AI spend,' which are useful behavioral traits not captured by the annotations. It doesn't contradict annotations. While it doesn't detail return format, the output schema covers that, so this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and front-loaded with the main purpose. Every word earns its place: the first sentence defines the action, the second adds a key behavioral note and an alternative. No fillers or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a simple tool (2 parameters, 1 required), full schema descriptions, an output schema, and readOnly/destructive annotations, the description is complete. It gives the essential behavioral context (deterministic, no AI spend) and points to a sibling for deeper needs, leaving no significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for both parameters (annotation_id and target), covering 100% of the schema. The description does not add extra meaning to the parameters beyond what the schema states, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Render' and clearly identifies the resource: 'a ready-to-paste coding prompt for an annotation, formatted for a target assistant.' It also distinguishes itself from siblings by explicitly noting it is a deterministic template and pointing to diagnose_annotation for deeper analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use this tool: to generate a deterministic, no-AI-spend prompt with a specific output format. It explicitly names an alternative for deeper analysis ('for a deeper analysis use diagnose_annotation'), providing clear guidance on choosing between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_activityGet activityARead-onlyInspect
Recent activity feed for a project (status changes, comments, issues, members).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the feed's contents but does not mention any behavioral traits like pagination, time limits, or aggregation. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core purpose without any fluff. It earns every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one required parameter, an output schema is present (so return values are defined), and annotations cover side effects. The description sufficiently conveys the tool's role for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description itself does not explicitly mention project_id, only implying it via 'for a project'. Since the description does not compensate for the missing schema documentation, the parameter semantics are under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a 'recent activity feed for a project' and enumerates the content types (status changes, comments, issues, members). This specific verb+resource+scope effectively distinguishes it from siblings like get_metrics and list_comments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this tool to get a project's recent activity feed. There is no explicit when-not-to-use guidance or mention of alternatives, but the description implies a straightforward use case for a simple feed retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_annotationGet annotationARead-onlyInspect
Fetch one annotation with its full captured context: page, target element (selector, XPath, styles), surrounding DOM, and runtime diagnostics (console + network).
| Name | Required | Description | Default |
|---|---|---|---|
| annotation_id | Yes | The id of the annotation to fetch. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| dom | No | |
| page | No | |
| type | No | |
| title | No | |
| status | No | |
| element | No | |
| page_url | No | |
| priority | No | |
| selector | No | |
| created_at | No | |
| page_title | No | |
| project_id | No | |
| updated_at | No | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by detailing the captured context (page, element selectors, DOM, diagnostics), which is beyond the safety profile alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that front-loads the action 'Fetch' and efficiently lists the returned context without any redundant words or repetitive information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of read-only annotations, a complete input schema, and an output schema, the description fully covers the tool's purpose and return content, leaving no significant gaps for an agent to correctly select and invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the annotation_id parameter clearly described in the schema; the description does not add further parameter-specific semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Fetch one annotation') and enumerates the included context components (page, selector, XPath, styles, DOM, runtime diagnostics), which clearly distinguishes it from list_annotations and other sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a single annotation's full context, which is clear, but it does not explicitly contrast with alternatives like list_annotations or get_annotation_analysis, so no explicit exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_annotation_analysisGet AI diagnosisARead-onlyInspect
Read the latest stored AI diagnosis for an annotation (root causes, confidence, suggested fix, and likely source files). Returns null when none has been generated yet; run diagnose_annotation to create one.
| Name | Required | Description | Default |
|---|---|---|---|
| annotation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| analysis | No | |
| diagnosis_enabled | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the readOnlyHint annotation: it returns null if no diagnosis has been generated, and it retrieves only the 'latest' stored diagnosis. This is useful non-obvious behavior not captured in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, with the action front-loaded and every word earning its place. The second sentence adds essential behavioral detail and the alternative tool, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return value details are not needed. The description covers the tool's core purpose, null behavior, and creation alternative, which is sufficient for a simple one-parameter read operation with strong annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It implies annotation_id via 'for an annotation' but does not explicitly name the parameter or provide additional semantic context (e.g., format, source of the ID). The meaning is inferable from the tool's name and context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Read' and a clear resource 'latest stored AI diagnosis for an annotation', listing contents (root causes, confidence, suggested fix, source files). This distinguishes it from sibling tools like get_annotation and diagnose_annotation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'run diagnose_annotation to create one' when none exists, providing a clear alternative for a specific situation. The null return condition also signals when to use this tool vs. the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_annotation_screenshotsGet screenshotsARead-onlyInspect
Return the region screenshots attached to an annotation as viewable images, so you can see exactly what the reporter pointed at.
| Name | Required | Description | Default |
|---|---|---|---|
| annotation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| screenshots | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the output is 'viewable images' and clarifies it returns 'region screenshots', but it does not disclose other behavioral traits like pagination, size, or how the images are encoded. This adds some context but not substantial detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the verb 'Return'. Every word contributes to the meaning, with no repetition or filler. It is perfectly sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter, no nested objects) and the presence of an output schema (not shown), the description provides sufficient context. It clearly states what the tool does and why it is useful. Annotations cover the safety profile, so no further detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, annotation_id, and the schema description coverage is 0%. The description mentions 'attached to an annotation' but does not explain the format, source, or any constraints on annotation_id. It adds little beyond the parameter name, failing to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Return' and clearly identifies the resource: 'region screenshots attached to an annotation'. It states the purpose ('so you can see exactly what the reporter pointed at') and implicitly distinguishes from siblings like get_annotation (which returns annotation details) and list_annotations (which lists annotations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys a clear use case: when you need to visually see the screenshots attached to an annotation. This context is clear, though it does not explicitly name alternative tools or state when not to use it. No exclusions are mentioned, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_metricsGet metricsARead-onlyInspect
Overview of your projects: KPI counts, status breakdown, a daily time series, and recent activity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| kpis | No | |
| timeseries | No | |
| recent_activity | No | |
| status_breakdown | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by specifying what the overview contains (KPI counts, status breakdown, daily time series, recent activity), which is behavioral detail beyond the safety hints. It does not mention rate limits or data freshness, but the safety profile is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It front-loads 'Overview of your projects' and lists the key output components, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, an output schema exists, and the description covers the key output categories, it is largely complete. It could improve by explicitly noting it aggregates across projects or differentiating from get_activity, but those are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds semantic context about the returned overview content, which is helpful even though there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as providing an overview of projects with specific elements (KPIs, status breakdown, time series, recent activity). It distinguishes from siblings like list_projects (which lists projects) by focusing on aggregated metrics, though it lacks an explicit verb like 'get' or 'fetch'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Overview of your projects' implies a high-level summary use case, but there is no explicit guidance on when to use this tool versus alternatives such as list_projects or get_activity. No exclusions or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_annotation_issuesList annotation issuesARead-onlyInspect
List the tracker (GitHub) issues opened from an annotation, with each issue’s live state. Set refresh to reconcile against GitHub (open/closed + any linked pull request).
| Name | Required | Description | Default |
|---|---|---|---|
| refresh | No | Reconcile live state from GitHub. Optional. | |
| annotation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds useful behavioral details about the refresh option ('reconcile against GitHub') and that each issue's live state is included, going beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the core purpose, the second explains the optional refresh behavior. Efficient, front-loaded, and no irrelevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a simple two-parameter tool, clear annotations, and an output schema present, the description covers the necessary information: what it lists, the live state, and the refresh behavior. It is sufficiently complete for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for refresh but not annotation_id (50% coverage). The description compensates by explaining refresh's effect ('reconcile against GitHub') and implicitly clarifying annotation_id as the source annotation. This adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('List'), resource ('tracker (GitHub) issues'), and scope ('opened from an annotation'). This distinguishes it from sibling tools like list_project_issues (which lists all project issues) and create_github_issue (which creates issues).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it lists issues specifically tied to an annotation, with live state. It doesn't explicitly name alternatives or say when not to use it, but the annotation-scoped phrasing implies when it's appropriate versus the broader list_project_issues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_annotationsList annotationsARead-onlyInspect
List a project’s annotations, optionally filtered by status, type, or priority. Start here with status "open" to see what needs fixing.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| limit | No | Page size, 1-200 (default 50). | |
| offset | No | ||
| status | No | ||
| priority | No | ||
| project_id | Yes | The id of the project to list annotations for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| limit | No | |
| total | No | |
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds only a usage hint and does not disclose additional behavior such as pagination behavior, sorting, or filter combination logic. With annotations in place, this is acceptable but not outstanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core purpose followed by a practical usage tip. Every word earns its place; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a list operation given that an output schema exists and annotations cover safety. It clearly states purpose, filters, and a starting point. It could be slightly richer by noting filters are combinable, but it is not a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), with only project_id and limit having descriptions. The description mentions the three filter parameters (status, type, priority) and gives a concrete example for status ('open'), adding some meaning. However, it does not explain offset or how filters combine, leaving the agent to rely on enums and names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List a project's annotations') and the optional filters (status, type, priority), which is a specific verb+resource. It naturally distinguishes from sibling tools like list_comments or list_annotation_issues by focusing on annotations themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context with 'Start here with status "open" to see what needs fixing,' indicating when to use this tool. It does not explicitly mention alternatives or exclusions, but the guidance is strong enough that it earns a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commentsList commentsARead-onlyInspect
Read the discussion thread on an annotation.
| Name | Required | Description | Default |
|---|---|---|---|
| annotation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| comments | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds the 'discussion thread' context, indicating the tool returns a threaded view, but doesn't disclose details like ordering or pagination. It doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no filler, front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single param, output schema, read-only annotations), the description is adequate. It conveys the core purpose and thread context, and the output schema covers return details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It only indirectly references the annotation via 'on an annotation' and does not elaborate on annotation_id format or source. The param name is self-explanatory, but the description adds minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Read' and names the resource 'discussion thread on an annotation,' clearly distinguishing this from sibling tools like add_comment (write) and list_annotations (different scope).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading a discussion thread, but it doesn't explicitly compare to alternatives like add_comment or state when not to use it. No exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_membersList membersARead-onlyInspect
List a project’s team members, including role and status.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| owner | No | |
| members | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds minimal behavioral context beyond output content (role and status) and does not mention pagination, errors, or auth, which is typical for such a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. Every word contributes to the meaning, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter), the presence of an output schema, and annotations ensuring safety, the description covers the core purpose adequately. It lacks only minor details like sorting or edge-case behavior, which are likely captured in the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the sole parameter project_id. The description does not explain the parameter beyond implying it identifies the project. It fails to add meaning such as format, examples, or constraints, so it does not compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: 'List a project’s team members', naming the resource (team members) and including useful output specifics (role and status). This clearly distinguishes it from sibling tools like list_projects and list_comments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended usage clear: call this when you need team members for a given project. It does not explicitly mention alternatives or exclusions, but the context is unambiguous enough that an agent would know when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_project_issuesList project issuesARead-onlyInspect
List every tracker issue across a project, with an open/closed/agent summary.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | Yes | |
| summary | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so the read-only nature is known. The description adds useful context by mentioning the 'open/closed/agent summary', offering insight into the response structure beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the action and scope. It contains no redundant information or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and an output schema; the description conveys the project-wide coverage and the summary component. It is sufficient for this tool's complexity, though it does not discuss limitations or alternative tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only indirectly identifies project_id via 'across a project'. It does not explain the required parameter's type, format, or considerations, leaving the meaning mostly to the tool's name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('every tracker issue'), and the scope ('across a project'). It distinguishes from sibling 'list_annotation_issues' by emphasizing the project-wide scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining all project issues via the 'across a project' phrasing, but it does not explicitly state when to use this tool over alternatives like 'list_annotation_issues' or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList projectsARead-onlyInspect
List the Vynix projects you own.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| projects | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to repeat safety. It adds the ownership scoping ('you own'), which is a behavioral trait not fully covered by annotations, and aligns with openWorldHint=false. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter list tool with read-only annotations and an output schema, the one-sentence description is fully sufficient. It covers the essential purpose and scope without missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the baseline is 4. The description does not need to explain parameters, and the empty schema corroborates this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('Vynix projects') and scope ('you own'), which distinguishes it from sibling list tools like list_annotations or list_members. It leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the description—use this to see projects you own—but there is no explicit guidance on when to prefer this tool over alternatives, nor any exclusions or context about prerequisites. It does not mention relationship to other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_annotation_statusUpdate statusAIdempotentInspect
Update an annotation’s status, e.g. to mark it in_progress or completed.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| annotation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| dom | No | |
| page | No | |
| type | No | |
| title | No | |
| status | No | |
| element | No | |
| page_url | No | |
| priority | No | |
| selector | No | |
| created_at | No | |
| page_title | No | |
| project_id | No | |
| updated_at | No | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what annotations already convey. It does not mention side effects, transition rules, or return behavior. While annotations indicate non-readonly, idempotent, and non-destructive behavior, the description itself provides minimal additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, and includes a relevant example. Every word earns its place; no filler or restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter update tool with annotations and an output schema, the description is adequate. It covers the core action and an example, though it could optionally mention status transition constraints. Overall, it is complete enough without being verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds some meaning to the status parameter by giving examples ('in_progress' or 'completed'), but does not explain annotation_id beyond its name. With 0% schema description coverage, the description only partially compensates for the lack of parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the specific resource ('an annotation's status'), along with concrete examples ('in_progress or completed'). This makes it easily distinguishable from sibling tools that are mostly read or create operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool when you need to change an annotation's status. It does not explicitly mention exclusions or alternatives, but for a simple update tool, the usage context is evident and no misleading guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools are clearly distinct, but get_metrics and get_activity both surface recent activity, which could lead to misselection. Other tools like list_annotations vs get_annotation or get_annotation_analysis vs diagnose_annotation are clearly differentiated by read/action semantics.
All tool names follow a consistent verb_noun snake_case pattern (e.g., list_projects, update_annotation_status, diagnose_annotation). There is no mixing of conventions or vague verbs, making the set predictable and easy to navigate.
With 17 tools, the server is slightly above the ideal range, but each tool serves a distinct purpose in the annotation management, AI diagnosis, and GitHub integration workflow. The count feels justified rather than padded, though a few tools could potentially be consolidated.
The core lifecycle is well covered: listing and getting annotations, updating status, commenting, running/reading AI analysis, generating prompts, and creating GitHub issues. Missing operations like create/delete annotation or update/delete comments are minor gaps, likely because annotations are created externally or those actions are outside the server's scope.
Maintenance
Related MCP Connectors
Voice-powered bug reporting with 13 MCP tools. Record bugs by talking; let AI find and fix them.
Comment on AI-generated webpages; feedback flows back to your coding agent. Free, MIT, local-first.
Live browser debugging for AI assistants — DOM, console, network via MCP.
AI QA tester — real browsers scan sites for bugs, SEO, perf, and accessibility issues via chat.
Related MCP Servers
- AlicenseAqualityCmaintenanceBug bounty platform for vibe coders. Post bugs from AI-generated code, browse bounties, apply to fix, submit solutions, and run website diagnostics from any MCP client.12411MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI coding assistants QA superpowers, enabling users to report bugs by pointing, clicking, or typing while automatically capturing diagnostic data for AI-driven test-feedback-fix loops.134MIT
- AlicenseAqualityCmaintenanceAn MCP server that integrates BugHerd bug tracking with AI assistants, providing 37 tools for complete BugHerd API v2 coverage.37917MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for visual feedback, video direction, and QA assertions on web pages, enabling AI agents to read, reply, and resolve annotations in real time.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/UseVynix/vynix-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server