개발자 및 AI 통합

FTIR.fun을 모든 AI 도구 또는 앱에 연결

AI 어시스턴트 또는 자체 코드에 320,000+개의 참조 스펙트럼, 지식 그래프 기반 피크 추론 및 문헌 근거 해석에 직접 액세스할 수 있도록 하세요. 연결 방법은 세 가지 중에서 선택할 수 있습니다 — AI 어시스턴트용 MCP, 코드용 REST API 또는 노코드 플랫폼용 즉시 사용 가능한 스킬입니다. 아래의 각 방법에는 처음 사용하는 사용자를 위한 단계별 지침이 제공됩니다.

등록일

시작하기 전에 — API 키를 받으세요

MCP와 REST API는 모두 하나의 FTIR.fun API 키를 사용합니다. Coze/Doubao는 플러그인 게시자가 구성한 서비스 키를 사용하므로 최종 사용자는 개인 키를 붙여넣지 않고 플러그인을 통해 작업할 수 있습니다. 개인 키를 받는 데는 약 1분이 걸립니다:

  1. FTIR.fun에 로그인 무료 계정 생성(신규 계정에는 무료 체험 크레딧이 포함됩니다).
  2. API 키 대시보드 열기 이동 계정 → API 키 그리고 생성을 클릭하십시오.
  3. API 키 보기 또는 복사 전체 키(ftir_로 시작)는 API 키 대시보드에서 계속 사용할 수 있습니다. 해당 페이지로 돌아가서 보기, 복사 또는 취소할 수 있습니다.
🔑 준비되었습니까? API 키 대시보드 열기 새 탭에서 연 다음 돌아와서 위에서 선택한 경로를 따르십시오.

1단계 — 어떤 연결이 적합한가요?

세 가지 모두 동일한 엔진에 연결됩니다: 320,000+개의 스펙트럼, 지식 그래프 추론 및 문헌 인용. 하나만 사용하면 됩니다. 자신의 작업 방식에 맞는 경로를 선택하세요. MCP는 AI 어시스턴트 사용자에게 편리한 옵션입니다.

AI가 실제로 할 수 있는 일

통합 MCP 및 REST 서비스는 동일한 FTIR.fun 작업 카탈로그를 제공합니다. API 키에는 더 작은 기능 범위가 부여될 수 있으며, 플랫폼별 선언을 통해 의도적으로 일부 기능만 공개할 수도 있습니다. 아래 작업은 동일한 FTIR.fun 서비스를 공유합니다.

작업 MCP 도구 REST 엔드포인트 AI에게 이렇게 말하세요.
장비 파일 읽기 parse_ftir_spectrum POST /parse-spectrum sample.spc를 파싱하고 감지된 피크를 나열합니다.
네이티브 데이터를 변환하고 메타데이터를 보존 convert_native_spectrum POST /native-spectrum/convert sample.spa를 JDX로 변환하고 소스 메타데이터를 유지합니다.
알 수 없는 스펙트럼 식별 analyze_ftir_spectrum POST /ftir/analyze_spectrum 이 스펙트럼이 어떤 폴리머인지 식별하십시오.
전체 삼축 보고서 제출 submit_ftir_report POST /ftir/reports ATR 모드에서 전체 보고서를 위해 sample.spa를 제출하세요.
해당 보고서를 폴링하여 가져오세요 get_ftir_report_status GET /ftir/reports/{task_id} 보고서 작업을 확인하고 완료되면 링크를 알려주세요.
피크 설명 explain_peaks POST /ftir/explain_peak_assignments 1715 및 1450 cm-1에서의 피크는 무엇을 나타냅니까?
알려진 참조 스펙트럼 찾기 find_spectra POST /ftir/find_spectra 폴리스티렌의 기준 스펙트럼을 찾습니다.
이전 결과 다시 열기 fetch_result GET /ftir/result/{result_num} 결과 20260528100755416137536을 가져옵니다.
🎓 학술 피크 귀속 — 조성이 알려진 샘플의 경우, 고급 FTIR.fun REST/MCP 기능이 문헌으로 추적된 근거를 바탕으로 측정된 모든 피크를 할당합니다. 각 제출에는 30 포인트가 부과되며, 활성 구독이 있으면 무료입니다. 상태 조회에는 요금이 부과되지 않습니다. 작업을 자연스럽게 설명하십시오(예: “이 스펙트럼의 모든 측정된 FTIR 피크를 할당하십시오. 샘플은 PMMA로 알려져 있습니다. 보고서를 저에게 이메일로 보내십시오”). 클라이언트가 파일을 제공하므로 직접 JSON 또는 Base64를 구성할 필요가 없습니다. 완료된 결과는 JSON 상태와 보호된 보고서 주소를 모두 반환합니다. 보고서는 공개 다운로드 경로에 노출되지 않습니다.

지원되는 스펙트럼 파일 이름 확장자(36): .spa, .spc, .sp, .abs, .irf, .irs, .dt, .jws, .jdx, .dx, .asc, .dpt, .opju, .opus, .ispd, .[0-9]+, .xlsx, .xls, .ods, .csv, .dat, .txt, .tsv, .json, .tab, .a2r, .asp, .spe, .map, .bsp, .spg, .srs, .smf, .ird, .fsm, .mat. 원본 파일 이름 확장자를 유지하십시오. 지원되지 않거나 읽을 수 없는 파일은 supported_extensions 및 supported_formats를 반환합니다. 유효한 sampling_mode 값은 KBr 펠릿, 증기, 용매, 박막, 파라핀 멀, ATR, 확산 반사, 마이크로 IR 및 기타입니다. 투과는 유효한 값이 아닙니다.

find_spectra 응답 예시

find_spectra 응답
{
  "success": true,
  "query": "polystyrene",
  "match_mode": "synonym",
  "match_count": 3,
  "summary": "Found 3 reference spectrum candidates for 'polystyrene'.",
  "results": [
    {"num": 555, "spectrum_number": 555, "name": "PS/PPO",
     "cas": "-", "source_type": "instrument_import",
     "peaks": [697, 756, 1028, ...], "x": [...], "y": [...]}
  ]
}

explain_peaks 응답 예시

explain_peaks 응답
{
  "success": true,
  "search_mode": "peak_explanation",
  "peak_explanations": [
    {"peaks_cm1": [1715, 1450],
     "assignment": "1715 cm-1 suggests C=O stretching (ester or carboxylic acid)...",
     "evidence_type": "llm_general_knowledge"}
  ],
  "summary": "Peak explanation based on general FTIR knowledge..."
}

전체 보고서 가져오기 (비동기)

빠른 스크리닝(analyze_spectrum)은 즉시 결과를 반환합니다. 전체 3축 보고서는 백그라운드에서 실행되며 일반적으로 30–90초가 걸립니다. task_id를 저장하고 다시 제출하지 말고 이를 폴링하세요.

  1. 제출 submit_ftir_report(MCP) 또는 POST /ftir/reports(REST)를 호출하세요. task_id와 예약된 result_num이 반환됩니다. file_base64 필드는 필수이며, 다른 필드(sampling_mode, prior_context, language_code, sample_name, sample_order_no)는 선택 사항입니다.
    제출 예시 (REST)
    curl -X POST https://ftir.fun/ftir/reports \
      -H "X-API-Key: ftir_your_key_here" \
      -H "Content-Type: application/json" \
      -d '{"file_base64": "V2F2ZW51bWJlci...", "filename": "sample.spa", "sampling_mode": "ATR", "language_code": "en"}'
    응답 제출
    {"success": true, "task_id": "rpt_abc123...", "result_num": "20260713...",
     "status": "queued", "status_url": "https://ftir.fun/ftir/reports/rpt_abc123..."}
  2. 투표 get_ftir_report_status (MCP) 또는 GET /ftir/reports/{task_id}를 completed가 true가 될 때까지 5~10초마다 호출하십시오. 완료된 응답에는 report_url, report 객체(구조화된 결과 콘텐츠, 그 안에 상세한 report_view 포함) 및 result_num이 포함됩니다.
    폴링 예시
    curl https://ftir.fun/ftir/reports/rpt_abc123 \
      -H "X-API-Key: ftir_your_key_here"
    폴링 응답 (진행 중)
    {"success": true, "task_id": "rpt_abc123", "status": "running", "progress": 45, "completed": false}
    폴링 응답 (완료됨)
    {"success": true, "task_id": "rpt_abc123", "status": "completed", "completed": true,
     "result_num": "20260713...", "report_url": "https://ftir.fun/outputdata/?num=20260713..."}
  3. 최종 보고서 열기 브라우저에서 전체 URL https://ftir.fun/outputdata/?num={result_num}을 열어 FTIR.fun이 렌더링한 완전한 삼축 결과 페이지를 확인하세요.
⚠️ task_id를 유지하고 완료 또는 실패할 때까지 폴링하세요. 대기 중이거나 실행 중인 상태에서 중복 제출하면 포인트가 낭비됩니다.

문제 해결

보이는 것 의미 해야 할 일
클라이언트가 브라우저 인증 페이지를 열거나, 인증 페이지가 존재하지 않는다고 표시합니다. 클라이언트가 오래된 OAuth 스타일 서버 항목을 사용하고 있습니다. FTIR.fun은 OAuth를 사용하지 않으며 API 키만 사용합니다. 기존 ftirfun 서버 항목을 삭제하고, 이 페이지에서 정확한 구성을 붙여넣은 후, 클라이언트를 다시 로드하고 ftirfun을 다시 시작하세요.
401 (MCP) / 401 invalid_api_key (REST) API 키가 없거나, 만료되었거나, 취소되었거나, 잘못 붙여넣어졌습니다. 서버를 다시 시작하고 원시 키(ftir_로 시작)만 붙여넣으십시오. 에서 새 키를 생성하십시오. API 키 대시보드 필요한 경우.
서버가 시작되지만 도구가 나타나지 않습니다. 클라이언트가 카탈로그를 새로 고치지 않았거나 구성이 잘못된 키 이름을 사용하고 있습니다. VS Code의 경우 mcp.json이 servers(mcpServers가 아님)를 사용하는지 확인하십시오. 그런 다음 ftirfun을 중지하고 시작하거나 창을 다시 로드하십시오.
403 insufficient_balance 계정에 해당 분석을 위한 포인트가 충분하지 않습니다. FTIR.fun에서 잔액 또는 구독을 확인한 후 다시 시도하세요.
429 rate_limit_exceeded REST 분석 및 파싱은 API 키당 분당 60회 요청을 허용합니다. REST 결과 및 보고서 상태 읽기는 별도의 분당 120회 요청 버킷을 사용합니다. MCP는 각 API 키 및 도구에 대해 분당 60회 호출을 허용합니다. 도구에서 보고된 재시도 기간을 기다렸다가 다시 호출하세요.
보고서가 대기 중 또는 실행 중으로 유지됩니다. 전체 보고서는 비동기적으로 실행되며 빠른 스크리닝보다 오래 걸립니다. 동일한 task_id를 유지하고 폴링하세요. task_id를 잃어버린 경우 GET /ftir/tasks를 호출하여 최근 작업 목록을 확인하고 다시 찾으세요.
422 또는 missing_input 요청 본문에 필수 필드가 누락되었거나 형식이 잘못되었습니다. analyze_spectrum의 경우 peaks, query 또는 file_base64 중 하나 이상을 제공해야 합니다. JSON이 유효하고 Content-Type이 application/json이며 필수 필드가 있는지 확인하세요. 위의 예시 요청을 참조하십시오.
413 file_too_large 업로드된 스펙트럼 파일이 크기 제한을 초과했습니다. 더 작은 파일을 내보내거나 spectrum.peaks 필드를 통해 피크 위치만 사용하세요.

구축할 준비가 되셨나요?

전체 REST 참조에는 모든 엔드포인트, 요청 및 응답 형식, 인증, 속도 제한, 오류 코드, MCP 도구 정의 및 Python과 curl의 코드 예제가 포함되어 있습니다.

요구사항 제출 양식