Integrazione Sviluppatore e AI

Connetti FTIR.fun a qualsiasi strumento o app AI

Dai al tuo assistente AI o al tuo codice accesso diretto a oltre 130.000 spettri di riferimento, ragionamento sui picchi del grafo di conoscenza e interpretazione supportata dalla letteratura. Scegli uno dei tre modi per connetterti — MCP per assistenti AI, API REST per il codice o una Skill pronta per piattaforme no-code. Ogni percorso qui sotto ha istruzioni passo passo scritte per utenti alle prime armi.

Recensito e elencato su

Prima di iniziare — ottieni la tua chiave API

MCP e l'API REST usano entrambi una chiave API FTIR.fun. Coze/Doubao usa una chiave di servizio configurata dall'editore del plugin, quindi gli utenti finali non incollano una chiave personale. Ottenere una chiave personale richiede circa un minuto:

  1. Accedi a FTIR.fun Crea un account gratuito se non ne hai uno. I nuovi account includono crediti di prova gratuiti.
  2. Apri il cruscotto delle chiavi API Vai a Account → Chiavi API e clicca su Genera.
  3. Copia e salva immediatamente la chiave La chiave completa (inizia con ftir_) viene mostrata solo una volta. Conservala in un luogo sicuro. Se la perdi, generane una nuova.
🔑 Pronto? Apri il Pannello delle Chiavi API in una nuova scheda, poi torna indietro e segui il percorso scelto sopra.
⚠️ Il server MCP ospitato accetta solo una chiave API dell'account generata nel Dashboard delle chiavi API di FTIR.fun (inizia con ftir_). Le chiavi master lato server sono per gli operatori REST e non possono accedere all'MCP ospitato.

Passo 1 — Quale connessione è giusta per te?

Tutti e tre si connettono allo stesso motore: 130.000+ spettri, ragionamento su grafo di conoscenza e citazioni della letteratura. Ti serve solo uno. Scegli in base a come lavori — non sei sicuro? MCP è la scelta più popolare per chi usa un assistente AI.

Cosa può fare realmente la tua IA

Le attuali distribuzioni MCP, REST, n8n e LangChain espongono sette operazioni. Il plugin Coze pubblicato espone tre strumenti (analyze, find, explain), e altri modelli possono esporre un insieme dichiarato più piccolo; controlla ogni scheda della piattaforma prima dell'uso. Le operazioni di seguito condividono gli stessi servizi FTIR.fun.

Attività Strumento MCP Endpoint REST Dì questo al tuo AI
Leggi un file strumento parse_ftir_spectrum POST /parse-spectrum Analizza sample.spc ed elenca i picchi rilevati.
Identifica uno spettro sconosciuto analyze_ftir_spectrum POST /ftir/analyze_spectrum Identifica di quale polimero è questo spettro.
Invia un report completo a tre assi submit_ftir_report POST /ftir/reports Invia sample.spa per un report completo in modalità ATR.
Interroga e recupera quel report get_ftir_report_status GET /ftir/reports/{task_id} Controlla il compito del rapporto e dammi il link quando è pronto.
Spiega i picchi explain_peaks POST /ftir/explain_peak_assignments Cosa indicano i picchi a 1715 e 1450 cm-1?
Trova uno spettro di riferimento noto find_spectra POST /ftir/find_spectra Trova spettri di riferimento per polistirene.
Riapri un risultato precedente fetch_result GET /ftir/result/{result_num} Recupera il risultato 20260528100755416137536.

File supportati: SPA, SPC, OPUS, JCAMP-DX, CSV, TSV, Excel, JSON. I valori validi per sampling_mode sono KBr Pellet, Vapor, Solvent, Thin Film, Paraffin Mull, ATR, Diffuse Reflectance, Micro IR e Others. Transmission non è un valore valido. Mantieni l'estensione del file originale in modo che FTIR.fun selezioni il parser corretto.

esempio di risposta find_spectra

risposta find_spectra
{
  "success": true,
  "query": "polystyrene",
  "match_mode": "synonym",
  "match_count": 3,
  "summary": "Found 3 reference spectrum candidates for 'polystyrene'.",
  "results": [
    {"num": 555, "spectrum_number": 555, "name": "PS/PPO",
     "cas": "-", "source_type": "direct_read:spa",
     "peaks": [697, 756, 1028, ...], "x": [...], "y": [...]}
  ]
}

esempio di risposta explain_peaks

Risposta explain_peaks
{
  "success": true,
  "search_mode": "peak_explanation",
  "peak_explanations": [
    {"peaks_cm1": [1715, 1450],
     "assignment": "1715 cm-1 suggests C=O stretching (ester or carboxylic acid)...",
     "evidence_type": "llm_general_knowledge"}
  ],
  "summary": "Peak explanation based on general FTIR knowledge..."
}

Ottenere il report completo (asincrono)

Lo screening rapido (analyze_spectrum) restituisce immediatamente. Il rapporto tri-assiale completo viene eseguito in background e richiede tipicamente 30–90 secondi. Non reinviare mentre un rapporto è in esecuzione — conserva il task_id e fai polling.

  1. Invia Chiama submit_ftir_report (MCP) o POST /ftir/reports (REST). Riceverai un task_id e un result_num riservato. Il campo file_base64 è obbligatorio; gli altri campi (sampling_mode, prior_context, language_code, sample_name, sample_order_no) sono opzionali.
    Esempio di invio (REST)
    curl -X POST https://ftir.fun/ftir/reports \
      -H "X-API-Key: ftir_your_key_here" \
      -H "Content-Type: application/json" \
      -d '{"file_base64": "V2F2ZW51bWJlci...", "filename": "sample.spa", "sampling_mode": "ATR", "language_code": "en"}'
    Invia risposta
    {"success": true, "task_id": "rpt_abc123...", "result_num": "20260713...", "status": "queued"}
  2. Sondaggio Chiama get_ftir_report_status (MCP) o GET /ftir/reports/{task_id} ogni 5–10 secondi finché completed non è true. La risposta completata include report_url, report_view (contenuto strutturato del rapporto) e result_num.
    Esempio di polling
    curl https://ftir.fun/ftir/reports/rpt_abc123 \
      -H "X-API-Key: ftir_your_key_here"
    Risposta di polling (in corso)
    {"success": true, "task_id": "rpt_abc123", "status": "running", "progress": 45, "completed": false}
    Risposta poll (completato)
    {"success": true, "task_id": "rpt_abc123", "status": "completed", "completed": true,
     "result_num": "20260713...", "report_url": "https://ftir.fun/outputdata/?num=20260713..."}
  3. Apri il report finale Apri l'URL completo https://ftir.fun/outputdata/?num={result_num} in un browser per visualizzare la pagina dei risultati tri-assiali completa renderizzata da FTIR.fun.
⚠️ Non inviare nuovamente lo stesso rapporto mentre è in coda o in esecuzione. Conserva il task_id e continua a fare polling fino al completamento o al fallimento. Le invii duplicati sprecano punti.

Risoluzione dei problemi

Cosa vedi Cosa significa Cosa fare
Il client apre una pagina di autorizzazione del browser, o dice che la pagina di autorizzazione non esiste. Il tuo client sta usando una vecchia voce di server stile OAuth. FTIR.fun non usa OAuth — solo una chiave API. Elimina la vecchia voce del server ftirfun, incolla la configurazione esatta da questa pagina, ricarica il client e avvia di nuovo ftirfun.
401 (MCP) / 401 invalid_api_key (REST) La chiave API è mancante, scaduta, revocata o incollata in modo errato. Riavvia il server e incolla solo la chiave grezza (inizia con ftir_). Genera una nuova chiave dal Dashboard delle chiavi API se necessario.
Il server si avvia ma non compaiono strumenti. Il client non ha aggiornato il suo catalogo, o la configurazione utilizza il nome della chiave sbagliato. Per VS Code, conferma che mcp.json utilizza servers (non mcpServers). Quindi ferma e riavvia ftirfun, o ricarica la finestra.
403 insufficient_balance L'account non ha abbastanza punti per quell'analisi. Controlla il tuo saldo o abbonamento su FTIR.fun, poi riprova.
429 rate_limit_exceeded L'analisi e l'analisi REST consentono 60 richieste al minuto per chiave API; le letture dei risultati REST e dello stato del report utilizzano un bucket separato di 120 richieste al minuto; MCP consente 60 chiamate al minuto per ogni chiave API e strumento. Attendi il periodo di riprova segnalato dallo strumento prima di chiamare di nuovo.
Un report rimane in coda o in esecuzione. I report completi vengono eseguiti in modo asincrono e richiedono più tempo rispetto allo screening rapido. Mantieni lo stesso task_id e continua a interrogare. Non creare attività di report duplicate.
422 oppure missing_input Il corpo della richiesta non contiene i campi obbligatori o ha un formato non valido. Per analyze_spectrum, è necessario fornire almeno uno tra: peaks, query o file_base64. Controlla che il tuo JSON sia valido, Content-Type sia application/json e che i campi obbligatori siano presenti. Vedi gli esempi di richiesta sopra.
413 file_too_large Il file dello spettro caricato supera il limite di dimensione. Esporta un file più piccolo o usa solo le posizioni dei picchi tramite il campo spectrum.peaks.

Pronto a costruire?

Il riferimento REST completo contiene ogni endpoint, formati di richiesta e risposta, autenticazione, limiti di frequenza, codici di errore, definizioni degli strumenti MCP ed esempi di codice in Python e curl.

Invia richiesta Modulo