Integrācija

FTIR.fun MCP serveris un REST API

Pieslēdziet FTIR.fun savam AI asistentam vai automatizācijas cauruļvadam. MCP serveris Claude/Cursor/Codex. REST API pielāgotām integrācijām. Tie paši 130 000+ atsauču spektri un uz literatūru balstīta AI interpretācija visās metodēs.

MCP serveris — Claude, Cursor, Codex

FTIR.fun MCP (Model Context Protocol) serveris ir pārskatīts un oficiāli iekļauts Anthropic MCP Registry, Smithery un MCP.so. Tas atklāj FTIR spektrālo meklēšanu, pīķu skaidrojumu ar DOI citētu literatūru un materiālu identifikāciju kā izsaucamus rīkus jebkuram MCP saderīgam klientam.

Ātrais savienojums

# 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

Pieejamie rīki

RīksApraksts
search_ftir_libraryMeklējiet 130K+ atsauču spektrus pēc pīķiem vai augšupielādēta faila. Atgriež sarindotas atbilstības ar CAS numuriem un līdzības rādītājiem.
search_public_ftir_resultsMeklējiet kopienas kopīgotos analīzes rezultātus pēc atslēgvārda.
fetch_public_ftir_resultIegūstiet konkrētu publisku FTIR analīzes rezultātu pēc ID detalizētai pārskatīšanai.

Servera karte un reģistra saites

Skatīt visas platformu integrācijas

Coze spraudnis — Izmantošana Doubao ietvaros

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

Meklēšanas atslēgvārdi: 红外分析, FTIR, infrared, 光谱检索, 物质识别

REST API

Bibliotēkas meklēšanas API

POST /v1/search

Spektrālās bibliotēkas meklēšana. Pieņem failu (pilna spektra saskaņošana) vai pīķu sarakstu (pīķu pozīciju saskaņošana). Ja ir norādīts abi, faila meklēšana ir prioritāra.

Autentifikācija

X-API-Key: your-api-key

Pieprasījuma korpuss

LauksTipsNepieciešamsApraksts
file_base64stringviens noBase64 kodēts instrumenta fails (atbalsta CSV, SPA, OPUS, SPC, JCAMP-DX un 15+ citus formātus)
filenamestringar file_base64Sākotnējais faila nosaukums ar paplašinājumu (piem., sample.spa)
peaksnumber[]viens noPīķa viļņu skaitļu saraksts cm⁻¹ (piem., [3026, 1601, 1493, 755])
top_kintegernē (noklusējums 10)Atgriežamo rezultātu skaits, maks. 50
toleranceintegernē (noklusējums 8)Pīķu saskaņošanas tolerance cm⁻¹, diapazons 1–30

Atbilde

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

Piemērs — faila augšupielāde

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

Piemērs — pīķu saraksts

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

Tikai AI analīze esošajiem rezultātiem

Izmantojiet šo galapunktu tikai pēc tam, kad meklēšanas rezultāts jau pastāv. FTIR.fun vispirms nolasa vai veic OCR iesniegtajam ziņojumam, izvelk ziņotos kandidātus un parauga maksimumu tabulu, pēc tam veic lejupstraumes KG un literatūras atbalstītu analīzi.

POST /ftir/analyze_existing_results

Ziņojumam jāietver gan ziņotais meklēšanas rezultātu saraksts, gan parauga maksimumu tabula. Šis galapunkts pats neveic spektrālās bibliotēkas meklēšanu.

Autentifikācija

X-API-Key: your-api-key

Pieprasījuma korpuss

LauksTipsNepieciešamsApraksts
report_textstringviens noVienkāršs teksts, kas nokopēts no esoša instrumenta vai bibliotēkas ziņojuma. Tekstam jāietver gan ziņotie rezultāti, gan parauga maksimumu tabula.
report_file_base64stringviens noBase64 kodēts ziņojuma fails. Atbalstītie formāti: PDF, DOC, DOCX, TXT, CSV, PNG, JPG, JPEG, WEBP, GIF, BMP, TIF, TIFF.
report_filenamestringar report_file_base64Sākotnējā ziņojuma faila nosaukums, ieskaitot paplašinājumu (piemēram, report.pdf vai report.docx).
user_background_textstringNeobligāts parauga fons. Tas tiek uzskatīts tikai par mīkstu kontekstu, nevis par pierādījumu.

Cieta ievades robeža

  • Nepieciešamais elements 1: vismaz viens ziņots meklēšanas rezultāta kandidāts, piemēram, Top1 trāpījums vai Top15 saraksts
  • Nepieciešamais elements 2: parauga maksimumu saraksts vai maksimumu tabula cm-1 no tā paša ziņojuma
  • Ja trūkst kāda elementa, galapunkts atgriež HTTP 422 un neģenerē analīzes ziņojumu

Veiksmīga atbilde

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

Atbilde trūkstošas ievades gadījumā

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

Piemērs — esošs ziņojuma teksts

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

Piemērs — esošs ziņojuma fails

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

Kļūdu kodi

HTTP statussNozīme
200Veiksme
401Trūkst vai nederīga API atslēga
422Nederīgs pieprasījuma pamatteksts, neatbalstīts ziņojuma formāts vai trūkst nepieciešamo ziņojuma elementu
500Servera puses kļūda
Iesniegt pieprasījumu Veidlapa