GitHub Copilot自定义代理

通过集成Neo4j MCP Cypher Server扩展GitHub Copilot功能,自动生成高质量Python Neo4j客户端库,适用于组织级代码生成和数据库开发。

  • by grandcloud-oss
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 grandcloud-oss/org-mcp-demo

使用说明

使用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扩展编码代理的GitHub文档 有关如何在本地配置和测试MCP服务器的说明。

此存储库包括Neo4j MCP Cypher服务器的两个示例配置 sample-mcp-config/:

什么是自定义GitHub副本代理?

自定义代理通过提供专门的工具和特定领域的知识来扩展GitHub Copilot的功能。它们可以配置为使用外部工具、API和MCP服务器来执行标准代码完成之外的复杂任务。

有关自定义代理的更多详细信息,请参阅:

关键:MCP服务器的组织级设置

重要:如果您的代理使用MCP服务器,则必须在 组织级 在一个 私有的 .github-private 仓库.

单个存储库级代理无法访问MCP服务器,因此无法工作。 此存储库不包含实际的代理 -它们必须在您组织的 .github-private 存储库。

见官方 关于创建自定义代理的GitHub文档 有关详细的设置说明。

先决条件

  1. 创建一个 .github-private 仓库 首先在你的组织中。这是GitHub用于组织级配置的特殊私有存储库。请参阅 关于添加仅限成员的组织配置文件的GitHub文档README 有关创建此存储库的说明。

  2. 组织管理员权限 需要创建和配置 .github-private 仓库

  3. 访问组织级设置 用于环境变量和机密

存储库结构

你的组织应该有一个 .github-private 具有以下结构的存储库:

<your-org>/.github-private/
└── copilot/
    └── agents/
        ├── your-agent-1.md
        └── your-agent-2.md

组织和企业所有者可以在 .github-private 存储库,可在其组织或企业内的所有存储库中使用。

代理示例

此存储库包括两个示例代理,演示了运行 Neo4j MCP密码服务器:

1.基于Docker的代理

看 org-setup-files/agents/neo4j-docker-client-generator.md

该代理在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_URI
  • COPILOT_MCP_NEO4J_USERNAME
  • COPILOT_MCP_NEO4J_PASSWORD
  • COPILOT_MCP_NEO4J_DATABASE

重要:使用 COPILOT_MCP_ 所有MCP相关变量的前缀。

2.在存储库中创建环境变量

还要在存储库级别创建相同的环境变量:

  1. 前往设置→ 环境
  2. 创建一个名为的环境 copilot
  3. 将所有相同的变量及其值相加

3.配置工作流设置

基于Python的代理需要GitHub Actions工作流来设置Python环境。这对于直接运行Neo4j MCP Cypher服务器的代理至关重要。

看 .github/workflows/copilot-setup-steps.yml 用于工作流配置。

此工作流确保在执行Copilot代理时,Python环境和所需的Neo4j MCP Cypher Server包可用。

测试您的定制代理

配置好代理后,请按照以下步骤进行测试:

1.创建问题并将其分配给副驾驶

在您的存储库中创建一个新问题并将其分配给Copilot。

重要:分配给副驾驶后,您必须单击离开分配下拉列表,然后返回以设置自定义代理。在您首先单击退出之前,自定义代理选择将不可用。

2.监控代理启动

给代理人几分钟时间开始。一旦开始,您将在问题评论中看到“Copilot已开始工作…”。点击该链接查看状态和日志。

3.验证MCP服务器连接

启动后,您将看到代理连接到Neo4j并检索模式,确认MCP服务器集成工作正常。

4.查看详细的调试日志

您可以转到存储库中的“操作”选项卡,查看每次代理运行的详细调试日志。

输出示例

有关代理生成内容的完整示例,请参阅 公关#16 它显示了由自定义代理生成的完整Python Neo4j客户端库,包括模型、存储库模式、测试和文档。

总结检查表

使用MCP服务器设置自定义代理时:

  • []在组织级别创建代理 .github-private 仓库
  • []使用适当的配置定义MCP服务器配置 command, args,以及 env 映射
  • []创建 COPILOT_MCP_* 组织层面的环境变量
  • []在存储库设置中创建匹配的环境变量 copilot 环境
  • []设置 .github/workflows/copilot-setup-steps.yml 用于基于Python的MCP服务器
  • []在部署复杂工作流之前,使用简单查询测试代理

其他资源