# MCP 서버

원격 MCP 서버로 Claude, ChatGPT, Claude Code, Codex 및 Cursor에서 SciFig를 사용하세요.

출처: https://scifig.ai/ko/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`용 | `[{"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개 그래프 종류, 중복 불가([그래프](/ko/docs/api/charts) 참조) |
|  | journal_style | 아니요 | `default`, `nature`, `science`, `cell`, `plos` 또는 `acs` |
|  | figure_width | 아니요 | `single`, `onehalf` 또는 `double` |
|  | color_palette | 아니요 | 팔레트 이름([그래프](/ko/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`](/ko/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` 같은 거부 응답은 해당 키에 저장되므로 새 키로 다시 요청하세요.
