EnriVision
EnriVision是一家 模型上下文协议(MCP) 服务器已关闭 stdio 将本地媒体上传到 EnriProxy 的 并返回 服务器端提取+模型分析.
这对于许多MCP客户端无法可靠读取的媒体类型(视频、音频、扫描的PDF、HEIC/AVIF、大文件)非常有用,同时保持MCP服务器本身的轻量级。
这个项目是什么
- 您的MCP主机启动的MCP服务器进程(OpenCode、Claude Code、Codex等)
- EnriProxy的瘦客户端(可恢复上传+结构化输出)
需求
- Node.js
>= 22(推荐:Node 24 LTS) - 启用了以下端点的可访问EnriProxy服务器:
- POST /v1/uploads - HEAD /v1/uploads/:id - PATCH /v1/uploads/:id - POST /v1/vision/analyze
- EnriProxy API密钥(在EnriProxy侧配置)
安装
# Global install
npm install -g @bedolla/enrivision
# Or run without installing
npx -y @bedolla/enrivision@latest --help构建
npm install
npm run typecheck
npm run build用法
1) 配置您的MCP主机
EnriVision作为MCP服务器运行 stdio。您的MCP主机负责启动该进程。
示例:全局安装
{
"EnriVision": {
"type": "stdio",
"command": "enrivision",
"args": [],
"env": {
"ENRIPROXY_URL": "http://127.0.0.1:8787",
"ENRIPROXY_API_KEY": "YOUR_ENRIPROXY_API_KEY",
"ENRIVISION_DEFAULT_LANGUAGE": "es"
}
}
}示例:无需安装(始终使用当前npm标签作为 latest)
{
"EnriVision": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@bedolla/enrivision@latest"],
"env": {
"ENRIPROXY_URL": "http://127.0.0.1:8787",
"ENRIPROXY_API_KEY": "YOUR_ENRIPROXY_API_KEY",
"ENRIVISION_DEFAULT_LANGUAGE": "es"
}
}
}Use a local dev checkout
{
"EnriVision": {
"type": "stdio",
"command": "node",
"args": ["C:\\\\Users\\\\Administrator\\\\Projects\\\\EnriVision\\\\dist\\\\index.js"],
"env": {
"ENRIPROXY_URL": "http://127.0.0.1:8787",
"ENRIPROXY_API_KEY": "YOUR_ENRIPROXY_API_KEY",
"ENRIVISION_DEFAULT_LANGUAGE": "es"
}
}
}配置
EnriVision通过环境变量进行配置:
ENRIPROXY_URL(string,可选,默认值:http://127.0.0.1:8787)ENRIPROXY_API_KEY(string,必填)ENRIVISION_TIMEOUT_MS(string,可选,默认值:1800000)
- 解析为整数(毫秒)。上传是分块执行的;此超时适用于每个请求。
ENRIVISION_DEFAULT_LANGUAGE(string,可选)
- 工具调用不提供时发送的默认语言 language.
MCP工具
EnriVision公开了此MCP工具:
analyze_media
Tool inputs (option-by-option)
一般注意事项:
- 该工具接受单个JSON对象作为其输入(MCP
arguments). - 正是其中之一
path或paths是必需的。 - 在运行MCP服务器的计算机上,路径必须是绝对的。
- EnriVision不接受每次通话
server_url/api_key重写(这些是通过环境变量配置的)。
analyze_media
输入:
path(string,可选):绝对本地文件路径。paths(string[],可选):绝对本地图像路径(适用于UI屏幕截图集)。context(string,可选):高级提示(示例:ui,diagram,chart,error,code,meeting,tutorial,photo).question(string,可选):您要提取/回答的内容。language(string,可选):首选响应语言(ISO 639-1;例如。,es,en).如果省略,则使用ENRIVISION_DEFAULT_LANGUAGE当设置时。analysis_mode(string,可选):auto|single|multipass.max_frames(number,可选):单程视频帧(1..20).transcribe(boolean,可选):启用/禁用转录(视频)。transcription_language(string,可选):耳语提示(auto,es,en, ...).
视频定位:
video.clip_start_seconds(number,可选)video.clip_duration_seconds(number,可选)
多路径调优(高级;仅用于 analysis_mode: multipass):
video.segment_seconds(number,可选)video.max_segments(number,可选)video.max_frames_per_segment(number,可选)document.max_pages_total(number,可选)document.pages_per_batch(number,可选)document.max_images_per_batch(number,可选)document.scanned_text_threshold_chars(number,可选)audio.timestamps(boolean,可选)audio.segment_seconds(number,可选)audio.max_segments(number,可选)images.max_images_total(number,可选)images.images_per_batch(number,可选)images.max_dimension(number,可选)
输出:
analysis(string):模型生成分析。media_type(string):检测到的媒体类型(video,audio,image,document,image_set).extraction(object):安全元数据摘要(内部路由详细信息被剥离)。
示例 arguments 对象:
{
"path": "C:\\\\path\\\\to\\\\video.mp4",
"question": "What are the key steps demonstrated?",
"analysis_mode": "auto",
"transcribe": true,
"language": "es"
}Claude Code CLI Read(...) compatibility (reference)
许多MCP客户端都内置了 Read(...) 该工具可以摄取本地文件并将其附加到模型请求中。 这很方便,但支持的格式集有限,并且可以在客户端版本之间更改。
如果您的客户端不可靠地支持您需要分析的文件(例如 .avif, .heic, .svg、视频、, 音频或Office文档)更喜欢EnriVision MCP,因此客户端可以上传字节,EnriProxy可以可靠地进行提取。
Supported media types (by extension)
EnriProxy使用内容类型和扩展允许列表确定媒体类型。
视频:
.mp4,.mov,.avi,.mkv,.webm,.m4v,.wmv,.flv,.3gp,.3g2,.ts,.mts,.m2ts,.mpeg,.mpg,.gif
音频:
.mp3,.mp1,.mp2,.mpa,.mpga,.wav,.aiff,.aif,.aifc,.caf,.flac,.m4a,.m4b,.m4r,.aac,.ogg,.oga,.wma,.opus,.weba,.mka
图像:
.png,.apng,.jpg,.jpeg,.gif,.webp,.avif,.heic,.heif,.tiff,.tif,.bmp,.svg,.ico
文件:
.pdf,.docx,.pptx,.xlsx,.jsonl
