three.ws Vision

io.github.nirholasPublished by GitHub account nirholasv0.1.2Updated Oct 24, 2026

Image understanding for AI agents — analyze and describe any image via the three.ws pipeline.

VerifiedSTDIODesktop onlyMedia & DesignAI & ML

Overview

AI-generated overview

Local stdio MCP server that gives an assistant image understanding: answer questions about an image, read text from screenshots, and write alt text via…

What you can do
  • Answer a prompt about an image: visual Q&A, OCR of screenshots, classification, or critique of a render
  • Write natural-language descriptions and alt text, steerable by detail level and focus
  • Check whether a vision provider is live and which image formats are accepted
  • Accept images as a public https URL or as base64 / data URI input
When to use it
Useful when an assistant needs to look at images it cannot see itself: reading text from screenshots, captioning or alt-text generation, identifying scene contents, or reviewing 3D and avatar renders.
Requirements
Node.js 20 or newer, run via npx or npm install. Network access to the three.ws endpoint (or a custom THREE_WS_BASE). Optional THREE_WS_API_KEY bearer token and THREE_WS_TIMEOUT_MS; no key is required for the free tier. Images must be JPEG, PNG, WebP or GIF up to 12 MB, and imageUrl must be a public https URL.
Before you install
Images, including base64 payloads, are sent to the three.ws service for analysis, so avoid confidential screenshots. Requests are rate-limited per IP; the optional THREE_WS_API_KEY raises the limit and is sent as a bearer token. Tools are read-only but answers are non-deterministic and the provider chain can change.

Installation

In SourceWeft

  1. Open three.ws Vision in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[three.ws]

@three-ws/vision-mcp

Let any AI agent see — analyze and describe images through the three.ws vision pipeline, free-first and no key required.

[npm] [license] [node] [MCP Registry] [three.ws]


A Model Context Protocol server that gives any AI assistant image understanding over stdio. Pass an image as a public URL or base64 and the agent can read the text in a screenshot, identify what's in a scene, critique a 3D/avatar render, or write alt-text — all live, read-only, no key required.

Every answer comes from the three.ws vision pipeline: free NVIDIA NIM vision models lead every request, with an automatic server-side paid backstop behind them. The caller never pays and needs no provider key — point THREE_WS_BASE at a deployment and go.

Install

bash
npm install @three-ws/vision-mcp

Or run with npx (no install):

bash
npx @three-ws/vision-mcp

Quick start

Claude Code, one line:

bash
claude mcp add vision -- npx -y @three-ws/vision-mcp

Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):

json
{	"mcpServers": {		"vision": {			"command": "npx",			"args": ["-y", "@three-ws/vision-mcp"]		}	}}

Inspect the surface with the MCP Inspector:

bash
npx -y @modelcontextprotocol/inspector npx @three-ws/vision-mcp

Tools

ToolTypeWhat it does
analyze_imageread-onlyAnswer a prompt about an image — visual Q&A, OCR (read a screenshot), classification, or critiquing a render.
describe_imageread-onlyNatural-language description for alt text or a caption, steerable by detail level and focus.
get_vision_statusread-onlyReport whether a vision provider is live and which image formats are accepted. No image, no cost.

All three tools are read-only — they look at an image, they never store or mutate anything. A VLM is non-deterministic and the live provider chain moves, so none are idempotent.

Input parameters

analyze_image — prompt (required), and exactly one of imageUrl (public https) or image (base64 / data URI). Optional imageType (for raw base64), maxTokens (16–2048, default 512).

describe_image — exactly one of imageUrl or image. Optional imageType, detail (brief | standard | detailed, default standard), focus (an aspect to emphasize).

get_vision_status — no parameters.

Example

jsonc
// analyze_image: read the text in a logo image> { "imageUrl": "https://three.ws/logo.png", "prompt": "What does this logo say?" }{  "ok": true,  "text": "The logo reads \"three.ws\".",  "provider": "nvidia",  "model": "nvidia/nemotron-nano-12b-v2-vl",  "prompt": "What does this logo say?",  "image_source": "url"}
jsonc
// describe_image — alt text from a base64 image> { "image": "data:image/png;base64,iVBORw0KG...", "detail": "brief" }{  "ok": true,  "description": "A seagull in profile against a blurred coastal background.",  "detail": "brief",  "provider": "nvidia",  "model": "nvidia/nemotron-nano-12b-v2-vl",  "image_source": "base64"}
jsonc
// get_vision_status — gate a "describe this" affordance> {}{  "ok": true,  "configured": true,  "image_types": ["image/jpeg", "image/png", "image/webp", "image/gif"],  "max_image_mb": 12}

Examples

Runnable, key-free examples live in examples/:

bash
node examples/list-tools.mjs     # every tool with its full input schemanode examples/read-an-image.mjs  # status + alt text + OCR on a live image

Both spawn this server over stdio and call the real vision pipeline. Every tool is read-only, so nothing is stored and nothing is paid. See examples/README.md for expected output.

Images may be JPEG, PNG, WebP, or GIF, up to 12 MB. Base64 inputs are size-checked locally before upload; imageUrl must be a public https URL (the vision server fetches it, so private/loopback hosts are rejected).

Pricing & auth

There is no charge to the caller and no key is needed. The platform runs every request against free NVIDIA NIM vision lanes first and falls back to a paid model only on its own infrastructure — that cost is the platform's, transparent to you.

The endpoint is rate-limited per IP. To raise your limit to the per-user tier, set the optional THREE_WS_API_KEY (a three.ws API key); it is sent as a bearer token. It is never required to use the free model.

Requirements

  • Node.js >= 20.
  • Network access to https://three.ws (or your own THREE_WS_BASE).

Environment variables

VariableRequiredDefaultPurpose
THREE_WS_BASEnohttps://three.wsWhich deployment to call.
THREE_WS_TIMEOUT_MSno30000Per-request timeout (a call may chain across free lanes).
THREE_WS_API_KEYno—Optional bearer token to raise the rate limit to per-user.

Links


Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub

Source: packages/vision-mcp/README.md at commit c8f2cde

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.1.2LatestOct 10, 2026
  2. v0.1.1Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts