关于 Ftir Spectral Search
FTIR.fun 的 MCP 服务和 REST API 为研究人员与工程师提供红外光谱检索、峰位解释和材料识别,可接收峰列表或 28 种以上格式的仪器文件。其参考库包含 130,000 多条 FTIR 光谱,并提供分阶段报告查询。
主要功能
- 01分析光谱并返回排序候选材料
- 02解释红外峰位与官能团
- 03解析 28 种以上仪器文件格式
- 04按物质名称或 CAS 搜索光谱
- 05提交并查询多阶段识别报告
- 06通过 REST API 调用功能
适用场景
- 01根据未知样品光谱筛选材料
- 02快速解释指定红外峰位
- 03从仪器文件提取波数和峰值
- 04按 CAS 号查找参考光谱
MCP 相关
托管端点 https://ftir.fun/mcp 向 MCP 客户端提供七种工具,需使用 Bearer API 密钥。项目也提供代理同一 API 的本地 MCP 封装,可通过 stdio 或 Streamable HTTP 运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://ftir.fun/mcpclaude mcp add --transport http ftirfun https://ftir.fun/mcp{"mcpServers":{"ftirfun":{"type":"http","url":"https://ftir.fun/mcp"}}}在 Cursor 中打开{"servers":{"ftirfun":{"type":"http","url":"https://ftir.fun/mcp"}}}在 VS Code 中打开{"mcpServers":{"ftirfun":{"type":"http","url":"https://ftir.fun/mcp"}}}{"mcpServers":{"ftirfun":{"serverUrl":"https://ftir.fun/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://ftir.fun/mcp需要授权工具
详细介绍
中文 | English | Español | Français | 日本語
FTIR.fun MCP 服务
面向 FTIR.fun 的 MCP 服务和 REST API 客户端,可让 AI 助手和代码流水线直接访问 130,000 多条 FTIR 红外参考光谱,用于材料识别、峰解释和光谱库搜索。
可用工具一览
| 工具 | 功能 |
|---|---|
analyze_ftir_spectrum | 识别未知 FTIR 光谱——支持峰值、自然语言查询或仪器文件(28 种以上格式)。返回按相似度评分排序的匹配结果和文献 DOI。 |
explain_peaks | 解释一个或多个红外峰位置——无需完整搜索光谱库即可进行官能团归属。 |
parse_ftir_spectrum | 将原始 FTIR 仪器文件解析为波数-强度数据点和检测到的峰。 |
find_spectra | 按物质名称、CAS 编号或关键词搜索 130,000 多条参考光谱。返回用于比较的曲线数据。 |
submit_ftir_report | 提交光谱,启动完整的三轴识别工作流(与网站上的多阶段分析相同)。 |
get_ftir_report_status | 查询报告进度;完成后返回完整的结构化结果和可分享的 URL。 |
fetch_result | 按报告编号检索任意历史 FTIR.fun 分析结果。 |
获取 API 密钥
- 在 ftir.fun 登录——新账户包含免费试用额度。
- 前往 Account → API Keys,然后点击 Generate。
- 立即复制密钥(以
ftir_开头;仅显示一次)。
身份验证仅使用一个请求头——无需 OAuth 或浏览器重定向:
# For MCP (hosted)
Authorization: Bearer ftir_your_key_here
# For REST API
X-API-Key: ftir_your_key_here
MCP 工具
托管的 MCP 端点 https://ftir.fun/mcp 提供七种工具。
analyze_ftir_spectrum
在 FTIR 红外光谱库中搜索与单条未知光谱匹配的结果。支持峰值、自然语言查询或原始仪器文件。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
query | string | 否 | 自然语言 FTIR 请求——会自动提取诸如 "1730, 1600, 1250 cm-1" 的峰位置。 |
peaks | number[] | 否 | FTIR 峰位置,单位为 cm⁻¹(例如 [1736, 1379, 1241])。 |
file_base64 | string | 否 | Base64 编码的 FTIR 仪器文件。支持 28 种以上格式:Thermo .spa/.spc、Bruker .opus、PerkinElmer .sp、JCAMP-DX .jdx/.dx、CSV、Excel 等。 |
filename | string | 否 | 用于格式检测的原始文件名(例如 "sample.spa")。 |
top_k | integer | 否 | 返回的排序候选项数量(1–50,默认 15)。 |
tolerance_cm1 | integer | 否 | 峰匹配容差,单位为 cm⁻¹(1–30,默认 8)。 |
**返回:**按排名排列的候选材料,包含光谱库相似度评分、与已发表文献(DOI)关联的逐峰证据、置信度等级和不确定性说明。
示例
Identify this infrared spectrum: peaks at 2915, 1715, 1450, 1260, 1090 cm-1.
explain_peaks
无需搜索完整的光谱库,即可解析一个或多个 FTIR 红外峰。适用于快速判定官能团和解释波数。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
query | string | 否 | 关于峰的自然语言问题,例如:"What does 1715 cm-1 indicate in an ester?" |
peaks | number[] | 否 | 一个或多个 FTIR 峰位,单位为 cm⁻¹。 |
sampling_mode | string | 否 | ATR、Thin Film、KBr Pellet、Nujol Mull 等。 |
返回: 结构化的峰解析结果,包含官能团判定,并在可用时标注不确定性。
示例
Use FTIR.fun to explain the infrared peaks at 1715 and 3300 cm-1 in ATR mode.
parse_ftir_spectrum
将 base64 编码的 FTIR 仪器文件解析为对齐的波数-强度曲线点,并自动检测峰位。可用于在分析前提取原始光谱数据。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
file_base64 | string | 是 | base64 编码的 FTIR 仪器文件。 |
filename | string | 是 | 用于检测格式的原始文件名(例如:"sample.spa")。 |
返回: 对齐的 (wavenumber, intensity) 数据点,以及检测到的峰位列表,单位为 cm⁻¹。
find_spectra
按物质名称、CAS 号、光谱编号或关键词查找 FTIR 库中的参考光谱。返回原始光谱曲线数据,以便直接比较。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
query | string | 是 | 物质名称(例如:"polypropylene")、CAS 号、FTIR 库 NUM 或关键词。 |
limit | integer | 否 | 返回的参考光谱数量(1–20,默认值为 10)。 |
返回: 匹配的参考光谱,包含 num、名称、CAS、峰标记和库曲线数据。
示例
Find FTIR reference spectra for polyethylene terephthalate (PET).
submit_ftir_report
将 base64 编码的 FTIR 光谱文件提交给完整的 FTIR.fun 三轴鉴定工作流,即网站上使用的多阶段分析流程。立即返回 task_id 和 result_num;使用 get_ftir_report_status 轮询以获取已完成的报告。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
file_base64 | string | 是 | base64 编码的 FTIR 仪器文件。 |
filename | string | 是 | 用于检测格式的原始文件名。 |
返回: { task_id, result_num }
get_ftir_report_status
轮询通过 submit_ftir_report 提交的报告状态。处理完成后,响应会包含完整的结构化 report_view(与 FTIR.fun 网站显示的数据相同)以及可分享的 report_url。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
task_id | string | 是 | submit_ftir_report 返回的 task_id。 |
返回: 状态字段;完成后还会包含 report_view 和 report_url。
fetch_result
按报告编号获取历史 FTIR.fun 红外分析结果。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
result_num | string | 是 | FTIR.fun 报告/结果编号。 |
language_code | string | 否 | 已存储结果上下文的显示语言(默认值为 en)。 |
返回: 结构化上下文,包含 report_url、headline、summary、report_view 和 result_context。
REST API
可使用 Python、JavaScript、R、MATLAB、Go 等任何语言直接调用 FTIR.fun。适用于 LIMS 集成、批量光谱处理工作流,或在自己的应用中添加红外光谱搜索功能。
完整 API 参考:https://ftir.fun/api-docs/
健康检查(无需密钥)
curl https://ftir.fun/health
# → {"status":"ok","service":"ftirfun-api"}
鉴定未知红外光谱——峰列表
curl -X POST https://ftir.fun/ftir/analyze_spectrum \
-H "X-API-Key: ftir_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"peaks": [2915, 1715, 1450, 1260, 1090],
"options": {"top_k": 10, "tolerance_cm1": 8}
}'
import requests
resp = requests.post(
"https://ftir.fun/ftir/analyze_spectrum",
headers={"X-API-Key": "ftir_your_key_here"},
json={
"peaks": [2915, 1715, 1450, 1260, 1090],
"options": {"top_k": 10, "tolerance_cm1": 8},
},
)
print(resp.json())
从仪器文件中识别
import base64, requests
with open("sample.spa", "rb") as f:
b64 = base64.b64encode(f.read()).decode()
resp = requests.post(
"https://ftir.fun/ftir/analyze_spectrum",
headers={"X-API-Key": "ftir_your_key_here"},
json={"file_base64": b64, "filename": "sample.spa"},
)
print(resp.json())
支持 28 种以上的仪器文件格式:Thermo .spa/.spc、Bruker .opus、PerkinElmer .sp、JCAMP-DX .jdx/.dx、CSV、Excel 等。
解释红外峰
curl -X POST https://ftir.fun/ftir/explain_peaks \
-H "X-API-Key: ftir_your_key_here" \
-H "Content-Type: application/json" \
-d '{"peaks": [1715, 2915], "sampling_mode": "ATR"}'
按名称或 CAS 搜索参考光谱
curl "https://ftir.fun/v1/search?q=polypropylene&limit=5" \
-H "X-API-Key: ftir_your_key_here"
MCP 客户端设置
托管的 MCP 端点无需本地安装。使用 https://ftir.fun/mcp 和 Bearer 令牌。
VS Code(GitHub Copilot Agent 模式)
在项目中创建 .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}"
}
}
}
}
打开命令面板 → MCP: List Servers → 选择 ftirfun → Start。
Claude Desktop / Claude Code
URL: https://ftir.fun/mcp
Header: Authorization: Bearer ftir_your_key_here
Claude Code 的单行设置:
claude mcp add --transport http ftirfun https://ftir.fun/mcp \
--header "Authorization: Bearer ftir_your_key_here"
Cursor
创建或编辑 ~/.cursor/mcp.json:
{
"mcpServers": {
"ftirfun": {
"url": "https://ftir.fun/mcp",
"headers": {
"Authorization": "Bearer ftir_your_key_here"
}
}
}
}
OpenAI Codex
[mcp_servers.ftirfun]
url = "https://ftir.fun/mcp"
http_headers = { Authorization = "Bearer ftir_your_key_here" }
Gemini CLI
编辑 ~/.gemini/settings.json:
{
"mcpServers": {
"ftirfun": {
"httpUrl": "https://ftir.fun/mcp",
"headers": {
"Authorization": "Bearer ftir_your_key_here"
}
}
}
}
任何支持远程 Streamable HTTP 服务的其他 MCP 客户端也可使用:将 URL 设为 https://ftir.fun/mcp,并发送 Authorization: Bearer <your key>。完整工具架构:server-card.json。
可自托管(本地封装器)
轻量级本地 MCP 封装器,可代理托管 API。提供相同的七种 FTIR 工具。
配置
export FTIRFUN_API_KEY="your-ftirfun-api-key"
# Optional:
export FTIRFUN_API_BASE_URL="https://ftir.fun"
export FTIRFUN_API_TIMEOUT_SECONDS="120"
本地运行(stdio)
python -m venv .venv
. .venv/bin/activate
pip install .
ftirfun-mcp
运行 Streamable HTTP
FTIRFUN_API_KEY="your-ftirfun-api-key" \
ftirfun-mcp --transport streamable-http --host 127.0.0.1 --port 8001
Docker
docker build -t ftirfun-mcp .
docker run --rm -p 8001:8001 -e FTIRFUN_API_KEY="your-ftirfun-api-key" ftirfun-mcp
工具边界
此 MCP 服务仅用于 FTIR 光谱库筛查。请勿将其用于非 FTIR 光谱分析、一般化学问答或认可实验室认证。
关于 FTIR.fun
FTIR.fun 是一个红外光谱分析云平台,供 52 个以上国家和地区的研究人员与工程师使用。它可快速访问持续更新的参考光谱库,其中包含 130,000 多条 FTIR 参考光谱,涵盖聚合物、添加剂、涂料、药物和工业化学品。
在 ftir.fun 上可以:
- 光谱库搜索 — 上传仪器文件或粘贴峰位;获取按相似度评分排序的匹配结果,并附有文献 DOI 引用
- AI 峰位解释 — 询问任意波数;获取由化学知识图谱支持的官能团归属
- 完整三轴报告 — 自动进行多阶段材料识别,并生成可分享的结果 URL
- 图像转 CSV 提取 — 将已发表图表中的光谱曲线数字化
- 配方工作台 — 多组分配方逆向分析和未知混合物分析
分步设置指南:https://ftir.fun/ai-integration/
注册目录和链接
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
