使用Neo4j MCP Cypher服务器定制GitHub Copilot代理
此存储库演示了如何设置与集成的自定义GitHub Copilot代理 Neo4j MCP密码服务器.
具体来说,这展示了一个自定义代理,它可以自动生成高质量的Python Neo4j客户端库,并采用最佳实践,包括:
- 用于类型安全的Pydantic模型
- 用于干净查询组织的存储库模式
- 参数化Cypher查询以防止注入攻击
- 使用测试容器进行集成测试
- 使用pyproject.toml进行现代Python打包
重要:此存储库包含 仅示例代理配置和文档。实际的自定义代理部署在组织级别 grandcloud-oss/.github-private 存储库,在那里它们可以在组织中的所有存储库中使用。
此设置是在 grandcloud-oss 我拥有管理员权限的组织。 需要组织管理员权限 创建 .github-private 存储库,并使用MCP服务器集成配置组织级自定义代理。
直接测试MCP服务器
在创建自定义代理之前,首先测试 Neo4j MCP密码服务器 直接确保其正常工作。这允许您独立于代理配置验证连接和功能。
请参阅 有关如何在本地配置和测试MCP服务器的说明。
此存储库包括Neo4j MCP Cypher服务器的两个示例配置 sample-mcp-config/:
- -基于Docker的MCP服务器配置
neo4j-mcp-local-config.json-基于Python的本地MCP服务器配置
什么是自定义GitHub副本代理?
自定义代理通过提供专门的工具和特定领域的知识来扩展GitHub Copilot的功能。它们可以配置为使用外部工具、API和MCP服务器来执行标准代码完成之外的复杂任务。
有关自定义代理的更多详细信息,请参阅:
关键:MCP服务器的组织级设置
重要:如果您的代理使用MCP服务器,则必须在 组织级 在一个 私有的 .github-private 仓库.
单个存储库级代理无法访问MCP服务器,因此无法工作。 此存储库不包含实际的代理 -它们必须在您组织的 .github-private 存储库。
见官方 有关详细的设置说明。
先决条件
- 创建一个
.github-private仓库 首先在你的组织中。这是GitHub用于组织级配置的特殊私有存储库。请参阅 有关创建此存储库的说明。
- 组织管理员权限 需要创建和配置
.github-private仓库
- 访问组织级设置 用于环境变量和机密
存储库结构
你的组织应该有一个 .github-private 具有以下结构的存储库:
/.github-private/
└── copilot/
└── agents/
├── your-agent-1.md
└── your-agent-2.md组织和企业所有者可以在 .github-private 存储库,可在其组织或企业内的所有存储库中使用。
代理示例
此存储库包括两个示例代理,演示了运行 Neo4j MCP密码服务器:
1.基于Docker的代理
看
该代理在Docker容器中运行Neo4j MCP Cypher服务器。
2.Python直接代理
看 org-setup-files/agents/neo4j-local-client-generator.md
此代理直接以Python命令运行Neo4j MCP Cypher服务器。
代理文件布局
每个代理定义都遵循以下结构:
---
name: agent-name
description: Brief description of what the agent does
tools: ['read', 'edit', 'search', 'shell', 'mcp-server-name/*']
mcp-servers:
server-name:
type: 'local'
command: 'command-to-run'
args: ['arg1', 'arg2']
env:
VAR_NAME: '${ENVIRONMENT_VARIABLE}'
tools: ["*"]
---
# Agent Instructions
Your agent's detailed instructions go here...环境变量配置
要使环境变量在MCP服务器上正常工作,需要仔细配置。经过广泛测试,此格式工作可靠:
1.在组织级别创建环境变量
在GitHub组织设置中创建以下环境变量:
COPILOT_MCP_NEO4J_URICOPILOT_MCP_NEO4J_USERNAMECOPILOT_MCP_NEO4J_PASSWORDCOPILOT_MCP_NEO4J_DATABASE
重要:使用 COPILOT_MCP_ 所有MCP相关变量的前缀。
2.在存储库中创建环境变量
还要在存储库级别创建相同的环境变量:
- 前往设置→ 环境
- 创建一个名为的环境
copilot - 将所有相同的变量及其值相加
3.配置工作流设置
基于Python的代理需要GitHub Actions工作流来设置Python环境。这对于直接运行Neo4j MCP Cypher服务器的代理至关重要。
看 用于工作流配置。
此工作流确保在执行Copilot代理时,Python环境和所需的Neo4j MCP Cypher Server包可用。
测试您的定制代理
配置好代理后,请按照以下步骤进行测试:
1.创建问题并将其分配给副驾驶
在您的存储库中创建一个新问题并将其分配给Copilot。
重要:分配给副驾驶后,您必须单击离开分配下拉列表,然后返回以设置自定义代理。在您首先单击退出之前,自定义代理选择将不可用。
Assigning custom agent to issue
2.监控代理启动
给代理人几分钟时间开始。一旦开始,您将在问题评论中看到“Copilot已开始工作…”。点击该链接查看状态和日志。
3.验证MCP服务器连接
启动后,您将看到代理连接到Neo4j并检索模式,确认MCP服务器集成工作正常。
Custom agent logs showing Neo4j connection
4.查看详细的调试日志
您可以转到存储库中的“操作”选项卡,查看每次代理运行的详细调试日志。
Custom agent debug logs in Actions
输出示例
有关代理生成内容的完整示例,请参阅 公关#16 它显示了由自定义代理生成的完整Python Neo4j客户端库,包括模型、存储库模式、测试和文档。
总结检查表
使用MCP服务器设置自定义代理时:
- \[\]在组织级别创建代理
.github-private仓库 - \[\]使用适当的配置定义MCP服务器配置
command,args,以及env映射 - \[\]创建
COPILOT_MCP_*组织层面的环境变量 - \[\]在存储库设置中创建匹配的环境变量
copilot环境 - \[\]设置
.github/workflows/copilot-setup-steps.yml用于基于Python的MCP服务器 - \[\]在部署复杂工作流之前,使用简单查询测试代理
