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 320,000+ espectros de referência, ao raciocínio sobre picos baseado em grafos de conhecimento e à interpretação fundamentada 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 opção abaixo tem instruções passo a passo escritas para usuários iniciantes.

Listado em

Antes de começar — obtenha sua chave de API

O MCP e a API REST usam a mesma chave de API do FTIR.fun. O Coze/Doubao usa uma chave de serviço configurada pelo publicador do plugin, portanto os usuários finais utilizam o plugin sem colar uma chave pessoal. Obter uma chave pessoal leva cerca de um minuto:

  1. Faça login no FTIR.fun Crie uma conta gratuita (as novas contas incluem créditos de avaliação gratuitos).
  2. Abra o painel de chaves de API Ir para Conta → Chaves de API e clique em Gerar.
  3. Visualize ou copie sua chave de API A chave completa (começa com ftir_) permanece disponível no painel de Chaves de API. Você pode retornar lá para visualizá-la, copiá-la ou revogá-la.
🔑 Pronto? Abra o Painel de Chaves de API em uma nova aba, depois volte e siga o caminho que escolheu acima.

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

Os três se conectam ao mesmo mecanismo: 320,000+ espectros, raciocínio baseado em grafos de conhecimento e citações da literatura. Você só precisa de um. Escolha o caminho que corresponda à sua forma de trabalhar; o MCP é uma opção conveniente para usuários de assistentes de IA.

O que sua IA pode realmente fazer

Os serviços unificados MCP e REST expõem o mesmo catálogo de operações do FTIR.fun. As chaves de API podem receber um escopo de capacidades menor, enquanto as declarações específicas da plataforma podem publicar intencionalmente apenas um subconjunto. As operações abaixo partilham 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.
Converter dados nativos e preservar metadados convert_native_spectrum POST /native-spectrum/convert Converter sample.spa para JDX e manter os metadados de origem.
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.
🎓 Atribuição de Picos Acadêmica — Para amostras com composição conhecida, o recurso avançado REST/MCP do FTIR.fun atribui cada pico medido com evidências rastreadas na literatura. Cada envio custa 30 pontos ou é gratuito com uma assinatura ativa; as consultas de status não são cobradas. Descreva a tarefa naturalmente (por exemplo: “Atribua todos os picos de FTIR medidos para este espectro; a amostra é PMMA conhecido; envie o relatório por e-mail para mim”) — o cliente fornece o arquivo e você nunca precisa construir JSON ou Base64 você mesmo. Os resultados concluídos retornam tanto o status JSON quanto os endereços protegidos do relatório; os relatórios não são expostos em um caminho público de download.

Extensões de nome de arquivo de espectro suportadas (36): .spa, .spc, .sp, .abs, .irf, .irs, .dt, .jws, .jdx, .dx, .asc, .dpt, .opju, .opus, .ispd, .[0-9]+, .xlsx, .xls, .ods, .csv, .dat, .txt, .tsv, .json, .tab, .a2r, .asp, .spe, .map, .bsp, .spg, .srs, .smf, .ird, .fsm, .mat. Mantenha a extensão do arquivo original. Arquivos não suportados ou ilegíveis retornam supported_extensions e supported_formats. Os valores válidos de sampling_mode são KBr Pellet, Vapor, Solvent, Thin Film, Paraffin Mull, ATR, Diffuse Reflectance, Micro IR e Others. Transmission não é um valor válido.

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": "instrument_import",
     "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 completo de três eixos é executado em segundo plano e normalmente leva de 30 a 90 segundos. Mantenha o task_id e consulte-o periodicamente em vez de reenviar a solicitaçã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", "status_url": "https://ftir.fun/ftir/reports/rpt_abc123..."}
  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, um objeto report (conteúdo de resultado estruturado, com o report_view detalhado dentro dele) 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.
⚠️ Mantenha o task_id e faça polling até a conclusão ou falha. Envios duplicados enquanto estiver na fila ou em execução 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 faça polling. Se você perdeu o task_id, chame GET /ftir/tasks para listar suas tarefas recentes e encontrá-lo novamente.
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 Requisito Formulário