Integracija

109. FTIR.fun MCP poslužitelj i REST API

101. Povežite FTIR.fun sa svojim AI asistentom ili automatizacijskim cjevovodom. MCP poslužitelj za Claude/Cursor/Codex. REST API za prilagođene integracije. Isti 130,000+ referentnih spektara i AI interpretacija potkrijepljena literaturom za sve metode.

32. MCP poslužitelj — Claude, Cursor, Codex

23. FTIR.fun-ov MCP (Model Context Protocol) poslužitelj pregledan je i službeno naveden na Anthropic MCP Registry, Smithery i MCP.so. Izlaže FTIR spektralnu pretragu, objašnjenje vrhova s DOI-citiranom literaturom i identifikaciju materijala kao pozivne alate za bilo koji MCP-kompatibilni klijent.

94. Brzo povezivanje

# 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

107. Dostupni alati

78. AlatOpis
search_ftir_library75. Pretražite 130K+ referentnih spektara po vrhovima ili učitanom datotekom. Vraća rangirane podudarnosti s CAS brojevima i sličnostima.
search_public_ftir_results61. Pretražujte rezultate analiza koje je podijelila zajednica po ključnoj riječi.
fetch_public_ftir_result57. Dohvatite određeni javni FTIR rezultat analize po ID-u za detaljan pregled.

73. Kartica poslužitelja i poveznice registra

30. Pogledajte sve integracije platformi

Coze dodatak — korištenje unutar Doubaoa

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

Ključne riječi za pretraživanje: 红外分析, FTIR, infrared, 光谱检索, 物质识别

7. REST API

API za pretraživanje knjižnice

POST /v1/search

Pretraživanje spektralne biblioteke. Prihvaća datoteku (podudaranje cijelog spektra) ili popis vrhova (podudaranje položaja vrhova). Ako su oboje navedeni, pretraživanje datoteke ima prioritet.

Autentifikacija

X-API-Key: your-api-key

Tijelo zahtjeva

PoljeVrstaObaveznoOpis
file_base64stringjedan odBase64-kodirana datoteka instrumenta (podržava CSV, SPA, OPUS, SPC, JCAMP-DX i 15+ drugih formata)
filenamestrings file_base64Izvorni naziv datoteke uključujući ekstenziju (npr. sample.spa)
peaksnumber[]jedan odPopis valnih brojeva vrhova u cm⁻¹ (npr. [3026, 1601, 1493, 755])
top_kintegerne (zadano 10)Broj rezultata za vraćanje, maksimalno 50
toleranceintegerne (zadano 8)Tolerancija podudaranja vrhova u cm⁻¹, raspon 1–30

Odgovor

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

Primjer — prijenos datoteke

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

Primjer — popis vrhova

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

AI-Only analiza za postojeće rezultate

Koristite ovu krajnju točku samo nakon što već postoji rezultat pretraživanja. FTIR.fun prvo čita ili OCR-om obrađuje priloženo izvješće, izdvaja prijavljene kandidate i tablicu vrhova uzorka, zatim pokreće nizvodnu KG analizu i analizu potkrijepljenu literaturom.

POST /ftir/analyze_existing_results

Izvješće mora sadržavati i popis prijavljenih rezultata pretraživanja i tablicu vrhova uzorka. Ova krajnja točka sama ne provodi pretraživanje spektralne knjižnice.

Autentifikacija

X-API-Key: your-api-key

Tijelo zahtjeva

PoljeVrstaObaveznoOpis
report_textstringjedan odObičan tekst kopiran iz postojećeg izvješća instrumenta ili knjižnice. Tekst mora uključivati i prijavljene rezultate i tablicu vrhova uzorka.
report_file_base64stringjedan odBase64-kodirana datoteka izvješća. Podržani formati: PDF, DOC, DOCX, TXT, CSV, PNG, JPG, JPEG, WEBP, GIF, BMP, TIF, TIFF.
report_filenamestrings report_file_base64Izvorno ime datoteke izvješća s nastavkom (na primjer report.pdf ili report.docx).
user_background_textstringneNeobavezna pozadina uzorka. To se tretira samo kao meki kontekst, a ne kao dokaz.

Čvrsta granica unosa

  • Potreban element 1: barem jedan prijavljeni kandidat rezultata pretraživanja, poput Top1 pogotka ili Top15 liste
  • Potreban element 2: popis vrhova uzorka ili tablica vrhova u cm-1 iz istog izvješća
  • Ako bilo koji element nedostaje, krajnja točka vraća HTTP 422 i ne generira izvješće o analizi

Odgovor o uspjehu

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

Odgovor zbog nedostajućeg unosa

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

Primjer — postojeći tekst izvješća

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

Primjer — postojeća datoteka izvješća

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

Kodovi grešaka

HTTP statusZnačenje
200Uspjeh
401Nedostaje ili neispravan API ključ
422Nevažeće tijelo zahtjeva, nepodržani format izvješća ili nedostajući potrebni elementi izvješća
500Pogreška na poslužitelju
Podnesi zahtjev Obrazac