MCP Neo4j客户端示例
两个示例客户端演示了连接到neo4j密码MCP服务器的不同方法:
- Olama的基本客户 (
mcp_neo4j_client.py)-使用Ollama生成一次性查询的简单客户端 - 具有ReAct模式的交互代理 (
interactive_agent.py)-高级代理使用Ollama和模式上下文进行交互式查询(与后端模式相同)
目录
此客户端位于 sample-client/ 目录。
先决条件
- Python 3.10+
uv包管理器(>=0.4.0)- Neo4j MCP服务器以HTTP模式运行
- Ollama在当地与
gpt-oss:120b-cloud模型
安装
安装uv(如果尚未安装)
# Using the standalone installer (recommended)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or using Homebrew on macOS
brew install uv
# Or using pip
pip install uv安装依赖项
导航到 sample-client 目录:
cd sample-client然后同步依赖项(这将创建venv并安装所有内容):
# Sync dependencies - creates .venv and installs all dependencies
uv sync这将:
- 创建一个
.venv虚拟环境(如果不存在) - 从安装所有依赖项
pyproject.toml - 生成/更新
uv.lock用于可重复构建
快速运行(无需安装)
您也可以直接运行而无需同步:
uv run mcp_neo4j_client.py这会自动处理环境和依赖关系。
设置
1.启动Neo4j MCP服务器
使用Docker(推荐):
docker run -p 8000:8000 \
-e NEO4J_URI=bolt://host.docker.internal:7687 \
-e NEO4J_USERNAME=neo4j \
-e NEO4J_PASSWORD=password \
-e NEO4J_TRANSPORT=http \
-e NEO4J_MCP_SERVER_HOST=0.0.0.0 \
-e NEO4J_MCP_SERVER_PORT=8000 \
-e NEO4J_MCP_SERVER_PATH=/api/mcp/ \
mcp/neo4j-cypher:latest或者使用本地服务器 ../mcp-neo4j/servers/mcp-neo4j-cypher/:
cd ../mcp-neo4j/servers/mcp-neo4j-cypher
uv run mcp-neo4j-cypher \
--transport http \
--server-host 127.0.0.1 \
--server-port 8000 \
--server-path /api/mcp/2.确保Ollama正在跑步
确保您安装了Ollama并且型号可用:
ollama pull gpt-oss:120b-cloud
ollama serve用法
选项1:Olama的基本客户
生成单个查询的最简单客户端:
# Run directly - uv handles everything
uv run mcp_neo4j_client.py
# Or use the installed command
uv run mcp-neo4j-client它的作用:
- 从MCP服务器获取Neo4j模式
- 使用Ollama生成用于查找公司的Cypher查询
- 执行查询并显示结果
选项2:具有ReAct模式的交互式代理(推荐)
一个交互式代理,演示后端使用的相同模式:
# Run the interactive agent (uses Ollama gpt-oss:120b-cloud)
uv run interactive-agent
# Or run directly
uv run interactive_agent.py
# Use a different Ollama model
OLLAMA_MODEL=llama3.1 uv run interactive-agent它的作用:
- 连接到MCP Neo4j服务器
- 获取完整的数据库架构
- 创建具有架构增强上下文的ReAct代理
- 进入一个交互式循环,您可以在其中提出自然语言问题
- 使用模式将您的问题转换为Cypher查询
- 执行查询并显示格式化结果
您可以尝试的示例查询:
- “显示数据库中的所有节点类型”
- “列出所有公司”
- “查找图表中的所有关系”
- “显示任何类型的前5条记录”
特征:
- ✅ 模式感知查询生成(使用精确的属性名)
- ✅ ReAct模式用于查询推理
- ✅ 用于多个查询的交互式聊天循环
- ✅ 格式良好的降价响应
- ✅ 与中的生产后端模式相同
databricks-neo4j-mcp-demo
配置
创建一个 .env 示例中的文件:
cp .env.example .env环境变量:
MCP_SERVER_URL:MCP服务器的URL(默认值:http://localhost:8000/api/mcp/)OLLAMA_MODEL:用于交互代理的Ollama模型(默认值:gpt-oss:120b-cloud)
管理依赖关系
添加新依赖项
# Add a new dependency
uv add package-name
# Add a development dependency
uv add --dev pytest
# Add with version constraint
uv add "package-name>=1.0.0"更新依赖关系
# Update all dependencies
uv sync --upgrade
# Update a specific package
uv sync --upgrade-package package-name锁定文件
这 uv.lock 文件是自动生成的,应提交给版本控制。它确保了跨不同环境的可重复构建。
验证
要验证所有设置是否正确:
- 检查MCP服务器是否正在运行:
curl http://localhost:8000/api/mcp/- 检查Ollama是否正在运行并具有以下型号:
ollama list | grep gpt-oss:120b-cloud- 运行客户端:
uv run mcp_neo4j_client.py基于
此客户端基于以下示例:
/Users/ryanknight/projects/graphathon-snippets/examples/mcp/client- MCP Python SDK可流式HTTP传输
