使用说明
源图MCP服务器
全面 模型上下文协议 (MCP)服务器,为AI代理提供访问 所有Sourcegraph功能 包括代码搜索、存储库管理、文件浏览、代码智能等。
特性
- 🔍 高级代码搜索 -使用过滤器(repo:、lang:、file:等)搜索所有代码
- 📚 库管理 -列出、查询和浏览存储库
- 📁 文件操作 -浏览目录树,读取文件,查看git责备
- 🧠 代码智能 -查找参考文献,转到定义,悬停信息(当LSIF/SCP可用时)
- 🔄 批量更改 -创建和管理大规模代码更改(计划中)
- 🔔 代码监控 -为代码模式设置警报(计划)
- 📓 笔记本和见解 -带有实时代码示例的文档(计划中)
- ☁️ 云和自托管 -适用于Sourcegraph.com和您的私有实例
安装
npm install -g sourcegraph-mcp
或与 npx:
npx sourcegraph-mcp
快速开始
1.获取Sourcegraph访问令牌
- Sourcegraph.com: https://sourcegraph.com/user/settings/tokens
- 自托管:
https://your-instance/.../settings/tokens
2.配置您的AI代理
添加到您的MCP客户端配置中(例如Amp、Claude Desktop):
{
"mcpServers": {
"sourcegraph": {
"command": "npx",
"args": ["-y", "sourcegraph-mcp"],
"env": {
"SRC_ENDPOINT": "https://sourcegraph.com",
"SRC_ACCESS_TOKEN": "sgp_YOUR_TOKEN_HERE"
}
}
}
}
对于自托管Sourcegraph:
{
"SRC_ENDPOINT": "http://localhost:7080",
"SRC_ACCESS_TOKEN": "sgp_local_YOUR_TOKEN_HERE"
}
3.在您的AI代理中使用
示例查询:
- “在我的仓库中搜索身份验证函数”
- “列出我有权访问的所有存储库”
- “显示repo/src/的目录结构”
- “查找对User类的所有引用”
可用工具
第一阶段(现在可用)
| 工具 | 说明 |
|---|---|
connection_test |
测试连接并返回版本/用户信息 |
user_info |
返回当前Sourcegraph用户的用户名、电子邮件和组织 |
search_code |
使用过滤器进行高级代码搜索 |
search_symbols |
搜索符号(函数、类) |
search_commits |
搜索git提交消息和差异 |
repo_list |
列出可访问的存储库 |
repo_info |
获取详细的存储库信息 |
repo_branches |
列出存储库分支 |
file_tree |
浏览目录结构 |
file_get |
获取文件内容 |
file_blame |
获取文件的git责备 |
未来阶段
看 规格.md 完整的路线图,包括代码智能、批处理更改等(共29个工具)。
配置
环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
SRC_ENDPOINT |
没有 | https://sourcegraph.com |
源代码图实例URL |
SRC_ACCESS_TOKEN |
是 | - | 源图访问令牌 |
TIMEOUT_MS |
没有 | 30000 |
API超时(以毫秒为单位) |
LOG_LEVEL |
没有 | info |
日志记录级别(错误、警告、信息、调试) |
例子
搜索代码
// AI agent can call:
search_code({
query: "repo:myorg/myrepo lang:typescript function authenticate",
limit: 10
})
源代码图查询语法:
repo:pattern-按存储库筛选lang:typescript-按语言筛选file:regex-按文件路径筛选case:yes-区分大小写的搜索- 布尔运算符
AND,OR,NOT - 正则表达式:
/pattern/
列出存储库
repo_list({
query: "myorg",
limit: 20
})
浏览文件
file_tree({
repo: "github.com/myorg/myrepo",
path: "src/",
rev: "main"
})
发展
先决条件
- Node.js 22+
- npm或pnpm
- 源图访问令牌
设置
git clone https://github.com/Tylder/sourcegraph-mcp.git
cd sourcegraph-mcp
npm install
开发工作流程
# Run in development mode
npm run dev
# Run tests
npm test
# Run tests with coverage
npm run coverage
# Lint and format
npm run lint
npm run format
# Type check
npm run typecheck
# Build
npm run build
分阶段文件工作流
我们通过以下方式对分阶段的TypeScript文件强制执行格式化和linting 皮棉上演.
- 哈士奇跑
npm run lint-staged作为预提交钩子的一部分。 - 全部上演
*.ts/*.tsx文件将使用ESLint自动处理(--fix)和Prettier。 - 如果文件被钩子修改,请重新暂存该文件(
git add <file>)在重试提交之前。
测试
我们保持 100%测试覆盖率。参见 代理商.md 用于测试原理和工作流程。
# Run all tests
npm test
# Run tests with coverage
npm run coverage
# Run integration tests (requires SRC_ACCESS_TOKEN)
npm run test:integration
集成测试
集成测试验证MCP服务器是否与真实的Sourcegraph实例兼容。它们要求:
-
访问令牌:设置
SRC_ACCESS_TOKEN在你的.env文件或环境- 从以下位置获取一个:https://sourcegraph.com/user/settings/tokens(适用于Sourcegraph.com)
- 或者您的自托管实例:
https://your-instance/.../settings/tokens
-
环境设置:
# Create .env file in project root echo "SRC_ACCESS_TOKEN=your_token_here" > .env echo "SRC_ENDPOINT=https://sourcegraph.com" >> .env -
运行集成测试:
npm run test:integration
如果 SRC_ACCESS_TOKEN 如果未设置,集成测试将自动跳过。
建筑
- 语言:带有ESM模块的TypeScript
- 协议:模型上下文协议(MCP)
- API:源代码图GraphQL API
- 运输:stdio(HTTP/SSE计划用于第6阶段)
- 测试:Vitest的覆盖率目标为100%
看 规格.md 了解详细的架构和工具规格。
贡献
我们欢迎捐款!请看 代理商.md 用于:
- 开发工作流程
- 代码质量标准
- 测试要求
- Git挂钩和CI/CD
路线图
- ✅ 第一阶段:搜索、存储库、文件(当前)
- 🚧 第2阶段:代码智能(参考、定义)
- 📋 第三期:批量更改
- 📋 阶段4:代码监控
- 📋 阶段5:笔记本和见解
- 📋 第6阶段:HTTP/SSE传输
看 规格.md 完整的路线图。
许可证
麻省理工学院
鸣谢
内置:
问题? 打开问题或检查 Sourcegraph 文档.
