Skip to main content

English | 简体中文


GLM-4.6V-Flash MCP Server:给"只会读字"的大模型装上"眼睛"

一个基于智谱开放平台 HTTP API 的 MCP 服务器。它把 GLM-4.6V-Flash(智谱开放平台的免费多模态视觉模型)封装成标准 MCP 工具,让 Codex、Cursor、Claude Desktop 等大模型客户端获得"看图、看视频、读文件"的能力,从而让原本只会处理文字(单语言)的大模型也能实现多模态效果。

目录

这是什么?为什么要做这个项目?

先认识两类模型

1. 单语言(纯文本)大模型

很多常见的大模型(例如某些版本的编程助手、办公助手)是单语言模型:它们只接受文字输入,也只输出文字。它们很擅长"读字"和"写字",但天生"看不见"图片、视频,也读不懂 PDF 里的图表。

2. 多模态视觉模型

GLM-4.6V-Flash 是智谱开放平台提供的视觉识别模型。它专门负责"看":能描述图片内容、识别图片中的文字(OCR)、看懂视频画面、解读 PDF/TXT 等文件,并把"看到的内容"转换成文字。

本项目解决什么问题?

如果你正在使用一个大模型,但它看不懂图片、视频、文件,通常有两个选择:

  1. 换一个原生多模态的大模型(成本高、迁移麻烦);
  2. 给现有模型"外接"一个视觉模型——本项目做的就是这件事。

本项目相当于在纯文本大模型和视觉模型之间架了一座桥:大模型还是原来那个大模型,不需要重新训练,遇到图片/视频/文件时,通过 MCP 调起 GLM-4.6V-Flash 去"看",再把文字结果拿回来,最终照样给你一个"看得懂图"的回答。

一句话总结:

主模型负责"思考",视觉模型负责"看",MCP 负责"牵线",三者配合 = 多模态效果。

MCP 是什么?

MCP(Model Context Protocol,模型上下文协议)可以理解为"大模型的 USB 接口"。

  • 以前:每个大模型想接入外部工具,都要为每个客户端单独开发对接代码;
  • 现在:只要按 MCP 标准提供工具,任何支持 MCP 的客户端都能"即插即用"。

本项目就是一个标准的 MCP 服务器。它对外提供三个工具(analyze_imageanalyze_videoanalyze_file),客户端启动后会自动发现这些工具,并在需要时调用。

工作原理:它是怎么让大模型"看见"的?

以"问一张图片"为例,完整流程如下:

flowchart LR
    A["用户发来一张图片"] --> B["纯文本大模型(只会读字)"]
    B --> C["通过 MCP 调用 analyze_image"]
    C --> D["GLM-4.6V-Flash 视觉模型负责“看”"]
    D --> E["把“看到的内容”转成文字返回"]
    E --> F["大模型结合文字给出最终回答"]

简单来说:

  1. 你向大模型提问,问题里带有图片/视频/文件;
  2. 大模型发现自己"看不懂"媒体内容,就通过 MCP 把媒体交给 GLM-4.6V-Flash;
  3. GLM-4.6V-Flash 完成视觉识别,把结果(一段文字描述)返回给大模型;
  4. 大模型拿着这段文字,结合你的问题,给出最终回答。

对你来说,体验上就像大模型本身会看图一样——这就是"外接视觉模型实现多模态"的核心思路。

核心特性

  • 免费模型:GLM-4.6V-Flash 是智谱开放平台的免费多模态模型(额度政策以智谱官方为准);
  • 不换模型、不用训练:原大模型保持不变,只是多了一个"外接眼睛";
  • 三种媒体:图片、视频、文件(PDF/TXT 等)都能理解;
  • 支持本地文件:直接传本地文件路径,服务器会自动转成 Base64 data URI 上传;
  • 深度思考可选thinking 参数可开关模型的深度思考模式;
  • 标准 MCP 协议:Codex、Cursor、Claude Desktop 等支持 MCP 的客户端都能接入;
  • 轻量实现:用 httpx 直接调用 HTTP 接口,不依赖智谱 SDK。

底层 API 说明

本项目直接调用智谱开放平台的大模型接口,关键信息如下:

项目
接口地址 https://open.bigmodel.cn/api/paas/v4/chat/completions
模型 ID glm-4.6v-flash
鉴权方式 请求头 Authorization: Bearer <ZHIPU_API_KEY>
请求库 httpx(直接 HTTP 调用,不依赖智谱 SDK)

支持的环境变量:

环境变量 作用 默认值
ZHIPU_API_KEY 智谱 API Key(必填,兼容 GLM_API_KEY
GLM_API_BASE 覆盖接口地址 智谱官方地址
GLM_MODEL 覆盖模型 ID glm-4.6v-flash
GLM_TIMEOUT 请求超时秒数 120

提供的 MCP 工具

MCP 工具 能做什么 常见用途
analyze_image 理解一张图片 OCR 识别、内容描述、表格解析、缺陷检测、把图转成提示词(Image2Prompt)等
analyze_video 理解一段视频(传视频 URL 或本地视频文件) 视频内容总结、关键画面描述、审核等
analyze_file 理解一个文件(PDF / TXT 等,传 URL 或本地文件) 文档解读、合同提取、报告总结等

所有工具都支持以下参数:

参数 说明 默认值
image / video / file 媒体地址,支持 http(s) URL、data URI 或本地文件路径 必填
prompt 你想让模型做什么/回答什么 不同工具各有默认提示词
thinking 是否开启深度思考模式(true/false false
temperature 采样温度(0~1),越低越保守,越高越有创造性 1.0
max_tokens 最大输出 token 数 4096

注意:一次请求只支持一种媒体(图片/视频/文件三选一),不支持同时传多种。

快速开始

1. 获取 API Key

到智谱开放平台申请:https://open.bigmodel.cn/usercenter/apikeys

申请后在控制台创建一个 Key,后面配置时要用。

2. 安装

方式一:从源码安装(GitHub 克隆)

需要 Python 3.10 或更高版本。

git clone https://github.com/<你的用户名>/glm-4.6v-flash-mcp.git
cd glm-4.6v-flash-mcp
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
pip install -e .   # 安装为 glm-mcp 命令

方式二:从 PyPI 安装(发布后,推荐)

pip install glm-4.6v-flash-mcp

3. 配置 API Key

.env.example 复制为 .env,然后填入你的 Key:

Copy-Item .env.example .env
# 然后用编辑器打开 .env,把 ZHIPU_API_KEY 改成你的真实 Key

也可以设置系统环境变量:

$env:ZHIPU_API_KEY = "你的Key"

注意事项:

  • Key 只需写在项目目录的 .env 里,不需要写进 .mcp.json
  • 服务器启动时会固定读取自己项目目录下的 .env,无论从哪个目录启动;
  • 也兼容 GLM_API_KEY 环境变量。

4. 验证安装

.\.venv\Scripts\python.exe scripts\smoke_test.py
.\.venv\Scripts\python.exe scripts\test_payload.py

两个脚本都运行成功,说明服务器和 API Key 都正常。

接入客户端

Codex / Cursor

先完成上面的安装,确保 glm-mcp 命令可用,然后:

项目级配置(把 .mcp.json 放到项目根目录):

{
  "mcpServers": {
    "glm-4-6v-flash": {
      "command": "glm-mcp"
    }
  }
}

全局配置(编辑 ~/.codex/config.toml):

[mcp_servers.glm-4-6v-flash]
command = "glm-mcp"

保存后重启 Codex / Cursor(或新开一个会话),MCP 服务器会自动启动,工具 analyze_imageanalyze_videoanalyze_file 就会出现。

Claude Desktop

claude_desktop_config.example.json 的内容合并到 Claude Desktop 的 claude_desktop_config.json(通常位于 %APPDATA%\Claude\):

{
  "mcpServers": {
    "glm-4-6v-flash": {
      "command": "glm-mcp"
    }
  }
}

Key 通过环境变量 ZHIPU_API_KEY 设置,或放在启动目录的 .env 中。

其他支持 stdio 的 MCP 客户端

安装后直接启动:

glm-mcp

或使用 uvx(发布到 PyPI 后):

uvx glm-4.6v-flash-mcp

在 Codex 桌面版中使用(资源方式)

当前 Codex 桌面版不会把外部 MCP 工具暴露为 mcp__* 函数,而是通过资源接口使用。本服务器额外提供了资源:

资源 说明
glm://help 使用说明与可直接使用的示例 URI
glm://analyze-image/{image} 图片分析(默认提示词),{image} 是 URL 编码的图片地址
glm://analyze-image/{image}/{prompt} 图片分析(自定义提示词)
glm://analyze/{payload} 图片/视频/文件通用分析,payload 是 base64url 编码的 JSON

在新会话里让 Codex 按以下步骤操作:

  1. 调用 list_mcp_resources(server="glm-4-6v-flash") 查看资源;
  2. 调用 read_mcp_resource(server="glm-4-6v-flash", uri="glm://help") 读取说明;
  3. 按说明构造 glm://analyze/<payload>(或简版 glm://analyze-image/<URL编码的图片地址>),再调用 read_mcp_resource 读取分析结果。

手动调用示例

下面的 curl 请求等价于 analyze_image 工具内部的行为,方便你排查问题或直接测试 API:

curl -X POST https://open.bigmodel.cn/api/paas/v4/chat/completions \
  -H "Authorization: Bearer $ZHIPU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "glm-4.6v-flash",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "image_url", "image_url": {"url": "https://cdn.bigmodel.cn/static/logo/register.png"}},
        {"type": "text", "text": "这张图片讲了什么?"}
      ]
    }],
    "thinking": {"type": "disabled"}
  }'

请求结构说明:

  • model:要使用的模型 ID;
  • messages[0].content:一个数组,先放媒体块(image_url / video_url / file_url),再放文字提示词;
  • thinking{"type": "disabled"} 关闭深度思考,{"type": "enabled"} 开启。

注意事项

  • 官方文档说明:一次请求内不支持同时理解文件、视频和图像,每个工具一次只传一种媒体。
  • API Key 属于敏感信息,不要把 .env 提交到仓库(已加入 .gitignore);.mcp.json 只包含启动命令,不含密钥,可以放心提交。
  • 如需切换接口地址或模型 ID,可通过 GLM_API_BASEGLM_MODEL 环境变量覆盖;请求超时可通过 GLM_TIMEOUT 调整。
  • GLM-4.6V-Flash 为免费模型,但具体免费额度和使用政策以智谱开放平台官方说明为准。

常见问题(FAQ)

Q1:我的大模型本身好像也能看图,还需要这个项目吗?

如果你的模型本身就是原生多模态模型,就不需要。这个项目主要面向单语言(纯文本)大模型——它们只认文字,不认图片/视频/文件。通过本项目外接视觉模型,它们也能"看懂"媒体内容。

Q2:一次能同时传图片和视频吗?

不能。智谱官方文档要求一次请求只传一种媒体(图片、视频、文件三选一)。

Q3:怎么传本地文件?

直接把本地路径传给工具即可,例如 C:\photos\1.png。服务器会自动读取文件并转成 Base64 data URI 上传,你不需要手动转换。

Q4:API Key 应该写在哪里?

写在项目目录的 .env 里(复制 .env.example 修改即可),不需要写进 .mcp.json。也可以设置环境变量 ZHIPU_API_KEY(兼容 GLM_API_KEY)。

Q5:报错说没配置 API Key,怎么办?

检查是否已把 Key 填入 .env 并保存,或者是否设置了环境变量;确认 Key 没有前后空格,且格式形如 xxx.yyy。如果仍然不行,可以到智谱开放平台确认 Key 是否有效、账户是否有额度。

Q6:怎么改请求超时时间?

设置环境变量 GLM_TIMEOUT(单位秒),默认 120 秒。处理较大视频或文件时可以适当调大。

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

glm_4_6v_flash_mcp-0.2.0.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

glm_4_6v_flash_mcp-0.2.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file glm_4_6v_flash_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: glm_4_6v_flash_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for glm_4_6v_flash_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 17fa7dbbed033b72cc176ba0e01a1d1b658dc05ee0dca770b1cede145421bde2
MD5 897ed531abbf2d3997ea5b0ba97b40e4
BLAKE2b-256 510fe1b1ca6f81115e78934a8165d86eec05ce548e29d2a96761cb245df64e6a

See more details on using hashes here.

File details

Details for the file glm_4_6v_flash_mcp-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for glm_4_6v_flash_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ff843df597f1e571ba2c2ccab4329dde5218138bf097d3d4d5dfe5930ec2600
MD5 557e9764b4f35d68aec878ee9637061a
BLAKE2b-256 9ab71c0fc95098aa3af5c3b45f402a536192e89a7194570319458895f556e96c

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.1

2 files

This release

0.2.0 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page