将本地 Sourcegraph 实例集成到 Copilot agent 工作流的完整方案(iis-sourcegraph),包含 MCP Server、Copilot Skill、Docker 部署。
├── .github/
│ ├── agents/ # Copilot agent 定义
│ ├── prompts/ # Copilot prompt 文件
│ └── workflows/ # GitHub Actions CI/CD
│ ├── ci.yml # Lint & 格式检查
│ └── docker-build.yml # Docker 镜像构建 & 推送
├── .vscode/
│ ├── mcp.json # VS Code MCP server 注册
│ └── settings.json # 工作区设置
├── sourcegraph-mcp/ # MCP Server 源码(Python/FastMCP)
│ ├── src/ # 源代码
│ │ ├── backends/ # Sourcegraph API 客户端
│ │ ├── core/ # Prompt 管理
│ │ └── prompts/ # 提示词 YAML
│ ├── pyproject.toml # 项目元数据 & 依赖
│ └── README.md # MCP Server 文档
├── sourcegraph-ops/ # Docker 部署 & 运维
│ ├── Dockerfile
│ ├── docker-compose.yml
│ ├── start-mcp-server.sh
│ ├── configure-mcp-client.sh
│ └── .env.sample
├── sourcegraph-skill/ # Copilot Skill(curl 直调 API)
│ ├── SKILL.md # 技能定义
│ └── start-mcp-server.sh # 委托到 ops 启动脚本
└── specs/ # 技术调研文档
- 本地 Sourcegraph 实例运行在
http://localhost:7080 - Docker Engine 已安装
- Sourcegraph Access Token(在 http://localhost:7080/user/settings/tokens 创建)
# 保存 token
echo "sgp_xxxx" > sourcegraph-ops/sourcegraph.accesstoken.env
# 启动全部依赖容器(Sourcegraph + MCP,自动构建 MCP 镜像)
cd sourcegraph-ops
cp .env.sample .env
export SRC_ACCESS_TOKEN=$(tr -d '\n' < sourcegraph.accesstoken.env)
docker compose --env-file .env up -d --build
# 或
bash ./start-stack.sh
# 生成 MCP 客户端配置(默认写入 .vscode/mcp.json)
bash ./configure-mcp-client.sh.vscode/mcp.json 使用 Streamable HTTP 端点 http://localhost:8002/sourcegraph/mcp,
重启 VS Code 后 Copilot 即可发现 MCP 工具:
search— 代码搜索search_prompt_guide— 搜索提示指南fetch_content— 文件内容获取
将 sourcegraph-skill/ 复制到 ~/.copilot/skills/sourcegraph/ 即可启用 Skill 方案(无需 MCP Server,通过 curl 直调 API)。
cd sourcegraph-mcp
# 安装依赖
uv sync --dev
# Lint
uv run ruff check src/
# 格式化
uv run ruff format src/- ci.yml: 在 sourcegraph-mcp 变更时自动运行 iis-sourcegraph lint & format 检查
- docker-build.yml: 在 push 到 master 时构建并推送 Docker 镜像到 GHCR