# MCP サーバー

リモート MCP サーバーを通じて、Claude、ChatGPT、Claude Code、Codex、Cursor から SciFig を利用できます。

出典：https://scifig.ai/ja/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 文字のパレット名、または `#RRGGBB` 1～4 色 |
|  | 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` のみ：`#RRGGBB` 1～8 色 |
|  | text_detection | `replace_text` 用 | `detect_text` が返す ID |
|  | replacements | `replace_text` 用 | `[{"index", "text"}]` を 1～256 件指定。`index` は `detect_text` の 0～255 を使用し、各インデックスは一度だけ指定。文字列は 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 種類、重複不可（[グラフ](/ja/docs/api/charts)を参照） |
|  | journal_style | いいえ | `default`、`nature`、`science`、`cell`、`plos`、`acs` のいずれか |
|  | figure_width | いいえ | `single`、`onehalf`、`double` のいずれか |
|  | color_palette | いいえ | パレット名（[グラフ](/ja/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`](/ja/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 によりファイルが約 3 分の 1 大きくなるため、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` などの拒否応答はそのキーに保存されるため、新しいキーで再送してください。
