Skip to main content
Glama

hydra-vision-mcp

Publishing

A vision MCP server for image understanding, OCR, error diagnosis, diagrams, charts and UI analysis. Connect a text-only coding agent to a vision model through an OpenAI-compatible API.

Run

Requires Node.js 22+. No FFmpeg dependency.

export HYDRA_API_KEY='your-upstream-key'
export HYDRA_BASE_URL='https://your-provider.example/v1'
export HYDRA_MODEL='public/kimi-k3'
npx --yes @carlory/hydra-vision-mcp@latest

latest is the only publication channel. Tested main snapshots receive an automatically generated internal npm version. See publishing. The command becomes available when a snapshot has been published.

For a local checkout:

npm ci
npm run build
node dist/index.js

Configure your MCP client using examples/mcp.json. The process uses stdio; tool logs go to stderr. Use an absolute path to npx or node if a desktop client cannot find it.

Related MCP server: my-own-vision-mcp

Registered tools

Tool

Purpose

Arguments

analyze_image

General image understanding

image_source, prompt

extract_text_from_screenshot

OCR and code transcription

image_source, prompt, programming_language?

diagnose_error_screenshot

Diagnose error screenshots

image_source, prompt, context?

understand_technical_diagram

Architecture, UML and flowcharts

image_source, prompt, diagram_type?

analyze_data_visualization

Charts and dashboards

image_source, prompt, analysis_focus?

ui_to_artifact

Generate code, prompts, specs or descriptions

image_source, prompt, output_type

ui_diff_check

Compare expected and actual UI

expected_image_source, actual_image_source, prompt

output_type accepts code, prompt, spec, or description. Each task uses its own prompt, parameter validation and text-only response format.

Local images are PNG/JPEG files up to 5 MB, encoded as data URLs. HTTP(S) image URLs are forwarded unchanged for the provider to retrieve. The tool does not download remote images or expose returned image blocks to the host model. Data URLs are generated internally; they are not accepted as user-facing file paths.

The analyze_video implementation is retained at src/tools/video-analysis.js but is not registered as an MCP tool. It uses native video_url, with no frame extraction or fallback. Video analysis is not invoked by tests.

These tools provide model-based visual reasoning, including OCR and UI comparisons. They do not use a separate OCR engine or pixel-difference algorithm. The host model chooses when to call tools; attachment handling is controlled by the client.

Configuration

Variable

Default

Purpose

HYDRA_API_KEY

Required for analysis

Upstream provider key

HYDRA_BASE_URL

Required for analysis

API root; /chat/completions is appended

HYDRA_MODEL

public/kimi-k3

Vision model

HYDRA_TIMEOUT_MS

300000

Request timeout

HYDRA_MAX_TOKENS

131072

Output limit; adjust for your provider's model

HYDRA_TEMPERATURE

0.8

Sampling temperature

HYDRA_TOP_P

0.6

Nucleus sampling

Requests use thinking: { "type": "enabled" } and non-streaming responses. The backend forwards the tool's messages without rewriting prompts. Provider errors are returned as MCP tool errors. Tools retry failed operations with exponential backoff. No extra cache or structured analysis response is added.

Tool discovery works without a provider key. Configuration does not automatically load .env; local users can use Node's --env-file=/path/to/private.env.

Development

npm ci
npm run check
npm run test:package

Checks cover task prompt stability, image tool requests and responses, concurrent backend isolation, CLI stdio and isolated npm package installation. npm run test:live is an opt-in real-provider image test. Neither ordinary tests nor live tests invoke video analysis or launch Claude.

Code is organized by responsibility: MCP registration, tools, prompts, media handling, services and API providers.

License

See LICENSE, LICENSES and THIRD_PARTY_NOTICES.md.

Available Tools

7 tools
analyze_data_visualizationA

Analyze data visualizations, charts, graphs, and dashboards to extract insights and trends.

Use this tool ONLY when the user has a data visualization image and wants to understand the data patterns or metrics. This tool specializes in interpreting visual data representations.

Do NOT use for: UI mockups, error messages, or technical architecture diagrams.

Inputs: prompt (required), image_source (required), analysis_focus.

analyze_imageA

General-purpose image analysis for scenarios not covered by specialized tools.

Use this tool as a FALLBACK when none of the other specialized tools (ui_to_artifact, extract_text_from_screenshot, diagnose_error_screenshot, understand_technical_diagram, analyze_data_visualization, ui_diff_check) fit the user's need.

This tool provides flexible image understanding for any visual content.

Inputs: prompt (required), image_source (required).

diagnose_error_screenshotA

Diagnose and analyze error messages, stack traces, and exception screenshots.

Use this tool ONLY when the user has an error screenshot and needs help understanding or fixing it. This tool specializes in error analysis and provides actionable solutions.

Do NOT use for: code extraction, UI analysis, or diagram understanding.

Inputs: prompt (required), image_source (required), context.

extract_text_from_screenshotA

Transcribe visible text from screenshots without repairing or beautifying the source.

Use this tool ONLY when the user has a screenshot containing text and wants to extract it. This tool specializes in OCR for code, terminal output, documentation, and general text extraction.

Do NOT use for: UI design conversion, error diagnosis, or diagram understanding.

Inputs: prompt (required), image_source (required), programming_language.

ui_diff_checkA

Compare two UI screenshots to identify visual differences and implementation discrepancies.

Use this tool ONLY when the user wants to compare an expected/reference UI with an actual implementation. This tool is specialized for UI quality assurance and design-to-implementation verification.

Do NOT use for: general image comparison, error diagnosis, or analyzing single UIs.

Inputs: prompt (required), actual_image_source (required), expected_image_source (required).

ui_to_artifactA

Convert UI screenshots into various artifacts: code, prompts, design specifications, or descriptions.

Use this tool ONLY when the user wants to:

  • Generate frontend code from UI design (output_type='code')

  • Create AI prompts for UI generation (output_type='prompt')

  • Extract design specifications (output_type='spec')

  • Get natural language description of the UI (output_type='description')

Do NOT use for: screenshots containing text/code to extract, error messages, diagrams, or data visualizations.

Inputs: prompt (required), output_type (required), image_source (required).

understand_technical_diagramA

Analyze and explain technical diagrams including architecture diagrams, flowcharts, UML, ER diagrams, and system design diagrams.

Use this tool ONLY when the user has a technical diagram and wants to understand its structure or components. This tool specializes in interpreting visual technical documentation.

Do NOT use for: UI screenshots, error messages, or data visualizations/charts.

Inputs: prompt (required), image_source (required), diagram_type.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 7 tools

    Disambiguation5/5

    Each tool targets a distinct image type or task (UI conversion, OCR, error diagnosis, technical diagrams, data viz, UI diff, general fallback) and descriptions explicitly state boundaries with 'Do NOT use for' exclusions, so an agent can easily select the right tool. The fallback is clearly defined as a last resort, preventing overlap.

    Naming Consistency3/5

    All names use snake_case, but 5 of 7 follow a verb_noun pattern while 'ui_to_artifact' and 'ui_diff_check' start with a noun/adjective and use non-verb constructions. This mixed convention is readable but not fully consistent.

    Tool Count5/5

    7 tools is well-scoped for an image analysis server, with six specialized tools covering common visual tasks plus one explicit fallback. Each tool has a clear purpose and no tool feels redundant.

    Completeness4/5

    The surface covers major screenshot and diagram analysis needs (UI conversion, OCR, error diagnosis, technical diagrams, data viz, UI diff) and includes a general fallback for uncovered cases. Minor gaps exist, such as structured data extraction from charts or non-UI image comparison, but agents can work around these via the fallback.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to analyze images using any OpenAI-compatible vision API, providing tools for image analysis, OCR, error diagnosis, diagram understanding, and chart analysis.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables text-only AI agents to see images on demand by calling any OpenAI-compatible vision API for OCR, image analysis, structured extraction, image comparison, and GUI screenshot-to-accessibility-tree conversion.
      1
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI coding models without native vision to analyze images such as screenshots, error messages, UI layouts, and documents through a single image_understand tool. Supports multiple vision LLM providers including GLM-4.6V, DeepSeek-OCR, Qwen3-VL-Flash, Doubao-Seed-1.6, Hunyuan-Vision, and any OpenAI-compatible endpoint.
      664 npm
      MIT