İnteqrasiya

FTIR.fun MCP Server və REST API

FTIR.fun-u AI köməkçinizə və ya avtomatlaşdırma boru xəttinə qoşun. Claude/Cursor/Codex üçün MCP server. Xüsusi inteqrasiyalar üçün REST API. Bütün metodlarda eyni 130.000+ istinad spektri və ədəbiyyat dəstəkli AI interpretasiyası.

MCP Server — Claude, Cursor, Codex

FTIR.fun-un MCP (Model Context Protocol) serveri nəzərdən keçirilmiş və rəsmən Anthropic MCP Registry, Smithery və MCP.so-da siyahıya alınmışdır. O, FTIR spektral axtarışı, DOI sitatlı ədəbiyyatla pik izahı və material identifikasiyasını hər hansı MCP uyğun müştəri üçün çağrıla bilən alətlər kimi təqdim edir.

Sürətli Qoşulma

# 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

Mövcud Alətlər

AlətTəsvir
search_ftir_library130K+ istinad spektrini piklər və ya yüklənmiş fayl ilə axtarın. CAS nömrələri və oxşarlıq balları ilə sıralanmış uyğunluqları qaytarır.
search_public_ftir_resultsİcma tərəfindən paylaşılan analiz nəticələrini açar söz ilə axtarın.
fetch_public_ftir_resultMüəyyən bir ictimai FTIR analiz nəticəsini ID ilə əldə edin ətraflı yoxlama üçün.

Server Kartı və Reyestr Bağlantıları

Bütün Platforma İnteqrasiyalarına Baxın

Coze Plugin — Doubao daxilində istifadə edin

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

Açar sözlər: 红外分析, FTIR, infrared, 光谱检索, 物质识别

REST API

Kitabxana Axtarış API

POST /v1/search

Spektral kitabxana axtarışı. Fayl (tam spektr uyğunlaşdırması) və ya pik siyahısı (pik mövqeyi uyğunlaşdırması) qəbul edir. Hər ikisi təqdim edilərsə, fayl axtarışı prioritetdir.

78. Doğrulama

X-API-Key: your-api-key

21. Sorğu Gövdəsi

6. Sahə108. Növ38. Tələb olunurTəsvir
file_base64string10. biriBase64 kodlu alət faylı (CSV, SPA, OPUS, SPC, JCAMP-DX və 15+ digər formatları dəstəkləyir)
filenamestring42. file_base64 iləGenişlənmə daxil olmaqla orijinal fayl adı (məs. sample.spa)
peaksnumber[]10. birism⁻¹ ilə pik dalğa nömrələrinin siyahısı (məs. [3026, 1601, 1493, 755])
top_kinteger62. yox (standart 10)Qaytarılacaq nəticələrin sayı, maksimum 50
toleranceinteger74. yox (standart 8)sm⁻¹ ilə pik uyğunluq tolerantlığı, diapazon 1–30

96. Cavab

{ "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 }

12. Nümunə — Fayl Yükləmə

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())

65. Nümunə — Pik Siyahısı

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())

Mövcud Nəticələr üçün Yalnız AI Analizi

Bu endpointdən yalnız axtarış nəticəsi mövcud olduqdan sonra istifadə edin. FTIR.fun əvvəlcə təqdim edilmiş hesabatı oxuyur və ya OCR edir, bildirilmiş namizədləri və nümunə pik cədvəlini çıxarır, sonra aşağı axın KG və ədəbiyyat dəstəkli analizi icra edir.

POST /ftir/analyze_existing_results

Hesabat həm bildirilmiş axtarış nəticə siyahısını, həm də nümunə pik cədvəlini ehtiva etməlidir. Bu endpoint öz-özünə spektral kitabxana axtarışı aparmır.

78. Doğrulama

X-API-Key: your-api-key

21. Sorğu Gövdəsi

6. Sahə108. Növ38. Tələb olunurTəsvir
report_textstring10. biriMövcud alət və ya kitabxana hesabatından kopyalanmış düz mətn. Mətn həm bildirilmiş nəticələri, həm də nümunə pik cədvəlini ehtiva etməlidir.
report_file_base64string10. biriBase64 ilə kodlanmış hesabat faylı. Dəstəklənən formatlar: PDF, DOC, DOCX, TXT, CSV, PNG, JPG, JPEG, WEBP, GIF, BMP, TIF, TIFF.
report_filenamestringreport_file_base64 iləOrijinal hesabat fayl adı, uzantısı daxil olmaqla (məsələn report.pdf və ya report.docx).
user_background_textstringxeyrİstəyə bağlı nümunə fonu. Bu yalnız yumşaq kontekst kimi qəbul edilir, sübut kimi deyil.

Sərt Giriş Sərhədi

  • Tələb olunan element 1: ən azı bir bildirilmiş axtarış nəticəsi namizədi, məsələn Top1 hit və ya Top15 siyahısı
  • Tələb olunan element 2: eyni hesabatdan sm-1 ilə nümunə pik siyahısı və ya pik cədvəli
  • Elementlərdən biri çatışmazsa, endpoint HTTP 422 qaytarır və analiz hesabatı yaratmır

Uğurlu Cavab

{ "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": {} }

Çatışmayan Giriş Cavabı

{ "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 } } }

Nümunə — Mövcud Hesabat Mətni

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())

Nümunə — Mövcud Hesabat Faylı

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())

76. Xəta Kodları

71. HTTP Statusu111. Məna
20019. Uğur
40143. Çatışmayan və ya yanlış API açarı
422Yanlış sorğu gövdəsi, dəstəklənməyən hesabat formatı və ya tələb olunan hesabat elementlərinin olmaması
500Server tərəfi xətası
Sorğunu təqdim et Forma