开发者和 AI 集成
将 FTIR.fun 连接到任何 AI 工具或应用
让您的 AI 助手或您自己的代码直接访问超过 130,000 个参考光谱、知识图谱峰值推理和文献支持的解读。选择三种连接方式之一 — 面向 AI 助手的 MCP、面向代码的 REST API 或面向无代码平台的现成技能。下面的每条路径都提供了为首次用户编写的分步说明。
开始之前——获取你的 API 密钥
MCP和REST API都使用同一个FTIR.fun API密钥。Coze/豆包使用插件发布者配置的服务密钥,因此最终用户无需粘贴个人密钥。获取个人密钥大约需要一分钟:
-
登录 FTIR.fun
如果没有账户,请创建一个免费账户。新账户包含免费试用额度。
-
打开 API 密钥仪表盘
转到 账户 → API密钥 并点击生成。
-
立即复制并保存密钥
完整密钥(以 ftir_ 开头)仅显示一次。请将其存放在安全的地方。如果丢失,只需生成一个新密钥。
⚠️
托管的 MCP 服务器仅接受在 FTIR.fun API 密钥仪表板中生成的账户 API 密钥(以 ftir_ 开头)。服务器端主密钥仅供 REST 操作员使用,不能登录到托管的 MCP。
第 1 步 — 哪种连接适合您?
三者均连接到同一引擎:130,000+ 光谱、知识图谱推理和文献引用。您只需一个。根据您的工作方式选择 — 不确定?MCP 是使用 AI 助手的最流行选择。
MCP路径 A — MCP 服务器
MCP(模型上下文协议)是 AI 助手调用外部工具的标准方式。FTIR.fun 运行一个托管的 MCP 服务器 — 你无需在本地安装或运行任何东西。你只需在 AI 客户端中添加一个小配置,输入你的 API 密钥,你的助手即可获得七个 FTIR 工具。
✓
登录方式(请先阅读):
FTIR.fun 使用您账户中的 API 密钥进行身份验证,以 Authorization: Bearer 标头形式发送。没有 OAuth 浏览器登录,也没有单独的授权页面。如果客户端尝试打开授权网页,则说明它使用了过时的配置 — 请参阅下面的故障排除。
选择您的客户端以获取确切步骤:
VS
在 VS Code 中设置 FTIR.fun MCP
需要具有 Agent 模式下 GitHub Copilot Chat 的最新 VS Code。
-
打开你的项目,然后创建文件 .vscode/mcp.json
在您的项目文件夹中,创建一个名为 .vscode 的文件夹(如果不存在),并在其中创建一个名为 mcp.json 的文件。希望 FTIR.fun 在每个项目中都可用?将相同的 JSON 放入您的用户级设置中:打开命令面板,搜索 'Preferences: Open User Settings (JSON)',然后在其中添加一个 mcp.servers 条目。
-
粘贴此确切配置
原样复制。不要用您的真实密钥替换 ${input:...} 部分——VS Code 会在服务器启动时安全地询问密钥。
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "ftirfun-api-key",
"description": "FTIR.fun API key",
"password": true
}
],
"servers": {
"ftirfun": {
"type": "http",
"url": "https://ftir.fun/mcp",
"headers": {
"Authorization": "Bearer ${input:ftirfun-api-key}"
}
}
}
}
-
启动 ftirfun 服务器
打开命令面板,运行“MCP: List Servers”,选择 ftirfun,然后选择 Start。部分 VS Code 版本会在 mcp.json 中的服务器上方直接显示 Start 操作——这也有效。
-
当提示时仅粘贴你的 API 密钥
当VS Code询问ftirfun-api-key时,只需粘贴原始密钥(以ftir_开头)。不要输入Bearer这个词——配置会自动添加。
-
确认已连接
在 Agent 模式下打开 Copilot Chat 并检查工具列表。FTIR.fun 应显示七个工具。然后尝试下面的测试提示。
Use FTIR.fun to explain the FTIR peak at 1715 cm-1.
💬
之前看到过授权页面或“授权页面不存在”错误?那是过时的 OAuth 风格配置。删除旧的 ftirfun 条目,粘贴上面的 JSON,重新加载 VS Code,然后重新启动。完整修复见故障排除。
A
在Claude中设置FTIR.fun MCP
已在 Anthropic MCP 注册表中正式列出。适用于 Claude Desktop 和 Claude Code。
-
打开 MCP 服务器设置
在 Claude Desktop 中,转到设置 → 连接器 → 添加自定义连接器。在 Claude Code 中,编辑你的 MCP 配置文件。
-
添加远程服务器和 Bearer 标头
使用托管的URL,并将您的API密钥作为Authorization标头添加。用您的真实密钥(以ftir_开头)替换占位符。
远程 MCP 服务器
URL: https://ftir.fun/mcp
Header: Authorization: Bearer ftir_your_key_here
-
重新启动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
在Cursor中设置FTIR.fun MCP
编辑 Cursor 的 MCP 配置,以便您的 AI 代码编辑器无需离开 IDE 即可调用 FTIR.fun。
-
打开 MCP 配置文件
创建或编辑 ~/.cursor/mcp.json(全局)或项目内的 .cursor/mcp.json。
-
粘贴服务器块
将占位符替换为您的真实密钥(以ftir_开头)。
~/.cursor/mcp.json
{
"mcpServers": {
"ftirfun": {
"url": "https://ftir.fun/mcp",
"headers": {
"Authorization": "Bearer ftir_your_key_here"
}
}
}
}
-
重新加载 Cursor 并确认
重新打开 Cursor,检查设置 → MCP 中的 ftirfun 服务器及其绿色状态,然后在聊天中提问。
Cx
在 Codex 或任何 MCP 工具中设置 FTIR.fun MCP
适用于 OpenAI Codex 和任何支持远程 HTTP 服务器的 MCP 兼容客户端。
-
将服务器添加到你的 Codex 配置中
将客户端指向托管 URL,并确保它以 Bearer 标头发送您的 API 密钥。将占位符替换为您的真实密钥。
~/.codex/config.toml
[mcp_servers.ftirfun]
url = "https://ftir.fun/mcp"
http_headers = { Authorization = "Bearer ftir_your_key_here" }
-
重启并确认工具已加载
重启客户端,确认提示前列出了七个FTIR.fun工具。
Gm
在 Gemini CLI 中设置 FTIR.fun MCP
使用相同的托管 URL 和 Bearer 标头将 FTIR.fun 添加到支持 MCP 的 Gemini 客户端。
-
编辑 ~/.gemini/settings.json
添加一个带有您的 API 密钥标头的 httpUrl 服务器条目。将占位符替换为您的真实密钥。
~/.gemini/settings.json
{
"mcpServers": {
"ftirfun": {
"httpUrl": "https://ftir.fun/mcp",
"headers": {
"Authorization": "Bearer ftir_your_key_here"
}
}
}
}
-
重启 Gemini CLI 并确认
运行 /mcp 列出服务器,并在提示前确认 ftirfun 已连接。
🧩
使用其他MCP客户端?任何支持远程可流式HTTP服务器的客户端都可以:将URL设置为 https://ftir.fun/mcp 并发送 Authorization: Bearer <your key>. 请查看公共服务器卡以获取完整的工具模式: server-card.json
✓
成功连接后,您的 AI 客户端应列出这 7 个工具:
parse_ftir_spectrum, analyze_ftir_spectrum, submit_ftir_report, get_ftir_report_status, explain_peaks, find_spectra, fetch_result.
如果您看到的工具较少或根本没有,请查看下面的故障排除。
API路径 B — REST API
用任何语言从您自己的代码中调用 FTIR.fun — Python、JavaScript、R、MATLAB、Java、Go。用于识别未知光谱、解释峰值、查找参考光谱以及按报告编号获取历史结果的标准 HTTP 端点。非常适合 LIMS 集成、批量管道或向您自己的应用程序添加 FTIR 搜索。
-
检查 REST 服务是否在线
健康检查端点是公开的,不消耗点数。它应返回下面的JSON。如果您看到HTML页面或超时,服务可能暂时不可用。
curl
curl https://ftir.fun/health
预期响应
{"status":"ok","service":"ftirfun-api"}
-
使用 X-API-Key 标头进行身份验证
每个受保护的端点都会在 X-API-Key 标头中接收您的密钥。与 Web 应用相同的帐户规则适用:积分、订阅和速率限制。如果密钥错误或缺失,您将收到 401 JSON 错误。
认证标头
X-API-Key: ftir_your_key_here
-
进行第一次调用——识别未知光谱
发送峰值列表(或上传的文件),获取带有相似度分数和峰值证据的排序候选材料。选项块是可选的 — 默认为 top_k=15(范围 1–50)和 tolerance_cm1=8(范围 1–30)。
curl
curl -X POST https://ftir.fun/ftir/analyze_spectrum \
-H "X-API-Key: ftir_your_key_here" \
-H "Content-Type: application/json" \
-d '{"spectrum":{"type":"ftir","x_unit":"cm-1","y_unit":"absorbance","peaks":[3026,1600,1493,1452,756,697]},"options":{"top_k":5,"tolerance_cm1":8}}'
Python
import requests
resp = requests.post(
"https://ftir.fun/ftir/analyze_spectrum",
headers={"X-API-Key": "ftir_your_key_here"},
json={
"spectrum": {"type": "ftir", "x_unit": "cm-1", "y_unit": "absorbance",
"peaks": [3026, 1600, 1493, 1452, 756, 697]},
"options": {"top_k": 5, "tolerance_cm1": 8},
},
)
print(resp.json())
示例成功响应(简略)
{
"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 文档.
关键参数参考
解析仪器文件(两种方式)
/parse-spectrum 端点接受 multipart 文件上传或带有 base64 编码内容的 JSON 主体。两者返回相同的响应:检测到的峰值和完整曲线。
选项 A:multipart 文件上传
curl -X POST https://ftir.fun/parse-spectrum \
-H "X-API-Key: ftir_your_key_here" \
-F "file=@/path/to/sample.spc"
选项 B:带有 base64 的 JSON
curl -X POST https://ftir.fun/parse-spectrum \
-H "X-API-Key: ftir_your_key_here" \
-H "Content-Type: application/json" \
-d '{"file_base64": "V2F2ZW51bWJlci...", "filename": "sample.spc"}'
响应
{
"peaks": [697, 756, 1028, 1452, 1493, 1600, 3026],
"spectrum": [{"x": 400.0, "y": 0.023}, {"x": 401.0, "y": 0.024}, ...],
"status": "ok",
"error": null
}
Skill路径 C — 技能与插件
对于流行的AI和自动化平台,我们提供现成的软件包,因此您无需手动编写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 作为前两个参数。
将 FTIR 搜索拖放到可视化自动化工作流中。无需编码——连接节点并运行。
安装
npm install n8n-nodes-ftirfun
或者在 n8n 中添加:设置 → 社区节点 → 安装。
Cz
Coze / 豆包
OpenAPI插件 · 发布者服务密钥
实时
Coze 云插件发布了三个工具:频谱分析、参考库搜索和峰值解释。最终用户无需配置任何 API 密钥即可直接在豆包中使用。
端点
/coze/analyze_spectrum_flat
/coze/find_spectra
/coze/explain_peaks
配额通过Coze sys_uuid按用户跟踪。该插件使用发布者配置的服务密钥。
GPT
ChatGPT
自定义 GPT · GPT 操作
模式已就绪
构建一个自定义 GPT,用于分析光谱、解释峰值和查找参考光谱。将我们的 OpenAPI 模式作为操作导入。需要 ChatGPT Plus。
导入 URL
https://ftir.fun/openapi.platform.yaml
在GPT编辑器中:配置 → 操作 → 从URL导入。将身份验证设置为API密钥(标头X-API-Key)。
Df
Dify
自定义工具 · OpenAPI
模式已就绪
通过导入相同的OpenAPI模式,将FTIR.fun作为自定义工具添加到您的Dify应用和代理中。
导入 URL
https://ftir.fun/openapi.platform.yaml
在 Dify 中:工具 → 创建自定义工具 → 导入模式,设置 X-API-Key 标头。
Gm
Google Gemini API
函数声明(SDK 集成)
就绪
使用现成的函数声明,在您自己的代码中通过 Gemini API 的函数调用流程调用 FTIR.fun。
声明涵盖所有七个操作,包括解析和异步完整报告。
你的AI实际能做什么
当前的 MCP、REST、n8n 和 LangChain 分发包暴露了七个操作。已发布的 Coze 插件暴露了三个工具(分析、查找、解释),其他模板可能暴露更小的声明集合;使用前请检查每个平台卡片。以下操作共享相同的 FTIR.fun 服务。
支持的文件:SPA、SPC、OPUS、JCAMP-DX、CSV、TSV、Excel、JSON。有效的 sampling_mode 值为 KBr Pellet、Vapor、Solvent、Thin Film、Paraffin Mull、ATR、Diffuse Reflectance、Micro IR 和 Others。Transmission 不是有效值。保留原始文件扩展名,以便 FTIR.fun 选择正确的解析器。
find_spectra 响应示例
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": [...]}
]
}
explain_peaks 响应示例
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..."
}
获取完整报告(异步)
快速筛查(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)是可选的。
提交示例 (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"}'
提交响应
{"success": true, "task_id": "rpt_abc123...", "result_num": "20260713...", "status": "queued"}
-
投票
每 5–10 秒调用一次
get_ftir_report_status (MCP) 或 GET /ftir/reports/{task_id},直到 completed 为 true。完成后的响应包含 report_url、report_view(结构化报告内容)和 result_num。
轮询示例
curl https://ftir.fun/ftir/reports/rpt_abc123 \
-H "X-API-Key: ftir_your_key_here"
轮询响应(进行中)
{"success": true, "task_id": "rpt_abc123", "status": "running", "progress": 45, "completed": false}
轮询响应(已完成)
{"success": true, "task_id": "rpt_abc123", "status": "completed", "completed": true,
"result_num": "20260713...", "report_url": "https://ftir.fun/outputdata/?num=20260713..."}
-
打开最终报告
在浏览器中打开完整 URL
https://ftir.fun/outputdata/?num={result_num} 查看由 FTIR.fun 渲染的完整三轴结果页面。
⚠️
当报告排队或正在运行时,不要再次提交相同的报告。保留 task_id 并持续轮询直到完成或失败。重复提交浪费点数。
准备好构建了吗?
完整的 REST 参考包含每个端点、请求和响应格式、身份验证、速率限制、错误代码、MCP 工具定义以及 Python 和 curl 的代码示例。