Skip to main content
Glama

GLM Vision MCP


How It Works

┌─────────────────────────────────────────────────────────┐
│                    Your IDE / Agent                     │
│                                                         │
│  Text-only model (e.g. DeepSeek-R1)                      │
│       │                                                 │
│       │  "What's in this screenshot?"                    │
│       ▼                                                 │
│  MCP Tool: see_image(path, question)                    │
│       │                                                 │
│       ▼  (stdio / MCP protocol)                         │
│  ┌──────────────────────────────────────────────────┐   │
│  │           GLM Vision MCP Server                  │   │
│  │                                                  │   │
│  │  Reads image → base64 → sends to vision model   │   │
│  │  (GLM-4.6V-Flash / GPT-4o / any VLM)            │   │
│  │                                                  │   │
│  │  Returns: "A login error dialog showing..."      │   │
│  └──────────────────────────────────────────────────┘   │
│       │                                                 │
│       ▼                                                 │
│  Text-only model continues reasoning with vision data   │
└─────────────────────────────────────────────────────────┘

You configure 3 things: model provider, model ID, and API key. The server handles everything else — image reading, base64 encoding, API calls, error handling.


Related MCP server: videre-mcp

Quick Start

1. Install

# From PyPI (once published) or from source:
pip install -e .

Or use directly with uv / pipx without installing:

# Using uv (recommended for MCP)
uv run glm-vision-mcp

2. Configure

The server reads configuration from environment variables:

Variable

Required

Default

Description

VISION_API_KEY

✅ Yes

Your model provider's API key

VISION_MODEL_ID

✅ Yes

glm-4.6v-flash

The vision model to use

VISION_MODEL_PROVIDER

✅ Yes

zhipu

Provider name (see table below)

VISION_BASE_URL

❌ No

provider default

Custom API base URL

VISION_MAX_TOKENS

❌ No

2048

Max response tokens

VISION_TEMPERATURE

❌ No

0.4

Sampling temperature

3. Add to Your IDE

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in your project):

{
  "mcpServers": {
    "glm-vision": {
      "command": "python",
      "args": ["-m", "glm_vision_mcp"],
      "env": {
        "VISION_MODEL_PROVIDER": "zhipu",
        "VISION_MODEL_ID": "glm-4.6v-flash",
        "VISION_API_KEY": "your-zhipu-api-key-here"
      }
    }
  }
}

Trae CN

Add to Trae's MCP settings (设置 → MCP):

{
  "mcpServers": {
    "glm-vision": {
      "command": "python",
      "args": ["-m", "glm_vision_mcp"],
      "env": {
        "VISION_MODEL_PROVIDER": "zhipu",
        "VISION_MODEL_ID": "glm-4.6v-flash",
        "VISION_API_KEY": "your-zhipu-api-key-here"
      }
    }
  }
}

Cline (VS Code)

Add to ~/.cline/mcp_settings.json:

{
  "mcpServers": {
    "glm-vision": {
      "command": "python",
      "args": ["-m", "glm_vision_mcp"],
      "env": {
        "VISION_MODEL_PROVIDER": "zhipu",
        "VISION_MODEL_ID": "glm-4.6v-flash",
        "VISION_API_KEY": "your-zhipu-api-key-here"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "glm-vision": {
      "command": "python",
      "args": ["-m", "glm_vision_mcp"],
      "env": {
        "VISION_MODEL_PROVIDER": "zhipu",
        "VISION_MODEL_ID": "glm-4.6v-flash",
        "VISION_API_KEY": "your-zhipu-api-key-here"
      }
    }
  }
}

Generic MCP Client (any MCP-compatible tool)

{
  "mcpServers": {
    "glm-vision": {
      "command": "python",
      "args": ["-m", "glm_vision_mcp"],
      "env": {
        "VISION_MODEL_PROVIDER": "zhipu",
        "VISION_MODEL_ID": "glm-4.6v-flash",
        "VISION_API_KEY": "your-api-key"
      }
    }
  }
}

Tip: If you installed via uv, use "command": "uv" and "args": ["run", "glm-vision-mcp"] instead.


Supported Providers

Provider

VISION_MODEL_PROVIDER

Default Base URL

Example Models

Zhipu (智谱)

zhipu

https://open.bigmodel.cn/api/paas/v4

glm-4.6v-flash, glm-4v-plus

OpenAI

openai

https://api.openai.com/v1

gpt-4o, gpt-4o-mini

DeepSeek

deepseek

https://api.deepseek.com/v1

deepseek-vl

Moonshot (Kimi)

moonshot

https://api.moonshot.cn/v1

moonshot-v1-8k-vision

SiliconFlow

siliconflow

https://api.siliconflow.cn/v1

Qwen/Qwen2-VL-72B

Custom

custom

(you set VISION_BASE_URL)

Any OpenAI-compatible VLM

Using a Custom Endpoint

Set VISION_BASE_URL to point to your own server (vLLM, Ollama, LM Studio, etc.):

{
  "env": {
    "VISION_MODEL_PROVIDER": "custom",
    "VISION_MODEL_ID": "your-model-name",
    "VISION_API_KEY": "any-or-empty",
    "VISION_BASE_URL": "http://localhost:8000/v1"
  }
}

Tools

The server exposes 4 tools. Your IDE's agent will automatically call them when it needs vision:

see_image — Core Vision Tool

Ask any question about an image.

see_image(image, question="What is in this image?")
  • image: File path, URL, or base64 string

  • question: What you want to know (default: "What is in this image?")

describe_image — Image Description

Generate a text description/caption.

describe_image(image, detail_level="detailed")
  • detail_level: "brief" | "detailed" | "exhaustive" (default: "detailed")

extract_text — OCR

Extract all visible text from an image.

extract_text(image, language_hint="Chinese")
  • language_hint: Optional — e.g. "Chinese", "English", "mixed"

analyze_chart — Chart & Diagram Analysis

Analyze charts, graphs, architecture diagrams, or UI screenshots.

analyze_chart(image, question="")
  • question: Optional specific question (default: general analysis)


Usage Example

Once configured, just talk to your IDE's agent normally:

You: "Look at the screenshot at /tmp/error.png — what's wrong?"

The agent will:

  1. Call see_image("/tmp/error.png", "What error is shown?")

  2. The MCP server sends the image to GLM-4.6V-Flash

  3. GLM returns: "The dialog shows a 'Connection Refused' error..."

  4. Your text-only model uses that answer to help you


Getting an API Key

Zhipu (智谱) — Free Tier Available

  1. Visit https://open.bigmodel.cn

  2. Sign up / log in

  3. Go to API Keys → Create new key

  4. Copy the key (format: xxxxxxxx.xxxxxxxx)

GLM-4.6V-Flash offers free quota — great for testing!

OpenAI

  1. Visit https://platform.openai.com/api-keys

  2. Create a new key


Development

Project Structure

glm-vision-mcp/
├── src/glm_vision_mcp/
│   ├── __init__.py
│   ├── __main__.py          # python -m glm_vision_mcp
│   ├── server.py            # MCP server + tool definitions
│   ├── config.py            # Env-var config loader
│   ├── utils.py             # Image encoding utilities
│   └── providers/
│       ├── base.py          # VisionProvider (shared HTTP logic)
│       ├── zhipu.py         # Zhipu GLM provider
│       ├── openai_compat.py # Generic OpenAI-compatible provider
│       └── registry.py      # Provider name → class mapping
├── examples/
│   └── quickstart.py
├── pyproject.toml
├── requirements.txt
└── README.md

Running Tests

pip install -e ".[dev]"
pytest

Adding a New Provider

  1. Create src/glm_vision_mcp/providers/my_provider.py:

from glm_vision_mcp.providers.base import VisionProvider

class MyProvider(VisionProvider):
    def _build_headers(self):
        # Custom auth if needed
        return {"X-Api-Key": self.config.api_key}
  1. Register in providers/registry.py:

_PROVIDERS["my_provider"] = MyProvider

FAQ

Q: Can I use this with a non-vision model? No — the configured model must support vision input (images). If you're unsure, GLM-4.6V-Flash is a good free option.

Q: Does it work with local images? Yes. Pass a file path and the server will read and base64-encode it automatically.

Q: How fast is it? Depends on the model provider. GLM-4.6V-Flash is very fast (typically 1-3 seconds per image).

Q: Can multiple images be analyzed at once? Currently each tool call handles one image. For multi-image comparison, call see_image multiple times or extend the tools.


License

MIT © 2026 xiayuyang750

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • Free public MCP for AI agents — 193 tools, 44 workflows. No API key.

  • Multimodal video analysis MCP — transcription, vision, and OCR for any video URL.

View all MCP Connectors

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/xiayuyang750/glm-vision-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server