開發者與AI整合
將FTIR.fun連接到任何AI工具或應用程式
讓您的AI助手或您自己的程式碼直接存取130,000多個參考光譜、知識圖譜峰值推理和文獻支援的解讀。選擇三種連接方式之一 — MCP用於AI助手,REST API用於程式碼,或現成的Skill用於無程式碼平台。每個路徑下方都有為初次使用者編寫的逐步說明。
開始前 — 取得你的 API 金鑰
MCP 和 REST API 皆使用一個 FTIR.fun API 金鑰。Coze/Doubao 使用外掛發布者設定的服務金鑰,因此終端使用者不需要貼上個人金鑰。取得個人金鑰約需一分鐘:
-
登入 FTIR.fun
如果沒有帳戶,請建立免費帳戶。新帳戶包含免費試用額度。
-
開啟 API 金鑰儀表板
前往 帳戶 → API 金鑰 然後點擊「產生」。
-
立即複製並儲存金鑰
完整的金鑰(以 ftir_ 開頭)僅顯示一次。請安全存放。如果遺失,只需重新產生一個。
⚠️
託管 MCP 伺服器僅接受在 FTIR.fun API Keys 儀表板中生成的帳戶 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
需要最新版 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 工具。
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 端點接受多部分檔案上傳或包含 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
}
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。
宣告涵蓋所有七個操作,包括解析和非同步完整報告。
您的 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 的程式碼範例。