API 與 MCP
讓你的 AI 直接呼叫這些計算器
同一組計算器,兩種接法:遠端 MCP(Claude Code、Cursor、Claude Desktop 加一個網址就能用),或 REST API(curl/你自己的程式)。只收數字參數,每個結果都附上工具頁的「適用範圍」原文。
先講清楚的幾件事
- 計算在我們的伺服器上跑,這和工具頁不同(工具頁的計算在你的瀏覽器裡)。所以 API 只收一組數字,不收網表、不收檔案,也不提供 SPICE 或 3D 全波模擬。
- 我們不記呼叫的內容,只記每個帳號每天呼叫了幾次,以及金鑰的雜湊與前 12 碼(見隱私權政策)。
- 參數範圍比工具頁窄(例如阻抗:線寬、間距對介質厚度只收 0.6~2.5/0.7~2.5;間距小於介質厚度時線寬最多 2 倍,線寬小於介質厚度時間距最多 2 倍),因為伺服器上的計算有 CPU 上限;超出範圍回 400 並說明哪一格,不會悄悄算一個不準的值。
- 每個回傳的
scope欄位是工具頁「適用範圍」框的原文;note欄位寫 API 這版有哪些部分沒做。引用結果時請連同適用範圍一起引用。
1. 取得 API 金鑰
到帳號頁,在「API 金鑰」按「產生新金鑰」。金鑰長得像 csk_…,只會顯示一次(我們只存雜湊),可以隨時撤銷,最多 5 把有效。需要先驗證 email,而且試用中、已訂閱或永久帳號才能產生。
額度:試用帳號每天 50 次;訂閱中或永久帳號每天 2,000 次(公平使用上限);台北時間午夜重置。參數錯誤(400)不扣額度。試用結束又沒訂閱,金鑰會被拒絕(403),訂閱後同一把馬上恢復。
2. 在 Claude、Cursor 加上這個 MCP
網址 https://circuit-sim.enscon.ai/mcp,initialize、tools/list 不用金鑰(目錄與掃描器可直接讀工具清單,每個來源每分鐘 30 次);呼叫計算器(tools/call)要用同一把金鑰(Authorization: Bearer csk_…),沒帶會回 MCP 錯誤 -32001。把下面的 csk_你的金鑰 換成你的。
Claude Code(一行)
claude mcp add --transport http circuit-sim https://circuit-sim.enscon.ai/mcp --header "Authorization: Bearer csk_你的金鑰"
Cursor(~/.cursor/mcp.json)
{ "mcpServers": { "circuit-sim": {
"url": "https://circuit-sim.enscon.ai/mcp",
"headers": { "Authorization": "Bearer csk_你的金鑰" } } } }
Claude Desktop(claude_desktop_config.json,透過 mcp-remote)
{ "mcpServers": { "circuit-sim": { "command": "npx",
"args": ["-y", "mcp-remote", "https://circuit-sim.enscon.ai/mcp", "--header", "Authorization:${AUTH}"],
"env": { "AUTH": "Bearer csk_你的金鑰" } } } }
各家客戶端的設定格式會改版;以上是我們寫文件當下的寫法,若你的版本不同請以該客戶端的官方文件為準。協定面我們實測過 initialize、tools/list、tools/call(Streamable HTTP、無狀態、回 JSON)。
設定好之後直接對 AI 說:「我的 PCB 是 4 mil 介質、εr 4.2,差動對線寬 6 mil、間距 6 mil,Zdiff 多少?」(單位請它換成 mm)。它會呼叫 impedance 並引用適用範圍。
3. REST API
curl -s https://circuit-sim.enscon.ai/api/v1/calc/impedance \
-H "Authorization: Bearer csk_你的金鑰" -H "content-type: application/json" \
-d '{"kind":"ms","mode":"diff","w":0.15,"s":0.15,"h":0.1,"er":4.2}'
回傳(節錄):
{ "tool": "impedance",
"inputs": { "kind": "ms", "mode": "diff", "w": 0.15, "s": 0.15, "h": 0.1, "er": 4.2, "t": 0.035, … },
"result": { "zdiff_ohm": 94.101, "zcomm_ohm": 29.946, "zodd_ohm": 47.05, "zeven_ohm": 59.892, "eeff_odd": 2.6115, "eeff_even": 3.1852 },
"scope": { "title": "這個計算器怎麼算、準到哪", "text": "…(工具頁適用範圍框原文)", "source": "…" },
"note": "API 只算微帶線(無綠漆)與對稱參數的帶狀線,…" }
沒帶的參數用預設值(跟工具頁預設一致)。GET /api/v1/tools(不用金鑰)回傳全部計算器與參數結構(JSON Schema)。
計算器
| 名稱 | 算什麼 | 備註 |
|---|---|---|
impedance | 微帶線/帶狀線的差動阻抗(Zdiff、Zcomm、奇偶模)或單端阻抗,含銅厚(2D 電場數值解) | 不含綠漆、蝕刻梯形、上下板材不同 |
crosstalk | 近端串音係數 kb、飽和比例、遠端係數 | 只有解析式的部分,不含時域波形 |
diff_skew | 長度差換成 ps,對照 USB3/PCIe/DP/HDMI 限制 | 限制值附原廠文件出處 |
xtal_load_cap | 負載電容 CL、頻率偏移 ppm、增益餘裕、驅動功率、剛好對上規格的電容值 | |
output_voltage_tolerance | 回授分壓的輸出電壓:最壞情況、RSS、可選蒙地卡羅 | 蒙地卡羅固定亂數種子,可重現 |
inrush_current | 負載開關控速或直接接電容的湧入電流、能量、I²t | 不含波形與保險絲判語 |
錯誤
| 狀態 | error.code | 意思 |
|---|---|---|
| 400 | invalid_params/bad_json | 參數超出範圍、不認得、型別錯;field 與 message 會說是哪一格。不扣額度 |
| 401 | unauthorized | 沒帶金鑰、格式不對、金鑰無效或已撤銷 |
| 403 | subscription_required | 試用已結束且沒有有效訂閱 |
| 404 | unknown_tool | 沒有這個計算器(回應列出可用的) |
| 429 | daily_limit/rate_limited | 今天的額度用完(回應有重置時間),或同一來源每分鐘超過 60 次 |
有問題寄 [email protected]。