ocular

io.github.xyun1996由 GitHub 帳號 xyun1996 發布v0.1.0更新於 Oct 24, 2026

Vision tools for coding agents: screenshots, OCR, UI diffs, errors, tables, and charts.

概覽

AI 產生的概覽

為純文字程式助理提供視覺工具,透過相容 OpenAI 的視覺模型分析截圖、OCR 文字、介面稿、錯誤、表格與圖表。

可以做什麼
Ocular 向 MCP 用戶端提供八個視覺工具:一般影像分析、具版面感知的 OCR、介面截圖檢視、錯誤截圖診斷、介面截圖比對、表格擷取、圖表分析,以及上傳工作階段建立。工具回傳結構化 JSON 而非純文字描述,方便助理根據視覺證據推理。它同時支援本機 stdio 執行與遠端 HTTP 部署;遠端模式下影像可以二進位上傳,並以內容定址的 file_id 引用,不必內嵌 base64。上傳會去重,結果可快取。
適用情境
當程式助理需要理解原始碼無法呈現的視覺證據時使用,例如跑掉的版面、終端機或瀏覽器錯誤截圖、設計參考、表格或圖表。也適合比對預期介面與實際實作,或從圖片擷取結構化資料的工作流程。
執行需求
以 npm 套件(ocular-mcp,指令為 ocular)在本機透過 stdio 執行,或部署為 HTTP 服務。需要一個相容 OpenAI 的多模態端點,以及三個環境變數:OCULAR_BASE_URL、OCULAR_API_KEY、OCULAR_MODEL。遠端 HTTP 模式還需設定 MCP_TRANSPORT、主機、連接埠、路徑與 MCP_AUTH_TOKEN。需要能連線到所選模型供應商。
安裝前請注意
OCULAR_API_KEY 是模型供應商的憑證,MCP_AUTH_TOKEN 用來保護遠端 HTTP 部署,兩者都不應出現在指令歷史或提交的檔案中。影像與提示詞會傳送到所設定的第三方視覺端點,請避免使用敏感截圖。遠端部署應置於反向代理後的 HTTPS,並綁定到內部介面。專案自述處於早期階段並持續演進。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ocular,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

ocular

[CI] [npm] [License: MIT] [Node.js] [TypeScript] [MCP]

Vision for coding agents.

ocular is an MCP server that lets text-first coding agents analyze screenshots, UI mockups, terminal errors, documents, tables, and charts through OpenAI-compatible vision models.

It is designed for both local stdio use and remote HTTP deployments. For remote agents, image bytes can travel through a binary upload side channel while MCP tool calls carry only a lightweight file_id, avoiding large inline base64 payloads.

Project status: early-stage and actively evolving. Feedback, bug reports, integrations, and real-world usage reports are welcome.

Why ocular?

Coding agents are good at reading source code but often lose context when the important evidence is visual: a broken layout, a terminal screenshot, an error dialog, a chart, or a design reference.

ocular turns those visual inputs into structured data an agent can reason about.

  • Agent-oriented output — tools return structured JSON instead of prose-only descriptions.
  • 8 focused vision tools — general analysis, OCR, UI inspection, error diagnosis, UI comparison, table extraction, chart analysis, and upload orchestration.
  • OpenAI-compatible provider interface — point ocular at a compatible multimodal endpoint and model; reproducibly tested configurations are tracked in Provider compatibility.
  • Remote-friendly uploads — binary PUT /upload flow for large images with content-addressed file_id references.
  • Local or remote MCP — stdio for local clients, HTTP for hosted/private deployments.
  • Caching and persistence — deduplicated uploads plus result caching for repeated agent workflows.

How it works

mermaid
flowchart LR    A[Coding agent] -->|MCP tool call| B[ocular]    C[Image / screenshot] -->|binary upload or base64| B    B -->|OpenAI-compatible request| D[Vision model]    D -->|multimodal response| B    B -->|structured JSON| A

For remote HTTP deployments, the recommended path is:

text
image bytes -> PUT /upload -> file_id -> MCP vision tool -> structured result

See Architecture for the upload and caching model.

Demo

Want to see the full handoff from screenshot to coding-agent evidence? Read the end-to-end demo.

It walks through a remote image upload, a diagnose_error_screenshot call, the structured fields returned to the agent, and how that evidence is combined with repository context. Example model output is explicitly marked representative rather than presented as a benchmark.

Quick start

1. Install

The published npm package is ocular-mcp. It installs the CLI command ocular.

Global install:

bash
npm install -g ocular-mcp

Or run it without a global install:

bash
npx -y ocular-mcp

To build from source instead:

bash
git clone https://github.com/xyun1996/ocular.gitcd ocularnpm installnpm run build

2. Configure a vision provider

ocular requires an OpenAI-compatible multimodal endpoint, API key, and model name:

env
OCULAR_BASE_URL=https://your-openai-compatible-endpoint.example/v1OCULAR_API_KEY=your_api_keyOCULAR_MODEL=your_vision_model

For a local compatible endpoint, use that server's base URL and vision-capable model name. Compatibility depends on the endpoint/model combination; see Provider compatibility for the reproducible smoke-test procedure and verified configurations.

3. Run in stdio mode

With a global install:

bash
ocular

Or:

bash
npx -y ocular-mcp

The server communicates over stdio, so it may appear idle when started directly. In normal use an MCP client launches it and exchanges protocol messages over stdin/stdout.

4. Connect an MCP client

Claude Code example:

bash
claude mcp add ocular \  -e OCULAR_BASE_URL=https://your-openai-compatible-endpoint.example/v1 \  -e OCULAR_MODEL=your_vision_model \  -e OCULAR_API_KEY=your_api_key \  -- npx -y ocular-mcp

Avoid putting long-lived API keys directly in shell history on shared machines. Use your client's environment/secret-management mechanism when available.

For a generic MCP client:

json
{  "mcpServers": {    "ocular": {      "command": "npx",      "args": ["-y", "ocular-mcp"],      "env": {        "OCULAR_BASE_URL": "https://your-openai-compatible-endpoint.example/v1",        "OCULAR_MODEL": "your_vision_model",        "OCULAR_API_KEY": "your_api_key"      }    }  }}

See Claude Code setup for a fuller walkthrough.

Example workflows

Diagnose a screenshot

Ask your coding agent to inspect an error screenshot and extract the exact message, likely cause, and next checks.

json
{  "file_id": "e21ba723...",  "task": "Extract the exact error and suggest the next debugging checks",  "project_context": "Node.js TypeScript project"}

Review a UI implementation

Use analyze_ui_screenshot to turn a screenshot into implementation-oriented observations about hierarchy, alignment, spacing, typography, contrast, and likely visual defects.

Compare expected vs actual UI

Use compare_ui_screenshots with a reference screenshot and an implementation screenshot to identify regressions and layout differences.

See Screenshot debugging example.

Tools

ToolPurpose
analyze_imageGeneral structured image analysis
extract_text_from_imageOCR with reading-order/layout awareness
analyze_ui_screenshotUI hierarchy, spacing, typography and accessibility review
diagnose_error_screenshotExtract and diagnose terminal/browser/build errors
compare_ui_screenshotsCompare reference and implementation screenshots
extract_table_from_imageExtract table data into structured output
analyze_chart_imageAnalyze chart labels, values, trends and uncertainty
create_upload_sessionReturn upload endpoint and instructions for remote clients

Every vision tool accepts file_id; local workflows can also use inline image_base64 where appropriate.

Remote deployment

Set HTTP transport and authentication:

env
MCP_TRANSPORT=httpMCP_HTTP_HOST=127.0.0.1MCP_HTTP_PORT=3000MCP_HTTP_PATH=/mcpMCP_AUTH_TOKEN=replace_with_a_long_random_tokenMCP_AUTH_HEADER=authorizationMCP_AUTH_SCHEME=Bearer

Upload raw bytes:

bash
curl --request PUT \  --data-binary @/path/to/image.png \  "https://your.host/upload" \  -H "Content-Type: image/png" \  -H "Authorization: Bearer your_mcp_auth_token"

The server returns a content-addressed file_id; pass that id to a vision tool instead of sending a large base64 string through MCP.

For reverse proxy and systemd examples, see Deployment.

Configuration

Common variables:

VariablePurpose
OCULAR_BASE_URLOpenAI-compatible API base URL
OCULAR_API_KEYProvider API key
OCULAR_MODELVision-capable model name
OCULAR_HEADERSOptional custom provider headers as JSON
OCULAR_TEMPERATUREGeneration temperature
OCULAR_MAX_TOKENSMaximum generated tokens
OCULAR_TIMEOUT_MSProvider timeout
OCULAR_MAX_IMAGE_MBMaximum image size
OCULAR_CACHE_ENABLEDEnable result cache
OCULAR_CACHE_DIRCache directory
OCULAR_UPLOADS_DIRPersistent upload directory
OCULAR_UPLOAD_URL_BASEPublic base URL used in upload instructions

See .env.example for the full configuration surface.

Verification and benchmarks

Provider compatibility claims are based on real endpoint/model smoke tests, not on API naming alone. See Provider compatibility.

The repository also includes synthetic, redistributable visual fixtures for repeatable project-level measurements. See Benchmark fixtures. The benchmark measures execution, structural JSON output, and timing; it is not presented as a broad model-quality ranking.

Development

bash
npm installnpm run buildnpm testnpm run checknpm run dev

The repository includes tests for authentication, caching, image handling, MCP server behavior, provider payloads, tool execution, npm packaging, Registry metadata consistency, and release smoke checks.

Security and privacy

Do not commit provider API keys or MCP authentication tokens. Public HTTP deployments should sit behind HTTPS and a reverse proxy; the Node process should generally bind to a private interface.

See SECURITY.md for vulnerability reporting guidance.

Roadmap

Near-term areas where contributions are useful:

  • Real-world MCP client integration and usage reports
  • Provider/model compatibility verification
  • Published fixture-based benchmark results from real endpoints
  • Community-driven tool and prompt improvements

If you are using ocular in a real workflow, open a Usage report issue describing the client, provider/model, and use case. Public reports are useful even when nothing is broken and help keep compatibility/adoption claims grounded in real usage.

Contributing

Contributions are welcome. Start with CONTRIBUTING.md, run npm run check before opening a PR, and include reproduction details for behavior changes.

Release and registry

The npm package is ocular-mcp; the installed CLI is ocular. Release automation uses npm Trusted Publishing rather than a long-lived repository token. See Publishing.

ocular is published in the official MCP Registry as io.github.xyun1996/ocular. See MCP Registry for the live identity and release flow.

License

MIT — see LICENSE.

If ocular is useful in your agent workflow, a GitHub star helps other developers discover the project.

來源:README.md,提交 e82e598

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分