# MCP 服务器

通过远程 MCP 服务器，在 Claude、ChatGPT、Claude Code、Codex 和 Cursor 中使用 SciFig。

来源：https://scifig.ai/zh/docs/api/mcp

## MCP 服务器

服务器 URL：`https://mcp.scifig.ai/mcp`（Streamable HTTP）。支持 OAuth 的客户端通过登录 SciFig 并批准访问连接；可发送请求头的客户端可使用 API 密钥，格式为 `Authorization: Bearer sk_live_…`。

| 工具 | 功能 |
| --- | --- |
| generate_figure | 根据提示词创建科研插图 |
| edit_figure | 编辑图像：指令（可选蒙版区域）、白色背景、宽高比、重新配色或文字替换 |
| detect_text | 替换前识别图中的文字 |
| upscale_figure | 放大到 2K、4K 或 8K |
| convert_figure | 转换为 SVG、PNG、PDF、TIFF 或 PPTX |
| generate_chart | 根据 CSV、TSV 文本或 JSON 行数据绘制图表（最大 1 MB） |
| edit_chart | 修改图表的最新版本 |
| generate_flowchart | 绘制 SVG 流程图，也可基于最多 8 个附件 |
| edit_flowchart | 修改流程图的最新版本 |
| get_job | 任务状态、积分和下载链接 |
| list_figures | 最近的任务 |
| get_credit_balance | 积分余额、档位和限制 |

创建工具最多等待 25 秒。任务仍运行时，请稍后调用 `get_job`；再次调用创建工具会新建并扣费一个任务。结果列出每个下载链接，图表和流程图还包含在 SciFig 编辑器中打开结果的链接。

创建工具会在下载附件前检查 `figures:generate` 权限范围。只读连接可读取任务和积分，但无法创建插图。

## 连接客户端

Claude（claude.ai 和 Claude Desktop）：设置 → 连接器 → 添加自定义连接器，输入服务器 URL，再登录 SciFig 并允许访问。

ChatGPT：设置 → 应用 → 高级 → 开发者模式，使用服务器 URL 和 OAuth 鉴权创建应用。

Claude Code：

```bash
claude mcp add --transport http scifig https://mcp.scifig.ai/mcp
```

Codex (`~/.codex/config.toml`):

```toml
[mcp_servers.scifig]
url = "https://mcp.scifig.ai/mcp"
```

Cursor（`~/.cursor/mcp.json`），使用在设置 → 开发者中创建的 API 密钥：

```json
{
  "mcpServers": {
    "scifig": {
      "url": "https://mcp.scifig.ai/mcp",
      "headers": { "Authorization": "Bearer sk_live_…" }
    }
  }
}
```

不支持 OAuth 的客户端，可使用设置 → 开发者中的 API 密钥添加请求头 `Authorization: Bearer sk_live_…`。

## 工具参数

| 工具 | 参数 | 必填 | 规则 |
| --- | --- | --- | --- |
| generate_figure | prompt | 是 | 3–20,000 个字符 |
|  | aspect_ratio | 否 | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` |
|  | quality | 否 | `standard`、`advanced` 或 `premium` |
|  | style | 否 | `flat`, `2-5d`, `line-art`, `hand-drawn`, `scientific`, `line`, `3d`, `editorial`, `sketch`, `watercolor`, `auto` 中的一项 |
|  | palette | 否 | 1–64 个字符的配色名称，或 1–4 个 `#RRGGBB` 颜色值 |
|  | reference_images | 否 | 最多 3 张图像：`file_id`、https URL 或 data URL；最大 20 MB 的 PNG、JPEG 或 WebP（data URL 约 3 MB，参阅下文） |
|  | idempotency_key | 否 | 可选；仅在超时或网络错误后重试同一请求时复用 |
| edit_figure | image | 是 | `file_id`、https URL 或 data URL；最大 20 MB 的 PNG、JPEG 或 WebP（data URL 约 3 MB，参阅下文） |
|  | operation | 否 | `instruct`（默认）、`white_background`、`aspect_ratio`、`recolor` 或 `replace_text` |
|  | instruction | 适用于 `instruct` | 1–2,000 个字符 |
|  | mask | 否 | 仅适用于 `instruct`：最大 8 MB 的 PNG，白色表示允许修改的区域 |
|  | aspect_ratio | 适用于 `aspect_ratio` | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` |
|  | palette | 否 | 仅适用于 `recolor`：1–8 个 `#RRGGBB` 颜色值 |
|  | text_detection | 适用于 `replace_text` | `detect_text` 返回的 id |
|  | replacements | 适用于 `replace_text` | 1–256 项 `[{"index", "text"}]`：`index` 为 `detect_text` 中的 0–255，每个索引最多出现一次；text 为 1–500 个字符 |
|  | quality | 否 | `replace_text` 会忽略此项 |
|  | idempotency_key | 否 | 可选；仅在超时或网络错误后重试同一请求时复用 |
| detect_text | image | 是 | `file_id`、https URL 或 data URL；最大 20 MB 的 PNG、JPEG 或 WebP（data URL 约 3 MB，参阅下文） |
|  | idempotency_key | 否 | 可选；仅在超时或网络错误后重试同一请求时复用 |
| upscale_figure | image | 是 | `file_id`、https URL 或 data URL；最大 20 MB 的 PNG、JPEG 或 WebP（data URL 约 3 MB，参阅下文） |
|  | scale | 是 | `2k`、`4k` 或 `8k` |
|  | idempotency_key | 否 | 可选；仅在超时或网络错误后重试同一请求时复用 |
| convert_figure | image | 是 | `file_id`、https URL 或 data URL；最大 20 MB 的 PNG、JPEG 或 WebP（data URL 约 3 MB，参阅下文）；或通过 `file_id` 指定流程图 SVG 输出 |
|  | format | 是 | `svg`、`png`、`pdf`、`tiff` 或 `pptx` |
|  | vector_mode | 否 | 仅适用于格式 `svg`：`editable_text` 或 `full_vector` |
|  | dpi | 否 | 不适用于 `svg`：300、600 或 1000 |
|  | width | 否 | 不适用于 `svg`；仅用于流程图 SVG 源文件：256–4096 像素 |
|  | idempotency_key | 否 | 可选；仅在超时或网络错误后重试同一请求时复用 |
| generate_chart | data | `data` 或 `rows` | 带表头行的 CSV 或 TSV 文本，最大 1 MB（1,000,000 个字符） |
|  | rows | `data` 或 `rows` | 替代 `data`：1–100,000 个对象，每个对象将列名映射到值；以 CSV 发送，最大 1 MB |
|  | data_format | 否 | `csv` 或 `tsv`；省略时根据首行识别 |
|  | request | 是 | 需要绘制的内容，1–16,000 个字符 |
|  | chart_types | 否 | 最多 46 种图表类型，不可重复（参阅[图表](/zh/docs/api/charts)） |
|  | journal_style | 否 | `default`、`nature`、`science`、`cell`、`plos` 或 `acs` |
|  | figure_width | 否 | `single`、`onehalf` 或 `double` |
|  | color_palette | 否 | 配色名称（参阅[图表](/zh/docs/api/charts)） |
|  | idempotency_key | 否 | 可选；仅在超时或网络错误后重试同一请求时复用 |
| edit_chart | job_id | 是 | 最新的图表任务 |
|  | instruction | 是 | 1–16,000 个字符 |
|  | idempotency_key | 否 | 可选；仅在超时或网络错误后重试同一请求时复用 |
| generate_flowchart | prompt | 是 | 1–8,000 个字符 |
|  | aspect_ratio | 否 | `auto`, `16:9`, `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `21:9` |
|  | attachments | 否 | 最多 8 个：`file_id`、https URL 或 data URL；PDF、DOC、DOCX、Markdown、文本、SVG、PNG、JPEG 或 WebP，每个最大 32 MB |
|  | idempotency_key | 否 | 可选；仅在超时或网络错误后重试同一请求时复用 |
| edit_flowchart | job_id | 是 | 最新的流程图任务 |
|  | instruction | 是 | 1–8,000 个字符 |
|  | idempotency_key | 否 | 可选；仅在超时或网络错误后重试同一请求时复用 |
| get_job | job_id | 是 | 任务 id |
| list_figures | limit | 否 | 1–20 |
|  | cursor | 否 | 上一页的 `next_cursor` |
| get_credit_balance | — | — | 无参数 |

`generate_chart` 仅接受文本数据，最大 1 MB。Excel 工作簿（及其 `sheet_name`）或更大文件请使用 [`POST /charts/generations`](/zh/docs/api/charts)。

## 工具行为

- 服务器地址为 `https://mcp.scifig.ai/mcp`（Streamable HTTP）。它代表你调用本 API，因此价格、积分、限制和错误相同。
- 图像和附件参数接受 `file_id`、https URL 或 data URL；URL 和 data URL 会先通过 `POST /files` 上传，计入上传额度。SciFig 自身的 URL 会被拒绝（请传 `file_id`），重定向仅允许跳转到其他 https 地址。
- MCP 服务器单次请求限制为 4 MB。Base64 会使文件增大约三分之一，因此 data URL 可携带约 3 MB；更大文件请通过 https URL 传入。
- 服务器仅在 `initialize` 和 `tools/call` 时检查凭据。令牌过期或被撤销时返回 `401`，便于客户端刷新或重新登录；账号被封禁或正在删除时返回 `403`。
- 已完成的图像结果不超过 1 MB 时会内联显示；每个结果都包含下载链接，图表和流程图结果还包含在 SciFig 编辑器中打开的链接。
- 除非助手传入 `idempotency_key`，否则每次创建均使用新的 Idempotency-Key，因此再次请求会新建并扣费一个任务。请用 `get_job` 查询进度。
- 错误结果会返回 `idempotency_key`，任务存在时还会返回 `job_id`。超时或服务器错误后，请用相同密钥重试或调用 `get_job`；`402 INSUFFICIENT_CREDITS` 等拒绝响应会保留在原密钥下，请换新密钥重发。
