Ενσωμάτωση

Διακομιστής MCP & REST API του FTIR.fun

Συνδέστε το FTIR.fun με τον βοηθό AI σας ή τον αγωγό αυτοματισμού. Διακομιστής MCP για Claude/Cursor/Codex. REST API για προσαρμοσμένες ενσωματώσεις. Τα ίδια 130.000+ φάσματα αναφοράς και ερμηνεία AI βασισμένη σε βιβλιογραφία σε όλες τις μεθόδους.

Διακομιστής MCP — Claude, Cursor, Codex

Ο διακομιστής MCP (Model Context Protocol) του FTIR.fun έχει αξιολογηθεί και είναι επίσημα καταχωρισμένος στο Anthropic MCP Registry, Smithery και MCP.so. Εκθέτει φασματική αναζήτηση FTIR, εξήγηση κορυφών με βιβλιογραφία που αναφέρεται με DOI και ταυτοποίηση υλικού ως εργαλεία που μπορούν να κληθούν από οποιονδήποτε συμβατό πελάτη MCP.

Γρήγορη Σύνδεση

# 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

Διαθέσιμα Εργαλεία

ΕργαλείοΠεριγραφή
search_ftir_libraryΑναζήτηση 130.000+ φασμάτων αναφοράς με βάση κορυφές ή μεταφορτωμένο αρχείο. Επιστρέφει αντιστοιχίες σε κατάταξη με αριθμούς CAS και βαθμολογίες ομοιότητας.
search_public_ftir_resultsΑναζήτηση κοινοτικών αποτελεσμάτων ανάλυσης με λέξη-κλειδί.
fetch_public_ftir_resultΛήψη συγκεκριμένου δημόσιου αποτελέσματος ανάλυσης FTIR με ID για λεπτομερή ανασκόπηση.

Κάρτα Διακομιστή & Σύνδεσμοι Μητρώου

Προβολή Όλων των Ενσωματώσεων Πλατφόρμας

Coze Plugin — Χρήση μέσα στο 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.

Λέξεις-κλειδιά αναζήτησης: 红外分析, FTIR, infrared, 光谱检索, 物质识别

REST API

API Αναζήτησης Βιβλιοθήκης

POST /v1/search

Αναζήτηση στη βιβλιοθήκη φασμάτων. Δέχεται ένα αρχείο (αντιστοίχιση πλήρους φάσματος) ή μια λίστα κορυφών (αντιστοίχιση θέσης κορυφής). Εάν παρέχονται και τα δύο, η αναζήτηση αρχείου έχει προτεραιότητα.

Πιστοποίηση

X-API-Key: your-api-key

Σώμα Αιτήματος

ΠεδίοΤύποςΥποχρεωτικόΠεριγραφή
file_base64stringένα απόΑρχείο οργάνου κωδικοποιημένο σε Base64 (υποστηρίζει CSV, SPA, OPUS, SPC, JCAMP-DX και 15+ άλλες μορφές)
filenamestringμε file_base64Αρχικό όνομα αρχείου συμπεριλαμβανομένης της επέκτασης (π.χ. sample.spa)
peaksnumber[]ένα απόΛίστα αριθμών κυμάτων κορυφής σε cm⁻¹ (π.χ. [3026, 1601, 1493, 755])
top_kintegerόχι (προεπιλογή 10)Αριθμός αποτελεσμάτων προς επιστροφή, μέγιστο 50
toleranceintegerόχι (προεπιλογή 8)Ανοχή αντιστοίχισης κορυφής σε cm⁻¹, εύρος 1–30

Απόκριση

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

Παράδειγμα — Μεταφόρτωση Αρχείου

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

Παράδειγμα — Λίστα Κορυφών

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 για Υπάρχοντα Αποτελέσματα

Χρησιμοποιήστε αυτό το τελικό σημείο μόνο αφού υπάρχει ήδη ένα αποτέλεσμα αναζήτησης. Το FTIR.fun πρώτα διαβάζει ή κάνει OCR την παρεχόμενη αναφορά, εξάγει τους αναφερόμενους υποψηφίους και τον πίνακα κορυφών δείγματος, στη συνέχεια εκτελεί κατάντη ανάλυση βασισμένη σε KG και βιβλιογραφία.

POST /ftir/analyze_existing_results

Η αναφορά πρέπει να περιέχει τόσο την αναφερόμενη λίστα αποτελεσμάτων αναζήτησης όσο και τον πίνακα κορυφών δείγματος. Αυτό το τελικό σημείο δεν εκτελεί από μόνο του αναζήτηση φασματικής βιβλιοθήκης.

Πιστοποίηση

X-API-Key: your-api-key

Σώμα Αιτήματος

ΠεδίοΤύποςΥποχρεωτικόΠεριγραφή
report_textstringένα απόΑπλό κείμενο αντιγραμμένο από μια υπάρχουσα αναφορά οργάνου ή βιβλιοθήκης. Το κείμενο πρέπει να περιλαμβάνει τόσο τα αναφερόμενα αποτελέσματα όσο και τον πίνακα κορυφών δείγματος.
report_file_base64stringένα απόΑρχείο αναφοράς κωδικοποιημένο σε Base64. Υποστηριζόμενες μορφές: PDF, DOC, DOCX, TXT, CSV, PNG, JPG, JPEG, WEBP, GIF, BMP, TIF, TIFF.
report_filenamestringμε report_file_base64Αρχικό όνομα αρχείου αναφοράς συμπεριλαμβανομένης της επέκτασης (για παράδειγμα report.pdf ή report.docx).
user_background_textstringόχιΠροαιρετικό υπόβαθρο δείγματος. Αυτό αντιμετωπίζεται μόνο ως μαλακό πλαίσιο και όχι ως απόδειξη.

Αυστηρό Όριο Εισόδου

  • Απαιτούμενο στοιχείο 1: τουλάχιστον ένας αναφερόμενος υποψήφιος αποτελέσματος αναζήτησης, όπως ένα χτύπημα Top1 ή μια λίστα Top15
  • Απαιτούμενο στοιχείο 2: η λίστα κορυφών δείγματος ή ο πίνακας κορυφών σε cm-1 από την ίδια αναφορά
  • Εάν λείπει οποιοδήποτε στοιχείο, το τελικό σημείο επιστρέφει HTTP 422 και δεν δημιουργεί αναφορά ανάλυσης

Απόκριση Επιτυχίας

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

Απόκριση ελλείπουσας εισόδου

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

Παράδειγμα — Υπάρχον Κείμενο Αναφοράς

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

Παράδειγμα — Υπάρχον Αρχείο Αναφοράς

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

Κωδικοί Σφάλματος

Κατάσταση HTTPΣημασία
200Επιτυχία
401Λείπει ή είναι άκυρο το κλειδί API
422Μη έγκυρο σώμα αιτήματος, μη υποστηριζόμενη μορφή αναφοράς ή ελλείποντα απαιτούμενα στοιχεία αναφοράς
500Σφάλμα διακομιστή
Υποβολή Αιτήματος Φόρμα