Skip to main content
Glama

Vynix MCP Server

npm version npm downloads license ci vynix-mcp 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: stdio and Streamable HTTP.

  • Auth via API token or email/password refresh flow.

Installation

Node.js 18+ is required.

{
  "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-mcp

Docker

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:latest

Local development

git clone https://github.com/UseVynix/vynix-mcp.git
cd vynix-mcp
npm install
npm run build
npm run check
node dist/index.js

Client 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/mcp

  • OAuth 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_EMAIL and VYNIX_API_PASSWORD (fallback login mode)

  • VYNIX_MCP_MODE (stdio or http)

  • VYNIX_MCP_HOST, VYNIX_MCP_PORT, VYNIX_MCP_PATH (HTTP mode)

Generate a token from: https://www.vynix.in/mcp

Tools, Prompts, and Resources

Examples

Troubleshooting

  • Not configured error: set VYNIX_API_TOKEN or both VYNIX_API_EMAIL and VYNIX_API_PASSWORD.

  • 401 errors: regenerate token and verify API URL.

  • No tools listed: confirm the MCP config key (mcpServers vs servers) for your client.

  • Hosted mode not reachable: verify VYNIX_MCP_MODE=http and 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 check

Security

  • Never commit API tokens.

  • Prefer short-lived tokens where possible.

  • See SECURITY.md (create one if your org requires a disclosure policy).

License

MIT

Changelog

CHANGELOG.md

Available Tools

17 tools
add_commentAdd commentAInspect

Add a comment to an annotation’s thread, e.g. to record what you changed. Notifies the team.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe comment text.
annotation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
bodyNo
created_atNo
annotation_idNo

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoowner/repository to file the issue in. Optional.
assigneesNoGitHub usernames to assign. Optional.
annotation_idYesThe id of the annotation to file as an issue.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
repoNo
stateNo
providerNo
issue_urlNo
created_atNo
issue_numberNo
annotation_idNo

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoOverride the model. Optional.
providerNoOverride the AI provider. Defaults to the workspace default.
annotation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
modelNo
statusNo
summaryNo
providerNo
confidenceNo
created_atNo
updated_atNo
root_causesNo
annotation_idNo
suggested_fixNo
suggested_filesNo

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 promptA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNoWhich assistant to format for. Defaults to generic.
annotation_idYesThe id of the annotation to turn into a prompt.

Output Schema

ParametersJSON Schema
NameRequiredDescription
promptNo
targetNo

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 activityA
Read-only
Inspect

Recent activity feed for a project (status changes, comments, issues, members).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
activityYes

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 annotationA
Read-only
Inspect

Fetch one annotation with its full captured context: page, target element (selector, XPath, styles), surrounding DOM, and runtime diagnostics (console + network).

ParametersJSON Schema
NameRequiredDescriptionDefault
annotation_idYesThe id of the annotation to fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
domNo
pageNo
typeNo
titleNo
statusNo
elementNo
page_urlNo
priorityNo
selectorNo
created_atNo
page_titleNo
project_idNo
updated_atNo
descriptionNo

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 diagnosisA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
annotation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
analysisNo
diagnosis_enabledNo

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 screenshotsA
Read-only
Inspect

Return the region screenshots attached to an annotation as viewable images, so you can see exactly what the reporter pointed at.

ParametersJSON Schema
NameRequiredDescriptionDefault
annotation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
screenshotsYes

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 metricsA
Read-only
Inspect

Overview of your projects: KPI counts, status breakdown, a daily time series, and recent activity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
kpisNo
timeseriesNo
recent_activityNo
status_breakdownNo

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 issuesA
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshNoReconcile live state from GitHub. Optional.
annotation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 annotationsA
Read-only
Inspect

List a project’s annotations, optionally filtered by status, type, or priority. Start here with status "open" to see what needs fixing.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
limitNoPage size, 1-200 (default 50).
offsetNo
statusNo
priorityNo
project_idYesThe id of the project to list annotations for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
limitNo
totalNo
offsetNo

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 commentsA
Read-only
Inspect

Read the discussion thread on an annotation.

ParametersJSON Schema
NameRequiredDescriptionDefault
annotation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
commentsYes

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 membersA
Read-only
Inspect

List a project’s team members, including role and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
ownerNo
membersYes

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 issuesA
Read-only
Inspect

List every tracker issue across a project, with an open/closed/agent summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesYes
summaryYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 projectsA
Read-only
Inspect

List the Vynix projects you own.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
projectsYes

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 statusA
Idempotent
Inspect

Update an annotation’s status, e.g. to mark it in_progress or completed.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYes
annotation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
domNo
pageNo
typeNo
titleNo
statusNo
elementNo
page_urlNo
priorityNo
selectorNo
created_atNo
page_titleNo
project_idNo
updated_atNo
descriptionNo

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

A4.1/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityActive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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