/ 目錄 / 演練場 / Neo4j
● 官方 neo4j-contrib 🔑 需要你的金鑰

Neo4j

作者 neo4j-contrib · neo4j-contrib/mcp-neo4j

透過 Claude 以 Cypher 語言查詢並演進 Neo4j 圖形資料庫——包含結構描述自省,以及帶有安全防護的讀寫 Cypher 操作。

Neo4j Labs 的 MCP 套件涵蓋 Cypher 執行(mcp-neo4j-cypher)、結構描述管理,以及 Aura 管理功能。預設的 cypher 伺服器可針對任何 Bolt 端點執行讀寫 Cypher。建議搭配唯讀 Neo4j 使用者,以安全地探索正式環境。

為什麼要用

核心特性

即時演示

實際使用效果

neo4j.replay ▶ 就緒
0/0

安裝

選擇你的客戶端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "neo4j": {
      "command": "uvx",
      "args": [
        "mcp-neo4j-cypher"
      ]
    }
  }
}

開啟 Claude Desktop → Settings → Developer → Edit Config。儲存後重啟應用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "neo4j": {
      "command": "uvx",
      "args": [
        "mcp-neo4j-cypher"
      ]
    }
  }
}

Cursor 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "neo4j": {
      "command": "uvx",
      "args": [
        "mcp-neo4j-cypher"
      ]
    }
  }
}

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "neo4j": {
      "command": "uvx",
      "args": [
        "mcp-neo4j-cypher"
      ]
    }
  }
}

格式與 Claude Desktop 相同。重啟 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "neo4j",
      "command": "uvx",
      "args": [
        "mcp-neo4j-cypher"
      ]
    }
  ]
}

Continue 使用伺服器物件陣列,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "neo4j": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-neo4j-cypher"
        ]
      }
    }
  }
}

加入 context_servers。Zed 儲存後熱重載。

claude mcp add neo4j -- uvx mcp-neo4j-cypher

一行命令搞定。用 claude mcp list 驗證,claude mcp remove 移除。

使用場景

實戰用法: Neo4j

在 5 分鐘內探索陌生的圖形結構描述

👤 接手 Neo4j 資料庫的工程師或分析師 ⏱ ~15 min beginner

何時使用: 你接手了一個沒有文件的圖形資料庫,需要在撰寫有效查詢之前,先建立對它的基本認識。

前置條件
  • Neo4j Bolt URL 及使用者帳號/密碼NEO4J_URI=bolt://host:7687NEO4J_USERNAMENEO4J_PASSWORD
  • 建議使用唯讀使用者進行探索CREATE USER claude SET PASSWORD '...' SET ROLES reader
步驟
  1. 取得結構描述概覽
    呼叫 get_neo4j_schema,摘要說明節點標籤、關係類型,以及最常見的 (label)-[rel]->(label) 模式。✓ 已複製
    → 包含範例三元組的結構描述摘要
  2. 抽樣具代表性的節點
    針對最常見的 3 個標籤,各執行 MATCH (n:Label) RETURN n LIMIT 3,並描述每個標籤所代表的語意。✓ 已複製
    → 各標籤的語意描述
  3. 繪製可能的 ER 模型
    根據結構描述與抽樣結果,以文字描述這個圖形的「實體」故事:主要物件是什麼?與它連結的有哪些?哪些是週邊節點?✓ 已複製
    → 清晰的領域模型描述

結果: 一份可與原始作者驗證的單頁領域模型。

注意事項
  • 對小型圖形抽樣可能產生誤導性的模式 — 同時執行 MATCH (n)-[r]->() RETURN type(r), count(*) 以了解哪些關係佔主導地位
搭配使用: filesystem

撰寫圖形查詢以偵測詐欺環

👤 風控或詐欺分析師 ⏱ ~40 min advanced

何時使用: 你懷疑跨帳號存在共用裝置或共用地址的詐欺環。

前置條件
  • 圖形中含有 User、Device、Address、Payment 節點及 :USED、:LIVES_AT、:PAID 關係 — 典型的詐欺圖形結構
步驟
  1. 找出共用裝置
    找出過去 30 天內被 3 個以上不同使用者使用的裝置,回傳 device_id、user_id 清單,以及每組的最後使用時間戳記。✓ 已複製
    → 詐欺環候選名單
  2. 依連通分量大小評分
    使用 GDS 或純 Cypher,計算 User-(:USED)-Device-(:USED)-User 的連通分量,回傳前 10 大分量(依大小排序)。✓ 已複製
    → 可疑的群集
  3. 產出可執行的清單
    針對每個前幾大群集,列出不重複的使用者、總交易金額,以及最早與最晚的活動時間,並將金額超過 $10k 的群集標記為高優先審查。✓ 已複製
    → 分析師審查佇列條目

結果: 一份包含完整 Cypher 的優先詐欺審查佇列。

注意事項
  • 樸素遍歷在樞紐節點(例如有 1 萬個使用者的公共 Wi-Fi 裝置)上會爆炸 — 在遍歷前限制深度,並依節點度數過濾掉樞紐節點
搭配使用: postgres

原型化一個內容推薦查詢

👤 建立「喜歡這個的人也喜歡」功能的產品工程師 ⏱ ~30 min intermediate

何時使用: 你有 User-LIKED->Item 的資料,想根據相似使用者推薦內容。

步驟
  1. 選定一個使用者並找出鄰近使用者
    針對使用者 <id>,找出共同 LIKED 項目最多的 20 個使用者,回傳 user_id 及重疊數量。✓ 已複製
    → 相似使用者排名
  2. 推薦那些使用者喜歡的項目
    針對前 20 位相似使用者,列出他們喜歡但 <id> 尚未喜歡的項目,依喜歡該項目的相似使用者數量排名。✓ 已複製
    → Top-N 推薦結果
  3. 轉化為可重複使用的查詢
    將查詢參數化為接受 $user_id 的可呼叫 Cypher,並補充所需的索引以提升效能。✓ 已複製
    → 可部署的查詢 + CREATE INDEX 語句

結果: 一個可運作的協同過濾查詢,效能足以支撐線上服務。

注意事項
  • 忘記在 :User(id) 上建立索引,會讓啟動查詢變成線性掃描 — 執行 CREATE INDEX FOR (u:User) ON (u.id),並用 EXPLAIN 確認索引有被使用

從暫存資料表將關聯式資料載入 Neo4j

👤 從 SQL 遷移至圖形資料庫的資料工程師 ⏱ ~40 min advanced

何時使用: 你在 Postgres 中有使用者與追蹤關係,想以圖形方式呈現。

前置條件
  • 具有寫入權限的 Neo4j 使用者 — 在目標資料庫上具有 CREATE 權限的角色
步驟
  1. 規劃節點/邊的對應關係
    給定資料表 users(id, name) 與 follows(from_id, to_id),提出 Neo4j 模型:使用哪些標籤?關係方向為何?✓ 已複製
    → (:User {id,name})-[:FOLLOWS]->(:User)
  2. 先建立約束條件
    產生 CREATE CONSTRAINT FOR (u:User) REQUIRE u.id IS UNIQUE 並執行。✓ 已複製
    → 約束條件已建立
  3. 使用 MERGE 批次載入
    根據提供的使用者資料列,執行 UNWIND $rows AS r MERGE (:User {id:r.id}) ...,再針對追蹤關係執行 MERGE (a)-[:FOLLOWS]->(b),每批次處理 1 萬筆。✓ 已複製
    → 所有資料列已冪等載入

結果: 一個可重複執行的 ETL,將你的關聯式資料載入圖形結構。

注意事項
  • 使用 CREATE 而非 MERGE 會在重新執行時建立重複節點 — 更新操作一律使用 MERGE,並在批次 MERGE 前建立唯一性約束以提升速度
搭配使用: postgres

透過知識圖譜回答自然語言問題

👤 擁有領域知識圖譜的內部團隊 ⏱ ~25 min intermediate

何時使用: 你建立了一個小型本體論(產品、功能、客戶),希望 Claude 能夠回答「哪些客戶使用了功能 X」這類問題,而不需要學習 Cypher。

步驟
  1. 讓 Claude 了解結構描述
    以下是結構描述 [貼上 get_neo4j_schema 的輸出]。從現在起,在執行查詢前先將我的問題翻譯成 Cypher。✓ 已複製
    → Claude 確認對結構描述的理解
  2. 提問並取得 Cypher 及答案
    上一季哪些客戶使用了「export-csv」功能?✓ 已複製
    → 顯示 Cypher + 結果資料表
  3. 當 Cypher 有誤時進行修正
    那個 Cypher 漏掉了連到 Session 的 :USED 關係,請修正為透過 session 進行查詢。✓ 已複製
    → 修正後的 Cypher 重新執行

結果: 一個輕量級的自然語言轉 Cypher 介面,供非技術團隊成員使用。

注意事項
  • Claude 可能捏造不存在的標籤 — 明確限定:「只使用所提供結構描述中的標籤/關係;若不確定請說未知」

組合

與其他 MCP 搭配,撬動十倍槓桿

neo4j + postgres

將關聯式資料同步為圖形結構

從 Postgres 拉取使用者與追蹤關係,再以 MERGE 載入 Neo4j,建立 (:User)-[:FOLLOWS]->(:User) 結構。✓ 已複製
neo4j + qdrant

圖形增強 RAG:以 Qdrant 做語意召回,以 Neo4j 處理精確關係

Qdrant 找出與問題相似的文件,再從 Neo4j 遍歷匹配的實體,取得結構化事實以輔助回答。✓ 已複製
neo4j + filesystem

將 Cypher 產生的報告匯出為 CSV 或 Markdown

執行詐欺環 Cypher,將前 50 個群集匯出為 /reports/fraud-<date>.csv。✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
get_neo4j_schema 在每個新工作階段中優先呼叫 free
read_neo4j_cypher query: str, params?: object 任何 MATCH / RETURN 操作——唯讀 free
write_neo4j_cypher query: str, params?: object CREATE/MERGE/SET/DELETE——資料異動操作 free

成本與限制

運行它的成本

API 配額
受你的 Neo4j 執行個體限制。Aura Free:20 萬個節點 / 40 萬個關係。
每次呼叫 Token 數
結構描述:約 500 個 token。查詢結果:視資料列數與屬性數量而定。
費用
Community 版或自行託管免費。Aura 有免費方案。Aura 付費方案起價約 $65/月。
提示
在大型圖形上務必先執行 EXPLAIN;若啟動標籤缺少索引,一個 5ms 的查詢可能變成 5 分鐘的全表掃描。

安全

權限、密鑰、影響範圍

最小權限: reader role for read-only exploration
憑證儲存:NEO4J_URINEO4J_USERNAMENEO4J_PASSWORD 設定於環境變數中
資料出站: 直接透過 Bolt 連線至你的 Neo4j(自行託管或 Aura)
切勿授予: admin role PUBLIC write access

故障排查

常見錯誤與修復

ServiceUnavailable: Connection refused

Neo4j 未啟動或 Bolt 埠號錯誤(預設為 7687)。請以 cypher-shell -a bolt://host:7687 進行確認。

驗證: nc -zv host 7687
Neo.ClientError.Security.Unauthorized

使用者名稱或密碼有誤。請從管理員工作階段執行 CALL dbms.security.changePassword('new') 重設密碼。

Neo.ClientError.Statement.SyntaxError

Claude 產生的 Cypher 有語法錯誤——貼上完整錯誤訊息,請求修正後的查詢。

Writes fail: Write operation not allowed in read-only mode

目前使用 reader 角色連線;請切換至具有 WRITE 權限的使用者,或使用獨立的寫入連線。

替代方案

Neo4j 對比其他方案

替代方案何時用它替代權衡
Memgraph MCP你需要串流圖形分析;Memgraph 與 Cypher 相容生態系較小,託管選項較少
ArangoDB MCP你需要多模型支援(圖形 + 文件 + 鍵值)使用 AQL 而非 Cypher;有一定的學習曲線
Postgres + Apache AGE你的需求以關聯式為主,只有少量圖形需求在大型遍歷上,圖形效能不如原生 Neo4j

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills