Интеграция

FTIR.fun MCP сървър и REST API

Свържете 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Търсене на 130K+ референтни спектъра по пикове или качен файл. Връща класирани съвпадения с CAS номера и резултати за сходство.
search_public_ftir_resultsТърсете споделени от общността резултати от анализ по ключова дума.
fetch_public_ftir_resultИзвлечете конкретен публичен резултат от FTIR анализ по ID за подробен преглед.

Сървърна карта и връзки към регистри

Вижте всички интеграции на платформи

Плъгин за Coze — Използване в 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Грешка от страна на сървъра
Подаване на заявка Формуляр