Skip to main content
Glama
README.md
# opencode-eyes 👁️

MCP server that provides image description capability using StepFun **Step-3.7-flash** multimodal model.

为不具备多模态能力的模型提供**"眼睛"**。将图片输入,即可获得详细的图片文字描述。

## 功能

| 工具 | 说明 |
|------|------|
| `describe_image` | 描述一张图片的内容,使用 StepFun Step-3.7-flash 多模态大模型 |

## 环境变量

| 变量 | 必填 | 默认值 | 说明 |
|------|------|--------|------|
| `STEP_API_KEY` | 是 | — | StepFun API Key |
| `STEP_MODEL` | 否 | `step-3.7-flash` | 使用的模型名称(Step Plan 专用地址 `https://api.stepfun.com/step_plan/v1`) |
| `STEP_TIMEOUT` | 否 | `120` | StepFun API 请求超时(秒) |
| `STEP_MAX_DIMENSION` | 否 | `2048` | 发送前图片最长边缩放到该像素,0 表示不缩放 |
| `STEP_JPEG_QUALITY` | 否 | `85` | 发送前 JPEG 压缩质量(0-100) |

## 更新日志 (v1.0.2)

- **修复 MCP -32001 Request timed out**:发送前将图片缩放/压缩为 JPEG,大幅减小 payload、降低 API 延迟,避免超过 MCP 客户端默认 5s 超时。
- **修复空描述**:`step-3.7-flash` 有时把答案放在 `reasoning_content`/`reasoning` 而 `content` 为空,现已自动回退。
- **修复 Windows 中文乱码**:stdout/stdin 改为 UTF-8 字节读写。
- 新增 `ping` 方法支持,更健壮的 MCP 握手。

> 注意:opencode 的 MCP 请求超时默认为 5000ms。若仍需更宽松的超时,可在 opencode 配置中为该 MCP 设置 `"timeout": 120000`,或全局设置 `"experimental": { "mcp_timeout": 120000 }`。

## 安装

```bash
pip install Pillow
```

## 运行

```bash
# 设置环境变量
set STEP_API_KEY=你的StepFun API Key

# 启动服务
python -m opencode_eyes
```

## 在 OpenCode 中配置

```json
{
  "mcp": {
    "opencode-eyes": {
      "type": "local",
      "command": ["python", "-m", "opencode_eyes"],
      "enabled": true,
      "timeout": 120000,
      "environment": {
        "STEP_API_KEY": "你的StepFun API Key"
      }
    }
  }
}
```

## License

MIT