Neo4j MCP服务器已连接到ChatGPT
构建一个 Neo4j MCP 服务器,连接其 Cypher 工具,将其注册到 ChatGPT 中,并验证来自聊天的只读查询确实能够安全地传达到图数据库。
本指南将逐步构建从原材料到可运行系统的完整流程,内容为:如何搭建 Neo4j MCP 服务器并与 ChatGPT 相连。重点在于可操作的步骤、明确的检查点,以及可直接放入代码仓库的代码,无需猜测其用途。 在修改代码之前,应先明确输入参数、该步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行该步骤,而无需推测隐藏的状态。 相比庞大的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障原因应能明确指向某个具体功能模块,而非整个复杂的流程。
简介
在修改代码之前,首先需要明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将这一阶段视为输入与已验证输出之间的契约。为相关成果命名,定义成功判定标准,杜绝无声的半完成状态。 在批量导入数据之前应使用约束条件和索引。通过对业务键设置唯一性,可将后续的合并操作转化为可预测的插入或更新操作,从而避免数据重复问题。
Neo4j Labs 仓库与官方 Neo4j MCP 服务器的对比
在对比 Neo4j Labs 存储库与官方 Neo4j MCP 服务器时,应在修改代码之前明确输入参数、各步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行相应步骤,而无需猜测隐藏状态。除了功能结果外,还需记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。在批量导入数据之前,应先使用约束条件和索引。通过对业务键设置唯一性,后续的合并操作将变为可预测的插入或更新操作,而非出现大量重复数据的问题。
架构
在架构设计方面,修改代码之前应明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,这样操作人员无需查看整个流程即可进行审计。 在批量导入数据之前应使用约束条件和索引。通过对业务键设置唯一性,可将后续的合并操作转化为可预测的插入或更新操作,从而避免出现大量重复数据的问题。 在架构设计方面,修改代码之前应明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 相比庞大的脚本,更应采用小型且易于测试的单元。当某个步骤失败时,故障原因应能明确指向某个具体的责任模块,而非整个复杂的流程。
前提条件
在修改代码之前,需明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。应将此阶段视为输入与验证后输出之间的契约:为相关成果命名,定义成功判定标准,并拒绝默许的半完成状态。在第一批处理完成后,需检查样本数据集;与端到端聊天测试相比,Cypher探针能更低成本地检测到标签偏差和属性缺失问题。
步骤1:验证Ubuntu架构
第一步:在修改代码之前,先确认 Ubuntu 架构,明确输入参数、该步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。应在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。在第一批数据处理完成后,需检查样本数据集的情况。与端到端的聊天测试相比,Cypher 探针能更低成本地检测到标签偏差和属性缺失问题。
第二步:安装官方 Neo4j MCP 服务器
对于第二步:在修改代码之前,需先安装官方的 Neo4j MCP 服务器,并明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测其中的隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,这样操作人员无需查看整个图结构即可进行审计。 在处理第一批数据后,需检查样本邻域。与端到端的聊天测试相比,Cypher 查询能更低成本地检测到标签偏差和属性缺失问题。 对于第二步:在修改代码之前,需先安装官方的 Neo4j MCP 服务器,并明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测其中的隐藏状态。 相较于庞大的脚本,应优先使用小型且可测试的单元。当某个步骤失败时,故障原因应能明确指向某个具体的部分以便修复。
责任而非复杂的流程链。tar -xzf neo4j-mcp_Linux_x86_64.tar.gz
chmod +x neo4j-mcp
sudo mv neo4j-mcp /usr/local/bin/neo4j-mcp
neo4j-mcp --help
python3 -m venv neo4j-mcp-venv
source neo4j-mcp-venv/bin/activate
pip install neo4j-mcp-server
步骤3:了解可用的MCP工具
在进入“步骤3:了解可用的MCP工具”之前,需先明确输入内容、该步骤的负责人以及完成标准,然后再进行代码修改。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏的状态。 将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,定义成功标准,杜绝默许的半完成状态。 针对要提出的问题构建节点与关联关系模型,而非处理文档中的所有名词。稀疏且有类型的边比密集且难以理解的图结构更佳。
步骤4:创建受限的Neo4j用户
在第四步“创建受限的Neo4j用户”中,应在修改代码之前明确输入参数、该步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。除了功能结果外,还需记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境切换到共享环境时出现意外费用。
cypher-shell \
-a bolt://127.0.0.1:7687 \
-u mcp_reader \
-p 'YOUR_PASSWORD' \
'MATCH (n) RETURN count(n) AS node_count;'
第五步:在STDIO模式下配置Neo4j MCP
对于第5步:在STDIO模式下配置Neo4j MCP,在修改代码之前需明确输入参数、该步骤的负责人以及终止条件。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储和功能标志应集中存放于一个位置,以便操作员无需查看整个图结构即可进行审计。 仅为要查询的问题建模节点和关系,而非文档中的所有名词。稀疏且有类型的边比密集且难以理解的图结构更佳。 对于第5步:在STDIO模式下配置Neo4j MCP,在修改代码之前需明确输入参数、该步骤的负责人以及终止条件。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 相较于庞大的脚本,应优先选择小型且可测试的单元。当某个步骤失败时,故障原因应能明确指向具体的责任方。
而是简洁的架构,而非复杂的流程管道。export NEO4J_URI="bolt://127.0.0.1:7687"
export NEO4J_USERNAME="mcp_reader"
export NEO4J_PASSWORD="YOUR_NEO4J_PASSWORD"
export NEO4J_DATABASE="neo4j"
export NEO4J_READ_ONLY="true"
export NEO4J_TRANSPORT_MODE="stdio"
export NEO4J_LOG_LEVEL="info"
export NEO4J_LOG_FORMAT="text"
neo4j-mcp
第6步:了解HTTP替代方案
在进入第6步“了解HTTP替代方案”之前,需先明确输入内容、该步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将此阶段视为输入与验证后输出之间的契约。为相关成果命名,定义成功检测标准,杜绝无声的半完成状态。 在批量导入数据之前应用约束条件和索引。通过业务键确保唯一性,这样后续的合并操作就会是可预测的插入或更新,而非重复数据泛滥的问题。
export NEO4J_URI="bolt://127.0.0.1:7687"
export NEO4J_DATABASE="neo4j"
export NEO4J_READ_ONLY="true"
export NEO4J_TRANSPORT_MODE="http"
export NEO4J_MCP_HTTP_HOST="127.0.0.1"
export NEO4J_MCP_HTTP_PORT="8000"
unset NEO4J_USERNAME
unset NEO4J_PASSWORD
neo4j-mcp
Authorization: Basic BASE64_ENCODED_USERNAME_AND_PASSWORD
echo -n "mcp_reader:YOUR_PASSWORD" | base64
Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN
第7步:在Ubuntu上安装OpenAI tunnel-client
对于第7步:在Ubuntu上安装OpenAI tunnel-client,确定输入参数、该步骤的负责人以及完成标准,然后再修改代码。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。应在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。在大规模数据导入之前,应使用约束条件和索引。通过对业务键设置唯一性,后续的合并操作将变为可预测的插入操作,而非大量重复数据的出现。
tunnel-client-<version>-linux-amd64.zip
tunnel-client-<version>-linux-arm64.zip
unzip tunnel-client-<version>-linux-amd64.zip
chmod +x tunnel-client
sudo mv tunnel-client /usr/local/bin/tunnel-client
tunnel-client --version
tunnel-client help quickstart
第8步:创建安全的MCP隧道
对于第8步:创建安全的MCP隧道,在修改代码之前需明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,以便操作人员无需查看整个系统结构即可进行审计。 在批量导入数据之前应使用约束条件和索引。通过对业务键设置唯一性,可让后续的合并操作变为可预测的插入或更新操作,而非出现大量重复数据的情况。 对于第8步:创建安全的MCP隧道,在修改代码之前需明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 相比庞大的脚本,更应优先使用小型且易于测试的单元。当某个步骤失败时,故障原因应能明确指向具体的责任模块。
而不是一个错综复杂的流程。Name: Neo4jMCP
Description: Private tunnel for the Neo4j MCP server
tunnel_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
第9步:创建运行时API密钥
在执行“创建运行时API密钥”这一步骤时,需先确定输入参数、该步骤的负责人以及完成标准,然后再修改代码。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,并拒绝默许部分完成的情况。 在处理完第一批数据后,需检查样本数据集。与端到端的聊天测试相比,Cypher探针能更低成本地检测到标签偏差和属性缺失问题。
export CONTROL_PLANE_API_KEY="sk-YOUR_RUNTIME_KEY"
第10步:配置tunnel-client以启动Neo4j MCP
对于第10步:配置tunnel-client以启动Neo4j MCP,在修改代码之前需明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。应在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。在第一批数据处理完成后,应检查样本邻域结构。与端到端聊天测试相比,Cypher探针能更低成本地检测标签偏差和属性缺失问题。
export CONTROL_PLANE_API_KEY="sk-YOUR_RUNTIME_KEY"
export NEO4J_URI="bolt://127.0.0.1:7687"
export NEO4J_USERNAME="mcp_reader"
export NEO4J_PASSWORD="YOUR_NEO4J_PASSWORD"
export NEO4J_DATABASE="neo4j"
export NEO4J_READ_ONLY="true"
export NEO4J_TRANSPORT_MODE="stdio"
tunnel-client init \
--sample sample_mcp_stdio_local \
--profile neo4j-local \
--tunnel-id "tunnel_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
--mcp-command "/usr/local/bin/neo4j-mcp"
tunnel-client doctor \
--profile neo4j-local \
--explain
tunnel-client run --profile neo4j-local
第11步:验证Ubuntu网络连接性
对于第11步:验证Ubuntu网络连接,在修改代码之前需明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,以便操作人员无需查看整个系统结构即可进行审计。 在处理第一批数据后需检查样本邻域。与端到端聊天测试相比,Cypher探针能更低成本地检测到标签偏移和属性缺失问题。 对于第11步:验证Ubuntu网络连接,在修改代码之前需明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 相较于庞大的脚本,应优先使用小型且可测试的单元。当某一步骤失败时,故障原因应能明确指向某个具体的组件。
应注重可操作性,而非复杂的流程结构。curl -I https://api.openai.com
第12步:创建ChatGPT开发者模式应用
在执行第12步“创建ChatGPT开发者模式应用”时,需先明确输入内容、该步骤的负责人以及结束标准,然后再修改代码。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将此阶段视为输入与已验证输出之间的契约。为相关成果命名,定义成功标准,杜绝默许的半完成状态。 仅为要提出的问题构建模型节点及关联关系,而非文档中的所有名词。稀疏且有类型的边比密集且难以理解的图结构更佳。
第13步:验证集成效果
对于第13步:验证集成功能,在修改代码之前需明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。应在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在系统从演示环境切换到共享环境时出现意外费用。
操作检查清单
在制定操作检查清单时,同样需要在修改代码之前明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。
同时记录正常流程和恢复流程。重试机制、人工审核环节以及死信处理都是产品本身的一部分,而非后续需要补充的功能。
在第一批数据处理完成后检查部分样本。与端到端的聊天测试相比,Cypher探针能更低成本地检测到标签偏差和属性缺失问题。
提供具有严格结构定义及明确副作用标识的工具。主机在自动批准之前需要知道哪些调用会改变状态。
只要预算允许,就在持续集成过程中使用测试数据而非真实的付费API来执行关键路径的冒烟测试。
在功能测试结果旁记录处理时间以及令牌或查询成本。提前了解成本情况,可避免在流程从演示环境过渡到共享环境时出现意外账单。
在推广该技术栈之前,应先冻结版本、为关键流程记录标准操作流程,并明确回滚步骤。共享环境需要设置速率限制、进行租户验证,同时要指定专人负责密钥轮换工作。与其展示花哨的一次性演示,不如注重扎实的可靠性。