Integrasi

Pelayan MCP FTIR.fun & REST API

Sambungkan FTIR.fun ke pembantu AI atau saluran paip automasi anda. Pelayan MCP untuk Claude/Cursor/Codex. REST API untuk integrasi tersuai. Spektrum rujukan 130,000+ yang sama dan tafsiran AI yang disokong literatur merentas semua kaedah.

Pelayan MCP — Claude, Cursor, Codex

Pelayan MCP (Model Context Protocol) FTIR.fun telah disemak dan disenaraikan secara rasmi di Pendaftaran MCP Anthropic, Smithery, dan MCP.so. Ia mendedahkan carian spektrum FTIR, penjelasan puncak dengan literatur yang dipetik DOI, dan pengenalpastian bahan sebagai alat yang boleh dipanggil untuk mana-mana klien yang serasi dengan MCP.

Sambung Pantas

# Claude Desktop / Claude Code claude mcp add ftirfun https://ftir.fun/mcp # Cursor # Add to ~/.cursor/mcp.json: {"mcpServers": {"ftirfun": {"url": "https://ftir.fun/mcp"}}} # OpenAI Codex codex mcp add ftirfun https://ftir.fun/mcp

Alat Tersedia

AlatPenerangan
search_ftir_libraryCari 130K+ spektrum rujukan mengikut puncak atau fail yang dimuat naik. Mengembalikan padanan yang diberi kedudukan dengan nombor CAS dan skor persamaan.
search_public_ftir_resultsCari hasil analisis yang dikongsi komuniti mengikut kata kunci.
fetch_public_ftir_resultAmbil hasil analisis FTIR awam tertentu mengikut ID untuk semakan terperinci.

Kad Pelayan & Pautan Pendaftaran

Lihat Semua Integrasi Platform

Pemalam Coze — Gunakan di Dalam Doubao

Open Doubao → Plugin Store → search "FTIR" or "红外分析" → tap Add. No configuration needed. Doubao will automatically route infrared-related queries to our spectral search engine.

Kata kunci carian: 红外分析, FTIR, infrared, 光谱检索, 物质识别

API REST

API Carian Perpustakaan

POST /v1/search

Carian pustaka spektrum. Menerima fail (padanan spektrum penuh) atau senarai puncak (padanan kedudukan puncak). Jika kedua-duanya diberikan, carian fail diutamakan.

Pengesahan

X-API-Key: your-api-key

Badan Permintaan

MedanJenisDiperlukanPenerangan
file_base64stringsalah satuFail instrumen yang dikodkan Base64 (menyokong CSV, SPA, OPUS, SPC, JCAMP-DX, dan 15+ format lain)
filenamestringdengan file_base64Nama fail asal termasuk sambungan (contoh: sample.spa)
peaksnumber[]salah satuSenarai nombor gelombang puncak dalam cm⁻¹ (contoh: [3026, 1601, 1493, 755])
top_kintegertidak (lalai 10)Bilangan hasil yang dikembalikan, maksimum 50
toleranceintegertidak (lalai 8)Toleransi padanan puncak dalam cm⁻¹, julat 1–30

Tindak balas

{ "success": true, "search_mode": "full_spectrum", "n_matches": 10, "matches": [ { "rank": 1, "name": "Polystyrene", "cas": "25086-18-4", "num": 326, "similarity": 0.9586 } ], "file_format": "Thermo SPA", "n_points": 3601, "error": null }

Contoh — Muat Naik Fail

import base64, requests with open("sample.spa", "rb") as f: b64 = base64.b64encode(f.read()).decode() resp = requests.post( "https://api.ftir.fun/v1/search", headers={"X-API-Key": "your-key", "Content-Type": "application/json"}, json={"file_base64": b64, "filename": "sample.spa", "top_k": 5}, ) print(resp.json())

Contoh — Senarai Puncak

import requests resp = requests.post( "https://api.ftir.fun/v1/search", headers={"X-API-Key": "your-key", "Content-Type": "application/json"}, json={"peaks": [3082, 3026, 2923, 1601, 1493, 1451, 1028, 906, 755, 699], "top_k": 5}, ) print(resp.json())

Analisis AI Sahaja untuk Keputusan Sedia Ada

Gunakan titik akhir ini hanya selepas keputusan carian sudah wujud. FTIR.fun mula-mula membaca atau OCR laporan yang dibekalkan, mengekstrak calon yang dilaporkan dan jadual puncak sampel, kemudian menjalankan analisis KG dan disokong literatur hiliran.

POST /ftir/analyze_existing_results

Laporan mesti mengandungi kedua-dua senarai keputusan carian yang dilaporkan dan jadual puncak sampel. Titik akhir ini tidak melakukan carian perpustakaan spektrum dengan sendirinya.

Pengesahan

X-API-Key: your-api-key

Badan Permintaan

MedanJenisDiperlukanPenerangan
report_textstringsalah satuTeks biasa yang disalin daripada laporan instrumen atau perpustakaan sedia ada. Teks mesti merangkumi kedua-dua keputusan yang dilaporkan dan jadual puncak sampel.
report_file_base64stringsalah satuFail laporan yang dikodkan Base64. Format yang disokong: PDF, DOC, DOCX, TXT, CSV, PNG, JPG, JPEG, WEBP, GIF, BMP, TIF, TIFF.
report_filenamestringdengan report_file_base64Nama fail laporan asal termasuk sambungan (contohnya report.pdf atau report.docx).
user_background_textstringtidakLatar belakang sampel pilihan. Ini dianggap sebagai konteks lembut sahaja dan bukan sebagai bukti.

Sempadan Input Keras

  • Elemen diperlukan 1: sekurang-kurangnya satu calon keputusan carian yang dilaporkan, seperti padanan Top1 atau senarai Top15
  • Elemen diperlukan 2: senarai puncak sampel atau jadual puncak dalam cm-1 daripada laporan yang sama
  • Jika mana-mana elemen hilang, titik akhir mengembalikan HTTP 422 dan tidak menjana laporan analisis

Respons Kejayaan

{ "success": true, "analysis_mode": "ai_only_existing_results", "message": "AI-only analysis completed from the supplied existing results report.", "input_requirements": { "service_boundary": "AI-only analysis starts after a search result already exists.", "required_inputs": [ "At least one reported search result candidate (Top1 or Top15).", "The sample peak table or peak list in cm-1." ] }, "missing_requirements": [], "missing_requirement_messages": [], "extracted_report": { "source_kind": "pdf", "used_ocr": true, "peak_values_cm1": [1736, 1601, 1241], "library_candidates": [ {"rank": 1, "name": "Polyethylene terephthalate", "cas_number": "25038-59-9", "raw_score_text": "856/1000", "normalized_similarity": 0.856} ] }, "summary": "Reported library results rank Polyethylene terephthalate first.", "report_view": {}, "final_decision": {}, "direct_evidence": {}, "related_literature": {} }

Respons Input Hilang

{ "detail": { "success": false, "analysis_mode": "ai_only_existing_results", "error": "missing_required_report_elements", "message": "AI-only analysis requires both reported library results and a sample peak table.", "missing_requirements": ["sample_peak_table"], "missing_requirement_messages": [ "Missing sample peak table. Provide the sample peak list or peak table in cm-1 from the same report." ], "input_requirements": { "failure_behavior": "If either the reported result list or the sample peak table is missing, the service stops and returns a 422 response." }, "extracted_report": { "report_has_library_results": true, "report_has_peak_table": false } } }

Contoh — Teks Laporan Sedia Ada

import requests report_text = """ Sample: PET fragment Top1: Polyethylene terephthalate Score: 856/1000 Top2: Polyester resin Score: 801/1000 Peak table (cm-1): 3435, 2932, 1715, 1409, 1241, 1093, 1017, 872, 722 """ resp = requests.post( "https://api.ftir.fun/ftir/analyze_existing_results", headers={"X-API-Key": "your-key", "Content-Type": "application/json"}, json={"report_text": report_text, "user_background_text": "consumer packaging fragment"}, ) print(resp.json())

Contoh — Fail Laporan Sedia Ada

import base64, requests with open("instrument-report.pdf", "rb") as f: b64 = base64.b64encode(f.read()).decode() resp = requests.post( "https://api.ftir.fun/ftir/analyze_existing_results", headers={"X-API-Key": "your-key", "Content-Type": "application/json"}, json={ "report_file_base64": b64, "report_filename": "instrument-report.pdf", "user_background_text": "suspected packaging adhesive", }, ) print(resp.json())

Kod Ralat

Status HTTPMaksud
200Berjaya
401Kunci API hilang atau tidak sah
422Badan permintaan tidak sah, format laporan tidak disokong, atau elemen laporan yang diperlukan hilang
500Ralat sisi pelayan
Hantar Permohonan Borang