開發者與AI整合
將FTIR.fun連接到任何AI工具或應用程式
讓您的 AI 助手或您自行撰寫的程式碼直接存取 320,000+ 個參考光譜、知識圖譜峰值推理,以及以文獻為依據的解讀。選擇三種連接方式之一——適用於 AI 助手的 MCP、適用於程式碼的 REST API,或適用於無程式碼平台的現成 Skill。以下每種方式都提供為首次使用者撰寫的逐步操作說明。
開始前 — 取得你的 API 金鑰
MCP 與 REST API 均使用同一個 FTIR.fun API 金鑰。Coze/Doubao 使用由外掛發布者設定的服務金鑰,因此終端使用者可透過外掛操作,而無需貼上個人金鑰。取得個人金鑰約需一分鐘:
-
登入 FTIR.fun
建立免費帳戶(新帳戶包含免費試用點數)。
-
開啟 API 金鑰儀表板
前往 帳戶 → API 金鑰 然後點擊「產生」。
-
檢視或複製您的 API 金鑰
完整金鑰(以 ftir_ 開頭)仍可在 API Keys 儀表板中取得。您可以返回該處檢視、複製或撤銷它。
步驟 1 — 哪種連線適合你?
三者都連接至相同的引擎:320,000+ 個光譜、知識圖譜推理,以及文獻引用。您只需要選擇一種。請選擇符合您工作方式的路徑;對 AI 助理使用者而言,MCP 是一個便利的選項。
MCP路徑 A — MCP 伺服器
MCP(模型上下文协议)是 AI 助手调用外部工具的标准方式。FTIR.fun 运行托管式 MCP 服务器——无需本地安装。您只需在 AI 客户端中添加一项简短配置,输入 API 密钥,您的助手即可获得该密钥所启用的 FTIR.fun 工具。
✓
登入方式(請先閱讀):
FTIR.fun 使用您帳戶的 API 金鑰進行驗證,該金鑰以 Authorization: Bearer 標頭發送。沒有 OAuth 瀏覽器登入,也沒有單獨的授權頁面。如果客戶端嘗試打開授權網頁,則表示它使用了過時的配置 — 請參閱下面的疑難排解。
選擇您的客戶端以獲取確切步驟:
VS
在 VS Code 中設定 FTIR.fun MCP
需要最新版 VS Code 並在 Agent 模式下使用 GitHub Copilot Chat。
-
打開您的專案,然後建立檔案 .vscode/mcp.json
在您的專案資料夾中,建立一個名為 .vscode 的資料夾(如果不存在),並在其中建立一個名為 mcp.json 的檔案。希望 FTIR.fun 在每個專案中都可使用?將相同的 JSON 放入您的使用者層級設定中:開啟命令面板,搜尋「偏好設定:開啟使用者設定 (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 工具目錄。API 金鑰控制可呼叫的功能。
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 REST 服務——Python、JavaScript、R、MATLAB、Java、Go。您的 API 金鑰控制可用的功能,從識別未知光譜與解釋峰,到參考資料查詢、報告、LIMS 工作流程及其他由帳戶啟用的操作。
-
檢查 REST 服務是否在線
健康檢查端點是公開的且不耗費點數。它應返回以下 JSON。如果您看到 HTML 頁面或超時,服務可能暫時不可用。
curl
curl https://ftir.fun/health
預期回應
{"status":"ok","service":"ftirfun-api"}
-
使用 X-API-Key 標頭進行驗證
每個受保護的端點都需要在 X-API-Key 標頭中提供您的金鑰。其帳戶規則與網頁應用程式相同:點數、訂閱及速率限制。如果金鑰錯誤或缺失,您將收到 401 JSON 錯誤;如果其能力範圍不包含該操作,您將收到 403 capability_not_enabled 回應。
驗證標頭
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文檔.
💡
提示:POST /ftir/analyze_spectrum 是進行光譜識別的單一建議進入點。較舊的 /v1/search、/ftir/identify_material 和 /ftir/match_library_topk 端點仍作為相容性別名提供——新的整合只需要 analyze_spectrum。
關鍵參數參考
解析儀器檔案(兩種方式)
/parse-spectrum 端點接受多部分檔案上傳或包含 base64 編碼內容的 JSON 主體。兩者都返回相同的回應:檢測到的峰值和完整曲線。
選項 A:多部分檔案上傳
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
}
轉換原生儀器文件(CSV、JDX或JSON)
當您需要規範曲線、源元數據、來源記錄和明確保留警告時,使用原生轉換器。它在metadata.raw中保留原始解析器的元數據,並將轉換的工件作為content_base64返回。
多部分上傳
curl -X POST "https://ftir.fun/native-spectrum/convert?output_format=jdx" \
-H "X-API-Key: ftir_your_key_here" \
-F "file=@/path/to/sample.spa"
包含 base64 的 JSON
curl -X POST https://ftir.fun/native-spectrum/convert \
-H "X-API-Key: ftir_your_key_here" \
-H "Content-Type: application/json" \
-d '{"file_base64":"...","filename":"sample.spa","output_format":"json"}'
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 Actions
Schema 已就緒
構建一個自訂 GPT,用於分析光譜、解釋峰並查找參考光譜。將我們的 OpenAPI schema 匯入作為一個 Action。需要 ChatGPT Plus。
匯入 URL
https://ftir.fun/openapi.platform.yaml
在 GPT 編輯器中:Configure → Actions → Import from URL。將驗證設定為 API Key(標頭 X-API-Key)。
Df
Dify
自訂工具 · OpenAPI
Schema 已就緒
通過匯入相同的 OpenAPI schema,將 FTIR.fun 新增為您 Dify 應用和代理中的自訂工具。
匯入 URL
https://ftir.fun/openapi.platform.yaml
在 Dify 中:Tools → Create Custom Tool → 匯入 schema,設定 X-API-Key 標頭。
Gm
Google Gemini API
函式宣告(SDK 整合)
就緒
使用現成的函式宣告,從 Gemini API 的函式呼叫流程中呼叫 FTIR.fun。
声明涵盖已发布的操作,包括解析和异步完整报告。服务器会执行每个 API 密钥所启用的功能。
您的 AI 實際上能做什麼
統一的 MCP 與 REST 服務公開相同的 FTIR.fun 操作目錄。API 金鑰可能僅具較小的功能範圍,而平台特定的宣告則可刻意僅發布其中一部分。以下操作共用相同的 FTIR.fun 服務。
🎓
學術峰歸屬 —
对于组成已知的样品,高级 FTIR.fun REST/MCP 功能会为每个测得的峰分配文献可追溯的证据。每次提交费用为 30 点数;拥有有效订阅时则免费;状态查询不收费。
自然地描述任務(例如:「為此光譜指定所有量測到的 FTIR 峰值;樣品已知為 PMMA;將報告寄給我」)——用戶端會提供檔案,您無需自行建構 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不是有效值。
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": "instrument_import",
"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", "status_url": "https://ftir.fun/ftir/reports/rpt_abc123..."}
-
輪詢
每 5–10 秒呼叫一次
get_ftir_report_status (MCP) 或 GET /ftir/reports/{task_id},直到 completed 為 true。完成後的回應包含 report_url、一個 report 物件(結構化結果內容,其中包含詳細的 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 的程式碼範例。