模型 / 資料集
dosco/graphjin avatar
dosco/graphjin

GraphJin:為 AI 代理提供受治理的 GraphQL 與 MCP 層

此專案圍繞「One governed graph for AI agents, GraphQL + MCP over your databases, files, APIs, and code.」建置,聚焦實際場景的開源實作,提供可重用的工具鏈與整合方式。

3,167 個 Star195 個 ForkGoApache-2.0

秒懂

它是什麼?
GraphJin 將 GraphQL 編譯為資料庫查詢,並透過 MCP 為 AI 代理提供受治理的存取表面,包含內建代理、目錄優先探索和來源模式存取控制。
適合誰用?
GraphJin 是一個用 Go 編寫的編譯器和執行時期,將資料庫、檔案、原始碼和工作流程視為一個可查詢的圖。README 將代理整合作為主要情境,同時該專案仍然是一個通用的 GraphQL 服務。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 4 天前。
用什麼語言寫的?
主要是 Go(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

跨資料庫、檔案和程式碼的統一治理圖

GraphJin 是一個用 Go 編寫的編譯器和執行時期,將公司既有的系統(資料庫、資料倉儲、檔案、原始碼、工作流程、中繼資料和安全策略)呈現為一個統一治理的圖。它回應 GraphQL 查詢,並透過 MCP(模型上下文協定)公開同一個圖,使 AI 代理能夠探索模式、驗證查詢、執行已核准的工作,並接收帶有證據的回應。README 將代理使用情境描述為一切匯合點,同時指出 GraphJin 仍然可以作為 GraphQL 到資料庫的編譯器、Go 函式庫、獨立 API 服務、REST/OpenAPI 閘道和即時訂閱伺服器使用。

從 README 的安裝入口開始,先檢查 graphjin 的命令、目錄與輸出;素材沒有寫出的預設行為不在本文補猜。 One governed graph for AI agents, GraphQL + MCP over your databases, files, APIs, and code.。README 明確列出專案名稱 dosco/graphjin、主要語言 Go、授權 Apache-2.0。 核對 dosco/graphjin 時,應把 README 明列的設定鍵、端點或檔案名稱記入測試紀錄,這些記號能區分本專案與其他同類工具。 若要評估 graphjin 是否適合你的流程,先在隔離環境執行素材列出的最小路徑,觀察它產生的資料、日誌或介面,再檢查失敗時的錯誤訊息。

內建代理與目錄優先探索

GraphJin 包含一個伺服器端代理,可透過 POST /api/v1/agent 或 ask_graphjin_agent MCP 工具以單一指令呼叫。該代理自己執行探索迴圈:搜尋目錄、檢查關係和範例、驗證查詢、執行已核准的工作,並傳回包含狀態、答案、資料、證據、動作和下一步的型別化答案。代理以呼叫者的權限執行,因此核心角色和資料列層級安全仍然生效。README 描述了一種機器可操作的拒絕格式,包含結構化代碼和解除封鎖的步驟。它也指出沒有依請求的代理模式;read_only 旗標會拒絕修改,否則由現有存取控制決定可以執行什麼。

核對 dosco/graphjin 時,應把 README 明列的設定鍵、端點或檔案名稱記入測試紀錄,這些記號能區分本專案與其他同類工具。 One governed graph for AI agents, GraphQL + MCP over your databases, files, APIs, and code.。README 明確列出專案名稱 dosco/graphjin、主要語言 Go、授權 Apache-2.0。 若要評估 graphjin 是否適合你的流程,先在隔離環境執行素材列出的最小路徑,觀察它產生的資料、日誌或介面,再檢查失敗時的錯誤訊息。 授權為 Apache-2.0;把它放入產品、重新分發或修改時,應依倉庫 LICENSE 檢查著作權、通知與專利條款,不能把授權名稱當作安全審查。

安裝、示範與首次代理呼叫

GraphJin 透過 npm、Homebrew、Scoop、Docker 以及 .deb/.rpm 發布套件分發二進位檔。最簡單的試用方式是執行 graphjin serve --demo,它會在 localhost:8083 啟動一個基於 SQLite 的 SaaS 示範,包含 Web UI、GraphQL 端點、REST API、工作流程和 MCP 端點。在 ./.env 中放入模型 API 金鑰後,同一命令會啟用內建代理。README 展示了對 /api/v1/agent 的 curl 呼叫,指令如「哪個帳戶最有風險流失?」,並說明答案以 {status, answer, data, evidence, actions, next} 的形式傳回。倉庫的 examples/ 目錄還包含更大的示範垂直情境,包括一個網店和一個咖啡烘焙坊,每個都有獨立的示範狀態和煙霧測試套件。

若要評估 graphjin 是否適合你的流程,先在隔離環境執行素材列出的最小路徑,觀察它產生的資料、日誌或介面,再檢查失敗時的錯誤訊息。 One governed graph for AI agents, GraphQL + MCP over your databases, files, APIs, and code.。README 明確列出專案名稱 dosco/graphjin、主要語言 Go、授權 Apache-2.0。 授權為 Apache-2.0;把它放入產品、重新分發或修改時,應依倉庫 LICENSE 檢查著作權、通知與專利條款,不能把授權名稱當作安全審查。 README 未提供的效能數字、相容矩陣或維運承諾,本文一律標記為未知。版本快照為 master,來源仍應以 dosco/graphjin 的倉庫和 release 頁面為準。

透過 MCP 將 GraphJin 新增到 AI 用戶端

對於本機開發,graphjin mcp add 命令可以一步設定 Codex 或 Claude 用戶端。它會標準化伺服器 URL、探測認證並安裝正確的設定;文件中提供了 graphjin mcp add codex、graphjin mcp add claude 和 graphjin mcp add all http://localhost:8080 等命令。位於 /api/v1/mcp 的 MCP 端點使用 Streamable HTTP,因此 Claude 應使用 --transport http 新增。對於啟用了 OAuth 的託管伺服器,用戶端可以透過 URL 新增伺服器並自行處理登入;GraphJin 提供 OAuth 受保護資源中繼資料、授權伺服器中繼資料和 DCR 探索。README 也描述了一種舊的 auth_login 裝置碼流程,graphjin mcp add 會自動偵測該流程,並儲存一個無憑證的本機代理設定。

授權為 Apache-2.0;把它放入產品、重新分發或修改時,應依倉庫 LICENSE 檢查著作權、通知與專利條款,不能把授權名稱當作安全審查。 One governed graph for AI agents, GraphQL + MCP over your databases, files, APIs, and code.。README 明確列出專案名稱 dosco/graphjin、主要語言 Go、授權 Apache-2.0。 README 未提供的效能數字、相容矩陣或維運承諾,本文一律標記為未知。版本快照為 master,來源仍應以 dosco/graphjin 的倉庫和 release 頁面為準。 閱讀 dosco/graphjin 的 README 時,請把安裝命令、設定檔路徑和輸出格式分開記錄,這能在升級後快速定位行為差異。

CLI 認證與伺服器設定

CLI 將伺服器 URL 和權杖儲存在 ~/.config/graphjin/client.json 單一設定檔中,權限為 0600。沒有 --server 或 --token 旗標;graphjin cli setup 指向伺服器,當啟用內建登入時,會執行 RFC 8628 裝置碼流程,列印驗證 URL 和短代碼,開啟瀏覽器,並從 OIDC 身分提供者接收 30 天的 JWT。README 提供了一個啟用 auth_login 的 YAML 範例,包含 audience_graphjin、OIDC 發行方和可選的 allowed_domains 清單。設定完成後,graphjin cli health、graphjin cli query list 和 graphjin cli schema tables 等命令無需額外參數即可運作。README 也指出,成功的認證會記錄在結構化日誌中,包括經過驗證的 email 和 name 宣告(如果存在)。

README 未提供的效能數字、相容矩陣或維運承諾,本文一律標記為未知。版本快照為 master,來源仍應以 dosco/graphjin 的倉庫和 release 頁面為準。 One governed graph for AI agents, GraphQL + MCP over your databases, files, APIs, and code.。README 明確列出專案名稱 dosco/graphjin、主要語言 Go、授權 Apache-2.0。 閱讀 dosco/graphjin 的 README 時,請把安裝命令、設定檔路徑和輸出格式分開記錄,這能在升級後快速定位行為差異。 對 graphjin 的實際評估應針對它宣稱處理的輸入建立小型案例,逐項核對成功結果、錯誤結果和權限邊界。

GraphJin 如何編譯並公開模式

README 描述了七個步驟:連線到資料庫並自動讀取模式,從外鍵發現關係,透過內建的 gj_* 資料表公開中繼資料,透過 CodeSQL 將原始碼索引到受管理的 SQLite 資料庫中,公開 MCP 工具,執行鏈式 MCP 工具的 JavaScript 工作流程,以及將每個請求編譯為一條最佳化的 SQL 查詢。它聲稱沒有解析器、沒有 ORM、沒有 N+1 查詢。內建目錄 gj_catalog 根據部署模式預設建立,不需要來源條目。CodeSQL 作為一種來源類型出現,設定項指向一個資料夾;GraphJin 使用 tree-sitter 在 config/codesql 下建立 SQLite 快取,在重新啟動時更新,並在開發時監視變化。針對 gj_code 的查詢可以選取檔案、符號、參考、匯入、資料庫參考和其他已索引的項目。

閱讀 dosco/graphjin 的 README 時,請把安裝命令、設定檔路徑和輸出格式分開記錄,這能在升級後快速定位行為差異。 One governed graph for AI agents, GraphQL + MCP over your databases, files, APIs, and code.。README 明確列出專案名稱 dosco/graphjin、主要語言 Go、授權 Apache-2.0。 對 graphjin 的實際評估應針對它宣稱處理的輸入建立小型案例,逐項核對成功結果、錯誤結果和權限邊界。 素材只支持對 graphjin 已列功能作出描述;沒有文件證據的整合方式、效能保證和安全結論均不列入採用依據。

查詢能力、訂閱與檔案系統表

GraphJin 支援帶過濾器的標準 GraphQL 查詢、巢狀關係、聚合和變更。README 展示了 @running、@moving、@previous 和 @rank 等分析指令,用於執行總計和移動平均,以及 Postgres/SQLite 的單列插入 on_conflict: get 策略。空間查詢使用 st_dwithin 加上一個點和距離。即時訂閱可透過 WebSocket 或 SSE 使用;對於支援批次處理的資料庫,GraphJin 用一條資料庫查詢處理許多訂閱者,而不是每個訂閱者一條。檔案系統表將本機、S3 和 GCS 物件儲存公開為普通 GraphQL 表,帶有預簽章 URL,並提供與資料庫表相同的查詢介面。README 也介紹了透過 multipart 請求進行檔案上傳,並可選地串流傳輸到檔案系統表。

對 graphjin 的實際評估應針對它宣稱處理的輸入建立小型案例,逐項核對成功結果、錯誤結果和權限邊界。 One governed graph for AI agents, GraphQL + MCP over your databases, files, APIs, and code.。README 明確列出專案名稱 dosco/graphjin、主要語言 Go、授權 Apache-2.0。 素材只支持對 graphjin 已列功能作出描述;沒有文件證據的整合方式、效能保證和安全結論均不列入採用依據。 從 README 的安裝入口開始,先檢查 graphjin 的命令、目錄與輸出;素材沒有寫出的預設行為不在本文補猜。

生產安全與授權條款

在生產環境方面,README 描述了查詢白名單,以便只允許執行已儲存的查詢;來源模式存取,帶有請求範圍的 identity 和來源層級讀寫預設值;透過 Auth0、Firebase 或 JWKS 端點的 JWT 認證;以及帶有 stale-while-revalidate 的 Redis 回應快取。它指向 SECURITY.md 以取得完整的安全模型。該倉庫以 Apache-2.0 授權;授權條款摘錄授予永久、全球範圍的版權授權和專利授權,但未提及保固或支援。README 沒有提供基準測試資料或獨立安全稽核,因此超出所述機制的任何效能或保證聲明都需要從其他來源驗證。

素材只支持對 graphjin 已列功能作出描述;沒有文件證據的整合方式、效能保證和安全結論均不列入採用依據。 One governed graph for AI agents, GraphQL + MCP over your databases, files, APIs, and code.。README 明確列出專案名稱 dosco/graphjin、主要語言 Go、授權 Apache-2.0。 從 README 的安裝入口開始,先檢查 graphjin 的命令、目錄與輸出;素材沒有寫出的預設行為不在本文補猜。 核對 dosco/graphjin 時,應把 README 明列的設定鍵、端點或檔案名稱記入測試紀錄,這些記號能區分本專案與其他同類工具。

編輯結論

GraphJin 是一個用 Go 編寫的編譯器和執行時期,將資料庫、檔案、原始碼和工作流程視為一個可查詢的圖。README 將代理整合作為主要情境,同時該專案仍然是一個通用的 GraphQL 服務。倉庫以 Apache-2.0 授權,README 沒有提供基準資料或超越所述機制的安全保證。 具體核對 graphjin 時,先執行 README 指出的安裝或啟動命令,查看專案指定的輸出與設定檔,再決定它是否符合你的資料、權限和部署條件。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記