Integrointi

FTIR.fun MCP-palvelin ja REST API

Yhdistä FTIR.fun AI-avustajaasi tai automaatioputkeen. MCP-palvelin Claudelle/Cursorille/Codexille. REST API mukautetuille integraatioille. Samat yli 130 000 viitespektriä ja kirjallisuuspohjainen AI-tulkinta kaikissa menetelmissä.

MCP-palvelin — Claude, Cursor, Codex

FTIR.funin MCP (Model Context Protocol) -palvelin on arvosteltu ja virallisesti listattu Anthropic MCP Registryssä, Smitheryssä ja MCP.sossa. Se tarjoaa FTIR-spektrihaun, piikkien selitykset DOI-viitatuilla kirjallisuuksilla ja materiaalin tunnistuksen kutsuttavina työkaluina mille tahansa MCP-yhteensopivalle asiakkaalle.

Pikayhteys

# 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

Saatavilla olevat työkalut

TyökaluKuvaus
search_ftir_libraryHae yli 130K viitespektriä piikkien tai ladatun tiedoston perusteella. Palauttaa järjestetyt osumat CAS-numeroineen ja samankaltaisuuspisteineen.
search_public_ftir_resultsHae yhteisön jakamia analyysituloksia avainsanalla.
fetch_public_ftir_resultHae tietty julkinen FTIR-analyysitulos ID:n perusteella yksityiskohtaista tarkastelua varten.

Palvelinkortti ja rekisterilinkit

Näytä kaikki alustaintegraatiot

Coze-liitännäinen — Käytä Doubaon sisällä

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

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

REST API

Kirjastohaku API

POST /v1/search

Spektrikirjastohaku. Hyväksyy tiedoston (koko spektrin vastaavuus) tai huippuluettelon (huippupaikan vastaavuus). Jos molemmat annetaan, tiedostohaku on ensisijainen.

Todennus

X-API-Key: your-api-key

Pyynnön runko

KenttäTyyppiPakollinenKuvaus
file_base64stringyksiBase64-koodattu instrumenttitiedosto (tukee CSV-, SPA-, OPUS-, SPC-, JCAMP-DX- ja yli 15 muuta formaattia)
filenamestringtiedoston_base64:lläAlkuperäinen tiedostonimi mukaan lukien tunniste (esim. sample.spa)
peaksnumber[]yksiLuettelo huippuaaltoluvuista cm⁻¹ (esim. [3026, 1601, 1493, 755])
top_kintegerei (oletus 10)Palautettavien tulosten määrä, enintään 50
toleranceintegerei (oletus 8)Huipun vastaavuustoleranssi cm⁻¹, alue 1–30

Vastaus

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

Esimerkki — Tiedoston lataus

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

Esimerkki — Huippulista

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

Vain tekoälyanalyysi olemassa oleville tuloksille

Käytä tätä päätepistettä vain, kun hakutulos on jo olemassa. FTIR.fun lukee tai OCR-käsittelee toimitetun raportin, poimii raportoidut ehdokkaat ja näytteen huipputaulukon ja suorittaa sitten jatko-KG- ja kirjallisuusanalyysin.

POST /ftir/analyze_existing_results

Raportin on sisällettävä sekä raportoitu hakutuloslista että näytteen huipputaulukko. Tämä päätepiste ei suorita spektrikirjastohakua itse.

Todennus

X-API-Key: your-api-key

Pyynnön runko

KenttäTyyppiPakollinenKuvaus
report_textstringyksiPelkkä teksti kopioitu olemassa olevasta instrumentti- tai kirjastoraportista. Tekstin on sisällettävä sekä raportoidut tulokset että näytteen huipputaulukko.
report_file_base64stringyksiBase64-koodattu raporttitiedosto. Tuetut muodot: PDF, DOC, DOCX, TXT, CSV, PNG, JPG, JPEG, WEBP, GIF, BMP, TIF, TIFF.
report_filenamestringwith report_file_base64Alkuperäisen raportin tiedostonimi tiedostopäätteineen (esim. report.pdf tai report.docx).
user_background_textstringeiValinnainen näytteen tausta. Tätä käsitellään vain pehmeänä kontekstina eikä todisteena.

Kova syöteraja

  • Vaadittu elementti 1: vähintään yksi raportoitu hakutulosehdokas, kuten Top1-osuma tai Top15-lista
  • Vaadittu elementti 2: näytteen huippuluettelo tai huipputaulukko cm-1-yksiköissä samasta raportista
  • Jos jompikumpi elementti puuttuu, päätepiste palauttaa HTTP 422 eikä luo analyysiraporttia

Onnistunut vastaus

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

Puuttuvan syötteen vastaus

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

Esimerkki — olemassa oleva raporttiteksti

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

Esimerkki — olemassa oleva raporttitiedosto

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

Virhekoodit

HTTP-tilaMerkitys
200Onnistuminen
401Puuttuva tai virheellinen API-avain
422Virheellinen pyyntöteksti, tukematon raporttimuoto tai puuttuvat vaaditut raporttielementit
500Palvelinpuolen virhe
Lähetä pyyntö Lomake