Подключите FTIR.fun к любому AI-инструменту или приложению
Предоставьте своему ИИ-ассистенту или собственному коду прямой доступ к 320,000+ эталонным спектрам, рассуждениям о пиках на основе графа знаний и интерпретациям, подтверждённым научной литературой. Выберите один из трёх способов подключения — MCP для ИИ-ассистентов, REST API для кода или готовый Skill для платформ без программирования. Ниже для каждого варианта приведены пошаговые инструкции для начинающих пользователей.
MCP и REST API используют один API-ключ FTIR.fun. Coze/Doubao использует сервисный ключ, настроенный издателем плагина, поэтому конечные пользователи работают через плагин, не вводя личный ключ. Получение личного ключа занимает около минуты:
Войти в FTIR.funСоздайте бесплатную учётную запись (новые учётные записи получают бесплатные пробные кредиты).
Просмотреть или скопировать ваш API-ключПолный ключ (он начинается с ftir_) остается доступным в панели управления API-ключами. Вы можете вернуться туда, чтобы просмотреть, скопировать или отозвать его.
Все три варианта подключаются к одному и тому же движку: 320,000+ спектров, рассуждения на основе графа знаний и цитирование литературы. Вам нужен только один вариант. Выберите путь, соответствующий вашему рабочему процессу; MCP — удобный вариант для пользователей ИИ-ассистентов.
MCPПуть A — MCP-сервер
MCP (Model Context Protocol) — стандартный способ вызова внешних инструментов ИИ-ассистентами. FTIR.fun предоставляет размещённый MCP-сервер — локальная установка не требуется. Добавьте одну небольшую конфигурацию в свой ИИ-клиент, введите API-ключ, и ваш ассистент получит доступ к инструментам FTIR.fun, включённым для этого ключа.
✓Как работает вход (прочитайте это сначала):
FTIR.fun аутентифицируется с помощью API-ключа из вашей учетной записи, отправляемого в заголовке Authorization: Bearer. Нет входа через браузер OAuth и отдельной страницы авторизации. Если клиент когда-либо попытается открыть веб-страницу авторизации, он использует устаревшую конфигурацию — см. Устранение неполадок ниже.
Выберите свой клиент для точных шагов:
VS
Настройте FTIR.fun MCP в VS Code
Требуется актуальная версия VS Code с GitHub Copilot Chat в режиме агента.
Откройте проект, затем создайте файл .vscode/mcp.jsonВнутри папки вашего проекта создайте папку с именем .vscode (если её нет) и файл с именем mcp.json внутри неё. Хотите, чтобы FTIR.fun был доступен в каждом проекте? Поместите тот же JSON в настройки пользовательского уровня: откройте Палитру команд, найдите 'Preferences: Open User Settings (JSON)' и добавьте запись mcp.servers туда.
Вставьте эту точную конфигурациюСкопируйте как есть. Сохраните заполнитель ${input:...} — VS Code безопасно запросит ключ при запуске сервера.
Запустите сервер ftirfunОткройте палитру команд, выполните «MCP: List Servers», выберите ftirfun и нажмите Start. В некоторых версиях VS Code действие Start отображается прямо над сервером в mcp.json — это тоже работает.
Вставьте только ваш ключ API при запросеКогда VS Code запросит ftirfun-api-key, вставьте только исходный ключ (начинается с ftir_). Конфигурация автоматически добавит Bearer.
Подтвердите, что подключеноОткройте Copilot Chat в режиме Agent и проверьте список инструментов. FTIR.fun должен отображать единый каталог инструментов; вызовы за пределами области возможностей этого ключа возвращают ошибку разрешения. Затем попробуйте приведённый ниже тестовый запрос.
Use FTIR.fun to explain the FTIR peak at 1715 cm-1.
💬Раньше видели страницу авторизации или ошибку «страница авторизации не существует»? Это была устаревшая конфигурация в стиле OAuth. Удалите старую запись ftirfun, вставьте приведенный выше JSON, перезагрузите VS Code и запустите снова. Полное исправление в разделе «Устранение неполадок».
A
Настройте FTIR.fun MCP в Claude
Официально зарегистрирован в Anthropic MCP Registry. Работает в Claude Desktop и Claude Code.
Открыть настройки MCP-сервераВ Claude Desktop перейдите в Настройки → Коннекторы → Добавить пользовательский коннектор. В Claude Code отредактируйте ваш файл конфигурации MCP.
Добавьте удаленный сервер и заголовок BearerИспользуйте размещенный URL и добавьте ваш API-ключ в качестве заголовка Authorization. Замените заполнитель на ваш реальный ключ (начинается с ftir_).
Перезапустите Claude и подтвердитеПерезапустите Claude Desktop, откройте панель коннекторов/инструментов и убедитесь, что инструменты FTIR.fun отображаются. Затем задайте вопрос на простом языке.
Identify this polymer from its FTIR peaks: 2915, 1715, 1450 cm-1.
📎Предпочитаете Claude Code CLI? Выполните claude mcp add --transport http ftirfun https://ftir.fun/mcp --header "Authorization: Bearer ftir_your_key_here".
Cu
Настройте FTIR.fun MCP в Cursor
Отредактируйте конфигурацию MCP в Cursor, чтобы ваш ИИ-редактор кода мог вызывать FTIR.fun, не выходя из IDE.
Откройте файл конфигурации MCPСоздайте или отредактируйте ~/.cursor/mcp.json (глобальный) или .cursor/mcp.json внутри вашего проекта.
Вставьте серверный блокЗамените заполнитель на ваш реальный ключ (начинается с ftir_).
Перезагрузите Cursor и подтвердитеСнова откройте Cursor, проверьте Settings → MCP для сервера ftirfun и его зеленый статус, затем спросите в чате.
Cx
Настройте FTIR.fun MCP в Codex или любой MCP-платформе
Работает с OpenAI Codex и любым MCP-совместимым клиентом, поддерживающим удаленные HTTP-серверы.
Добавьте сервер в вашу конфигурацию CodexУкажите клиенту размещённый URL и убедитесь, что он отправляет ваш API-ключ в заголовке Bearer. Замените заполнитель своим настоящим ключом.
Перезапустите и убедитесь, что инструменты загружаютсяПерезапустите клиент и убедитесь, что каталог инструментов FTIR.fun отображается перед отправкой запроса. API-ключ определяет, какие возможности можно вызывать.
Gm
Настройка FTIR.fun MCP в Gemini CLI
Добавьте FTIR.fun в клиент Gemini, поддерживающий MCP, используя тот же размещенный URL и заголовок Bearer.
Отредактируйте ~/.gemini/settings.jsonДобавьте запись сервера httpUrl с заголовком вашего API-ключа. Замените заполнитель своим настоящим ключом.
Перезапустите Gemini CLI и подтвердитеЗапустите /mcp, чтобы вывести список серверов и убедиться, что ftirfun подключен, прежде чем вводить запрос.
🧩Используете другой MCP-клиент? Любой клиент, поддерживающий удаленный streamable-HTTP сервер, подойдет: установите URL на https://ftir.fun/mcp и отправлять Authorization: Bearer <your key>. См. карточку публичного сервера для полной схемы инструмента: server-card.json
✓После успешного подключения ваш ИИ-клиент должен перечислить эти 7 инструментов:parse_ftir_spectrum, analyze_ftir_spectrum, submit_ftir_report, get_ftir_report_status, explain_peaks, find_spectra, fetch_result.
Если вы видите меньше инструментов или их нет, проверьте раздел Устранение неполадок ниже.
APIПуть B — REST API
Вызывайте унифицированный REST-сервис FTIR.fun из собственного кода на любом языке — Python, JavaScript, R, MATLAB, Java, Go. Ваш API-ключ определяет доступные возможности: от идентификации неизвестных спектров и интерпретации пиков до поиска эталонов, формирования отчётов, рабочих процессов LIMS и других операций, доступных для вашей учётной записи.
Проверьте, что REST-сервис онлайнКонечная точка health является общедоступной и не расходует баллы. Она должна возвращать JSON ниже. Если вы видите HTML-страницу или тайм-аут, возможно, сервис временно недоступен.
curl
curl https://ftir.fun/health
Ожидаемый ответ
{"status":"ok","service":"ftirfun-api"}
Аутентифицируйтесь с помощью заголовка X-API-KeyКаждая защищённая конечная точка принимает ваш ключ в заголовке X-API-Key. Применяются те же правила учётной записи, что и в веб-приложении: баллы, подписка и ограничения скорости. Если ключ неверен или отсутствует, вы получите ошибку JSON 401; если область действия ключа не включает операцию, вы получите ответ 403 capability_not_enabled.
Заголовок авторизации
X-API-Key: ftir_your_key_here
Сделайте первый вызов — определите неизвестный спектрОтправьте список пиков (или загруженный файл) и получите ранжированные кандидаты с оценками сходства и доказательствами пиков. Блок опций необязателен — по умолчанию top_k=15 (диапазон 1–50) и tolerance_cm1=8 (диапазон 1–30).
{
"success": true,
"search_mode": "peak_only",
"n_matches": 5,
"confidence": 0.42,
"confidence_source": "peak_match_score",
"summary": "Peak-based FTIR matching ranks Styrene/acrylonitrile copolymer first...",
"matches": [
{"rank": 1, "name": "Styrene/acrylonitrile copolymer", "cas": "9003-54-7",
"num": 119319, "score": 0.4214, "matched": 6}
],
"evidence": ["3026 cm-1 -> alkyl C-H vibration (DOI 10.5650/jos.ess14201)"],
"peak_explanations": [
{"peak_cm1": 3026, "assignment": "alkyl C-H vibration",
"evidence_type": "kg_peak_group"}
],
"uncertainty": "The leading match is close to the runner-up..."
}
Изучите остальные конечные точкиПолный справочник охватывает каждый конечный пункт, форматы запросов и ответов, коды ошибок и другие примеры кода. См. Документация API.
Что вы хотите
Конечная точка
Ввод
Идентифицировать неизвестный спектр
POST /ftir/analyze_spectrum
Тело JSON с spectrum.peaks или file_base64
Объяснить один или несколько пиков
POST /ftir/explain_peak_assignments
JSON-тело со списком пиков или текстом запроса
Найти известный эталонный спектр
POST /ftir/find_spectra
JSON-тело с строкой запроса
Получить предыдущий результат по номеру отчета
GET /ftir/result/{result_num}
Параметр пути, необязательный ?language_code=en
Отправьте полный асинхронный отчет, затем опрашивайте его
POST /ftir/reports · GET /ftir/reports/{task_id}
JSON-тело с file_base64 (обязательно)
Восстановите утерянный task_id или просмотрите свои недавние анализы.
GET /ftir/tasks
Без тела; возвращает ваши последние задачи с task_id, статусом и result_num
Разобрать файл прибора на пики
POST /parse-spectrum
Загрузка multipart файла ИЛИ JSON с file_base64
Преобразовать нативный файл с сохранением метаданных
POST /native-spectrum/convert
Мультипартный файл плюс output_format ИЛИ JSON с file_base64, filename и output_format
💡Совет: POST /ftir/analyze_spectrum — единственная рекомендуемая точка входа для идентификации спектров. Более старые конечные точки /v1/search, /ftir/identify_material и /ftir/match_library_topk остаются доступными как псевдонимы совместимости — для новых интеграций достаточно analyze_spectrum.
Справочник ключевых параметров
Параметр
Тип
По умолчанию
Диапазон
Используется
top_k
int
15
1–50
analyze_spectrum
tolerance_cm1
int
8
1–30
analyze_spectrum
limit
int
10
1–20
find_spectra
sampling_mode
string
(пусто)
См. список ниже
reports, explain_peaks
language_code
string
"en"
ISO 639-1
reports, fetch_result
include_report
bool
true
—
get_ftir_report_status
📘Создаете пользовательского GPT или импортируете в другой инструмент? Импортируйте нашу схему OpenAPI напрямую: openapi.platform.yaml.
Разбор файла инструмента (два способа)
Конечная точка /parse-spectrum принимает либо загрузку multipart файла, либо JSON-тело с содержимым в кодировке base64. Оба возвращают одинаковый ответ: обнаруженные пики и полную кривую.
Преобразовать нативный файл прибора (CSV, JDX или JSON)
Используйте нативный конвертер, когда вам нужна каноническая кривая, исходные метаданные, провенанс и явные предупреждения о сохранении. Он сохраняет метаданные исходного парсера в metadata.raw и возвращает преобразованный артефакт как content_base64.
↗Предпочитаете браузерный рабочий процесс? Открыть нативный конвертер спектра FTIR. Форматы архивов и отчетов/документов отклоняются; конвертер отделен от Image → CSV.
SkillПуть C — Навыки и плагины
Для популярных платформ искусственного интеллекта и автоматизации мы поставляем готовые пакеты с предварительно настроенной интеграцией API. Установите пакет или импортируйте плагин, и FTIR.fun станет строительным блоком вашего рабочего процесса. На каждой карточке ниже точно указано, что нужно запустить или импортировать.
LC
LangChain
Пакет Python · PyPI
Опубликовано
Готовые инструменты для создания агентов с поддержкой FTIR. Обрабатывает кодирование Base64, повторные попытки и асинхронные вызовы за вас.
Установить
pip install langchain-ftirfun
Минимальный вызов
from langchain_ftirfun import explain_peaks
result = explain_peaks(
api_base_url="https://ftir.fun",
api_key="ftir_your_key_here",
peaks=[1715],
)
print(result)
Импортируйте FTIRFUN_TOOLS, чтобы получить опубликованный список функций. Каждая функция принимает api_base_url и api_key в качестве первых двух аргументов; сервер применяет ограничения возможностей, включённых для этого ключа.
Плагин Coze cloud опубликован с тремя инструментами: спектральный анализ, поиск по справочной библиотеке и объяснение пиков. Конечные пользователи могут использовать его напрямую в Doubao без настройки каких-либо ключей API.
Квота отслеживается для каждого пользователя через Coze sys_uuid. Плагин использует ключ службы, настроенный издателем.
GPT
ChatGPT
Пользовательский GPT · Действия GPT
Схема готова
Создайте пользовательского GPT, который анализирует спектры, объясняет пики и находит эталонные спектры. Импортируйте нашу схему OpenAPI в качестве действия. Требуется ChatGPT Plus.
Импортировать URL
https://ftir.fun/openapi.platform.yaml
В редакторе GPT: Configure → Actions → Import from URL. Установите аутентификацию как API Key (заголовок X-API-Key).
Добавьте FTIR.fun как пользовательский инструмент в ваши приложения и агенты Dify, импортировав ту же схему OpenAPI.
Импортировать URL
https://ftir.fun/openapi.platform.yaml
В Dify: Инструменты → Создать пользовательский инструмент → импортируйте схему, установите заголовок X-API-Key.
Gm
Google Gemini API
Объявления функций (интеграция SDK)
Готово
Используйте готовые объявления функций для вызова FTIR.fun из потока вызова функций Gemini API в вашем собственном коде.
Декларации охватывают опубликованные операции, включая синтаксический анализ и асинхронное формирование полных отчётов. Сервер применяет ограничения возможностей, включённых для каждого API-ключа.
Унифицированные сервисы MCP и REST предоставляют один и тот же каталог операций FTIR.fun. API-ключи могут иметь более ограниченный набор возможностей, тогда как объявления, специфичные для платформы, могут намеренно публиковать только подмножество. Перечисленные ниже операции используют одни и те же сервисы FTIR.fun.
Задача
Инструмент MCP
REST-эндпоинт
Скажите это вашему ИИ
Прочитать файл прибора
parse_ftir_spectrum
POST /parse-spectrum
Разобрать sample.spc и перечислить обнаруженные пики.
Конвертировать нативные данные и сохранить метаданные
convert_native_spectrum
POST /native-spectrum/convert
Преобразовать sample.spa в JDX и сохранить исходные метаданные.
Идентифицировать неизвестный спектр
analyze_ftir_spectrum
POST /ftir/analyze_spectrum
Определите, какой полимер представляет этот спектр.
Отправить полный трехосевой отчет
submit_ftir_report
POST /ftir/reports
Отправьте sample.spa для полного отчета в режиме ATR.
Опрашивайте и получайте этот отчет
get_ftir_report_status
GET /ftir/reports/{task_id}
Проверьте задачу отчета и дайте мне ссылку, когда она будет готова.
Объяснить пики
explain_peaks
POST /ftir/explain_peak_assignments
О чем свидетельствуют пики на 1715 и 1450 см-1?
Найти известный эталонный спектр
find_spectra
POST /ftir/find_spectra
Найдите эталонные спектры для полистирола.
Откройте более ранний результат заново
fetch_result
GET /ftir/result/{result_num}
Получить результат 20260528100755416137536.
🎓Академическое отнесение пиков —
Для образцов с известным составом расширенная возможность FTIR.fun REST/MCP назначает каждому измеренному пику подтверждение на основе данных литературы с отслеживаемыми источниками. Каждая отправка стоит 30 баллов или является бесплатной при активной подписке; запросы статуса не тарифицируются.
Опишите задачу естественным образом (например: «Назначьте все измеренные пики FTIR для этого спектра; образец известен как ПММА; отправьте отчёт мне по электронной почте») — клиент предоставляет файл, и вам никогда не нужно самостоятельно собирать JSON или Base64. Готовые результаты возвращают как статус JSON, так и защищённые адреса отчётов; отчёты не доступны через публичный путь загрузки.
Поддерживаемые расширения имён файлов спектров (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. Сохраняйте исходное расширение файла. Неподдерживаемые или нечитаемые файлы возвращают supported_extensions и supported_formats. Допустимые значения sampling_mode: KBr Pellet, Vapor, Solvent, Thin Film, Paraffin Mull, ATR, Diffuse Reflectance, Micro IR и Others. Transmission не является допустимым значением.
{
"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..."
}
Получение полного отчета (асинхронно)
Быстрый скрининг (analyze_spectrum) возвращает результат немедленно. Полный трёхосевой отчёт формируется в фоновом режиме и обычно занимает 30–90 секунд. Сохраните task_id и опрашивайте его, а не отправляйте запрос повторно.
ОтправитьВызовите submit_ftir_report (MCP) или POST /ftir/reports (REST). Вы получите task_id и зарезервированный result_num. Поле file_base64 обязательно; другие поля (sampling_mode, prior_context, language_code, sample_name, sample_order_no) необязательны.
ОпросВызывайте get_ftir_report_status (MCP) или GET /ftir/reports/{task_id} каждые 5–10 секунд, пока completed не станет true. Ответ по завершении включает report_url, объект report (структурированное содержимое результата с подробным report_view внутри) и result_num.
Открыть итоговый отчетОткройте полный URL https://ftir.fun/outputdata/?num={result_num} в браузере, чтобы просмотреть полную страницу результатов трехосного анализа, созданную FTIR.fun.
⚠️Сохраните task_id и выполняйте опрос до завершения или сбоя. Повторные отправки, пока задача находится в очереди или выполняется, приводят к излишнему расходу баллов.
Устранение неполадок
Что вы видите
Что это значит
Что делать
Клиент открывает страницу авторизации в браузере или сообщает, что страница авторизации не существует.
Ваш клиент использует старую запись сервера в стиле OAuth. FTIR.fun не использует OAuth — только API-ключ.
Удалите старую запись сервера ftirfun, вставьте точную конфигурацию с этой страницы, перезагрузите клиент и снова запустите ftirfun.
401 (MCP) / 401 invalid_api_key (REST)
API-ключ отсутствует, истек, отозван или вставлен неправильно.
Перезапустите сервер и вставьте только сырой ключ (начинается с ftir_). Создайте новый ключ из Панель управления ключами API если необходимо.
Сервер запускается, но инструменты не появляются.
Клиент не обновил свой каталог, или в конфигурации используется неверное имя ключа.
Для VS Code убедитесь, что mcp.json использует servers (не mcpServers). Затем остановите и запустите ftirfun или перезагрузите окно.
403 insufficient_balance
У аккаунта недостаточно баллов для этого анализа.
Проверьте баланс или подписку в FTIR.fun, затем повторите попытку.
429 rate_limit_exceeded
Анализ и синтаксический разбор REST разрешают 60 запросов в минуту на один ключ API; чтение результатов REST и статусов отчетов использует отдельный блок на 120 запросов в минуту; MCP разрешает 60 вызовов в минуту для каждого ключа API и инструмента.
Дождитесь периода повторной попытки, указанного инструментом, прежде чем вызывать снова.
Отчет остается в очереди или выполняется.
Полные отчеты выполняются асинхронно и занимают больше времени, чем быстрый поиск.
Используйте тот же task_id и выполняйте опрос. Если вы потеряли task_id, вызовите GET /ftir/tasks, чтобы получить список последних задач и найти его снова.
422 или missing_input
Тело запроса не содержит обязательных полей или имеет неверный формат. Для analyze_spectrum необходимо указать хотя бы одно из: peaks, query или file_base64.
Убедитесь, что ваш JSON корректен, Content-Type равен application/json, и присутствуют обязательные поля. Смотрите примеры запросов выше.
413 file_too_large
Загруженный файл спектра превышает ограничение по размеру.
Экспортируйте файл меньшего размера или используйте только позиции пиков через поле spectrum.peaks.
Готовы приступить к разработке?
Полная справка по REST содержит все конечные точки, форматы запросов и ответов, аутентификацию, ограничения скорости, коды ошибок, определения инструментов MCP и примеры кода на Python и curl.