記錄一般開發環境下,與 InsForge 後端溝通的各種連線方式。目前已驗證 InsForge CLI 路徑(例如 npx @insforge/cli db tables、npx @insforge/cli db query "SELECT ..."), 後續再逐步補上 SDK、REST、MCP 等其他連線方式的觀察與限制。
npx @insforge/cli 即可列表、查詢,不需要打開網頁後台。.mcp.json 加 @insforge/mcp, 靠 API_KEY + API_BASE_URL 指向雲端專案,AI Agent 即可直接操作後端。| 方式 | 指令/用法範例 | 適用場景 | 限制/觀察 |
|---|---|---|---|
| CLI(已驗證) | npx @insforge/cli db tablesnpx @insforge/cli db query "SELECT count(*) FROM orders" | 後端管理、臨時查詢、Migration、RLS 設定 | 需在 Terminal 操作;連線資訊來自本機環境 |
| MCP(已驗證設定方式) | 在 MCP 設定加 insforge server(npx -y @insforge/mcp@latest), env 帶 API_KEY + API_BASE_URL | 讓 AI Coding Agent(Claude Code / Cursor 等)直接呼叫 InsForge 後端 | 需把專案的 API Key 與 Base URL 寫進 MCP 設定;首次連上可用 fetch-docs 驗證(完整工具清單見下方表格) |
InsForge 後台的「Connect via MCP」面板會給兩步驟:
{
"mcpServers": {
"insforge": {
"command": "npx",
"args": ["-y", "@insforge/mcp@latest"],
"env": {
"API_KEY": "ik_7a4e81d565d2e8c058260062514b11c8",
"API_BASE_URL": "https://ddzb7pwa.us-east.insforge.app"
}
}
}
}觀察:MCP 路徑跟 CLI 一樣,最終是靠 API_KEY + API_BASE_URL 指向雲端那個專案, 所以同一份 MCP 設定搬到任何專案的 .mcp.json 都會連到同一個後台。 這也呼應了下一段「後端與資料夾解耦」的觀察。
全域 vs 專案級的選擇:依 CLAUDE.md 全域偏好,Insforge MCP 必須放在專案級的 .mcp.json, 不要放全域;每個有 InsForge 後台的專案根目錄要有自己的 .mcp.json,避免不同專案誤用到同一個後台。
兩家 MCP 在「連線層級」上有根本差異,不只是工具清單長短:
| 項目 | Supabase MCP | InsForge MCP |
|---|---|---|
| 認證方式 | 個人 access token(綁帳號) | 專案的 API_KEY + API_BASE_URL(綁專案) |
| 可見範圍 | 整個帳號 → 多組織 → 多專案 | 只看得到「這一個」後端 |
| 入口工具 | list_organizations / list_projects(先選樓層再選房間) | get-backend-metadata(一進去就是那個房間,沒得選) |
| 類比 | 公司門禁卡 — 可走遍所有組織與專案 | 單一房間的鑰匙 — 進去就是那個房間 |
設計上的兩個 trade-off:
API_BASE_URL, 所以 skill 流程裡的「Phase 1 確認專案」幾乎是橡皮圖章——沒有第二個選項可選。 這也是為什麼 B5 的 insforge-init 比 supabase-init 的 Phase 1 還弱:Supabase 版要列表格停下來等選,InsForge 版只是讀 metadata 確認一下。連上 InsForge MCP 後,AI Agent 可以使用的工具共 17 個,分為 6 大類:
| 分類 | 工具名 | 用途 |
|---|---|---|
| 資料庫與資料操作 | run-raw-sql | 執行原始 SQL(需 admin 權限;可建表、插入資料、跑 DDL,會直接改動資料,使用要小心) |
bulk-upsert | 從 CSV 或 JSON 大量插入或更新資料(支援以 unique key 做 upsert) | |
get-table-schema | 查詢特定資料表的完整結構(欄位、RLS、索引、約束) | |
| 檔案存儲 (Storage) | list-buckets | 列出所有儲存空間(Buckets) |
create-bucket | 建立新的儲存空間 | |
delete-bucket | 刪除儲存空間 | |
| Edge Functions (雲端函式) | create-function | 建立新的 edge function(執行於 Deno runtime;程式碼需先寫入檔案以便版本控管) |
update-function | 更新現有 edge function 的程式碼或設定 | |
get-function | 讀取特定 edge function 的詳細資訊與程式碼 | |
delete-function | 永久刪除 edge function | |
| 專案部署與初始化 | download-template | 新專案的強制第一步:下載官方預設範本到暫存目錄,下載後需用提供的指令複製到目前目錄 |
create-deployment | 把資料夾的程式碼部署到雲端(支援平行直傳,舊版專案 fallback 為 zip 上傳) | |
| 文件與元數據 | fetch-docs | 取得 InsForge 文件:instructions 為後端必備設定(MANDATORY FIRST); 也可指定 database / auth / storage / functions / AI 等特定 SDK 文件 |
fetch-sdk-docs | 取得特定 feature × 語言組合的 SDK 文件。 Feature: db / storage / functions / auth / ai / realtime; 語言: typescript / swift / kotlin / rest-api | |
get-backend-metadata | 索引(list out)目前後端的所有元數據 | |
| 安全與調試 | get-anon-key | 產生永不過期的匿名 JWT token(需 admin API key;給 client-side 需要 public access 的場景) |
get-container-logs | 取得特定 container / service 的最新日誌,用於除錯 |
觀察:MCP 工具涵蓋了 DB CRUD、Storage、Edge Functions、部署、文件查詢、debug log 等 幾乎整條後端鏈路,比 CLI 範圍更廣(CLI 主要落在 db query 與 link 綁定)。 這代表 AI Agent 在 MCP 連通後,幾乎可以脫離後台 UI 完成所有日常後端任務。
InsForge 的後端是雲端化的,不綁在這個資料夾,但它確實屬於某一個特定的 InsForge 專案(Project)。 可以從兩個角度理解:
https://ddzb7pwa....appANON_KEY):一串長編碼insforge link --project-id 3f4eed73..., 等於把目前資料夾與雲端那個「抽屜」連起來。 之後開新專案時,可以選擇繼續連到同一個抽屜(共用資料),也可以建立新的抽屜。project-id 指向哪個抽屜。insforge link 寫入專案;之後 npx @insforge/cli 系列指令會讀這份綁定。