API 참조 문서
MCP 서버
원격 MCP 서버로 Claude, ChatGPT, Claude Code, Codex 및 Cursor에서 SciFig를 사용하세요.
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 연결:
claude mcp add --transport http scifig https://mcp.scifig.ai/mcpCodex (~/.codex/config.toml):
[mcp_servers.scifig]
url = "https://mcp.scifig.ai/mcp"Cursor(~/.cursor/mcp.json), 설정 → 개발자에서 만든 API 키 사용:
{
"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개 그래프 종류, 중복 불가(그래프 참조) | |
| journal_style | 아니요 | default, nature, science, cell, plos 또는 acs | |
| figure_width | 아니요 | single, onehalf 또는 double | |
| color_palette | 아니요 | 팔레트 이름(그래프 참조) | |
| 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를 사용하세요.
도구 동작#
- 서버는
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같은 거부 응답은 해당 키에 저장되므로 새 키로 다시 요청하세요.