Integração de Desenvolvedor e IA

Conecte FTIR.fun a qualquer ferramenta ou aplicativo de IA

Dê ao seu assistente de IA ou ao seu próprio código acesso direto a mais de 130.000 espectros de referência, raciocínio de pico com grafo de conhecimento e interpretação baseada na literatura. Escolha uma das três formas de conexão — MCP para assistentes de IA, a API REST para código ou uma Skill pronta para plataformas sem código. Cada caminho abaixo tem instruções passo a passo escritas para usuários iniciantes.

Revisado e listado em

Antes de começar — obtenha sua chave de API

MCP e a API REST usam uma chave de API FTIR.fun. Coze/Doubao usa uma chave de serviço configurada pelo editor do plugin, então os usuários finais não colam uma chave pessoal. Obter uma chave pessoal leva cerca de um minuto:

  1. Faça login no FTIR.fun Crie uma conta gratuita se não tiver uma. Novas contas incluem créditos de teste gratuitos.
  2. Abra o painel de chaves de API Ir para Conta → Chaves de API e clique em Gerar.
  3. Copie e salve a chave imediatamente A chave completa (começa com ftir_) é mostrada apenas uma vez. Armazene-a em um local seguro. Se a perder, basta gerar uma nova.
🔑 Pronto? Abra o Painel de Chaves de API em uma nova aba, depois volte e siga o caminho que escolheu acima.
⚠️ O servidor MCP hospedado aceita apenas uma chave de API de conta gerada no Painel de Chaves de API do FTIR.fun (começa com ftir_). As chaves mestras do lado do servidor são para operadores REST e não podem fazer login no MCP hospedado.

Etapa 1 — Qual conexão é ideal para você?

Todos os três conectam-se ao mesmo mecanismo: mais de 130.000 espectros, raciocínio de grafo de conhecimento e citações de literatura. Você só precisa de um. Escolha pela forma como trabalha — não tem certeza? MCP é a escolha mais popular para quem usa um assistente de IA.

O que sua IA pode realmente fazer

As distribuições atuais de MCP, REST, n8n e LangChain expõem sete operações. O plugin Coze publicado expõe três ferramentas (analisar, encontrar, explicar), e outros modelos podem expor um conjunto declarado menor; verifique cada cartão de plataforma antes do uso. As operações abaixo compartilham os mesmos serviços do FTIR.fun.

Tarefa Ferramenta MCP Endpoint REST Diga isto ao seu AI
Ler um arquivo de instrumento parse_ftir_spectrum POST /parse-spectrum Analise sample.spc e liste os picos detectados.
Identificar um espectro desconhecido analyze_ftir_spectrum POST /ftir/analyze_spectrum Identifique qual polímero é este espectro.
Envie um relatório triaxial completo submit_ftir_report POST /ftir/reports Envie sample.spa para um relatório completo no modo ATR.
Faça a votação e recupere esse relatório get_ftir_report_status GET /ftir/reports/{task_id} Verifique a tarefa do relatório e me envie o link quando estiver pronto.
Explicar picos explain_peaks POST /ftir/explain_peak_assignments O que os picos em 1715 e 1450 cm-1 indicam?
Encontre um espectro de referência conhecido find_spectra POST /ftir/find_spectra Encontre espectros de referência para poliestireno.
Reabra um resultado anterior fetch_result GET /ftir/result/{result_num} Obtenha o resultado 20260528100755416137536.

Arquivos suportados: SPA, SPC, OPUS, JCAMP-DX, CSV, TSV, Excel, JSON. Os valores válidos de sampling_mode são KBr Pellet, Vapor, Solvent, Thin Film, Paraffin Mull, ATR, Diffuse Reflectance, Micro IR e Outros. Transmission não é um valor válido. Mantenha a extensão original do arquivo para que o FTIR.fun escolha o analisador correto.

exemplo de resposta find_spectra

resposta 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": [...]}
  ]
}

exemplo de resposta explain_peaks

Resposta de 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..."
}

Obtendo o relatório completo (assíncrono)

A triagem rápida (analyze_spectrum) retorna imediatamente. O relatório tri-axis completo é executado em segundo plano e normalmente leva de 30 a 90 segundos. Não reenvie enquanto um relatório estiver em execução — mantenha o task_id e consulte-o.

  1. Enviar Chame submit_ftir_report (MCP) ou POST /ftir/reports (REST). Você recebe de volta um task_id e um result_num reservado. O campo file_base64 é obrigatório; outros campos (sampling_mode, prior_context, language_code, sample_name, sample_order_no) são opcionais.
    Exemplo de envio (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"}'
    Enviar resposta
    {"success": true, "task_id": "rpt_abc123...", "result_num": "20260713...", "status": "queued"}
  2. Enquete Chame get_ftir_report_status (MCP) ou GET /ftir/reports/{task_id} a cada 5–10 segundos até que completed seja true. A resposta concluída inclui report_url, report_view (conteúdo estruturado do relatório) e result_num.
    Exemplo de consulta
    curl https://ftir.fun/ftir/reports/rpt_abc123 \
      -H "X-API-Key: ftir_your_key_here"
    Resposta de consulta (em andamento)
    {"success": true, "task_id": "rpt_abc123", "status": "running", "progress": 45, "completed": false}
    Resposta de polling (concluída)
    {"success": true, "task_id": "rpt_abc123", "status": "completed", "completed": true,
     "result_num": "20260713...", "report_url": "https://ftir.fun/outputdata/?num=20260713..."}
  3. Abrir o relatório final Abra a URL completa https://ftir.fun/outputdata/?num={result_num} em um navegador para visualizar a página completa de resultados tri-axis renderizada pelo FTIR.fun.
⚠️ Não envie o mesmo relatório novamente enquanto ele estiver na fila ou em execução. Mantenha o task_id e continue consultando até que ele seja concluído ou falhe. Envios duplicados desperdiçam pontos.

Solução de problemas

O que você vê O que significa O que fazer
O cliente abre uma página de autorização do navegador, ou diz que a página de autorização não existe. Seu cliente está usando uma entrada de servidor antiga no estilo OAuth. O FTIR.fun não usa OAuth — apenas uma chave de API. Exclua a entrada antiga do servidor ftirfun, cole a configuração exata desta página, recarregue o cliente e inicie o ftirfun novamente.
401 (MCP) / 401 invalid_api_key (REST) A chave de API está ausente, expirada, revogada ou colada incorretamente. Reinicie o servidor e cole apenas a chave bruta (começa com ftir_). Gere uma nova chave a partir do Painel de Chaves de API se necessário.
O servidor inicia, mas nenhuma ferramenta aparece. O cliente não atualizou seu catálogo ou a configuração usa o nome de chave errado. Para o VS Code, confirme que o mcp.json usa servers (não mcpServers). Em seguida, pare e inicie ftirfun, ou recarregue a janela.
403 insufficient_balance A conta não tem pontos suficientes para essa análise. Verifique seu saldo ou assinatura no FTIR.fun e tente novamente.
429 rate_limit_exceeded A análise e parsing REST permitem 60 solicitações por minuto por chave de API; as leituras de resultados REST e status de relatório usam um bucket separado de 120 solicitações por minuto; o MCP permite 60 chamadas por minuto para cada chave de API e ferramenta. Aguarde o período de repetição informado pela ferramenta antes de chamar novamente.
Um relatório permanece na fila ou em execução. Relatórios completos são executados de forma assíncrona e demoram mais que a triagem rápida. Mantenha o mesmo task_id e continue fazendo polling. Não crie tarefas de relatório duplicadas.
422 ou missing_input O corpo da requisição está faltando campos obrigatórios ou tem formato inválido. Para analyze_spectrum, você deve fornecer pelo menos um de: peaks, query, ou file_base64. Verifique se seu JSON é válido, o Content-Type é application/json e os campos obrigatórios estão presentes. Veja os exemplos de requisições acima.
413 file_too_large O arquivo de espectro carregado excede o limite de tamanho. Exporte um arquivo menor ou use apenas as posições dos picos através do campo spectrum.peaks.

Pronto para construir?

A referência completa da REST possui todos os endpoints, formatos de requisição e resposta, autenticação, limites de taxa, códigos de erro, definições de ferramentas MCP e exemplos de código em Python e curl.

Enviar Pedido Formulário