# 与 Sourcegraph 对比分析

本文档对比 Code Search MCP 和 Sourcegraph，帮助选择合适的工具。

## 概述

| 特性 | Code Search MCP | Sourcegraph |
|------|----------------|-------------|
| 类型 | 本地 MCP 服务器 | 云/自托管服务 |
| 部署 | 即插即用 | 需要安装配置 |
| 成本 | 免费 | 付费计划 |
| 离线 | 完全支持 | 需要同步 |

---

## 核心指标对比

### 性能

| 指标 | Code Search MCP | Sourcegraph |
|------|----------------|-------------|
| 100 文件索引 | < 1 秒 | 10-30 秒 |
| 搜索延迟 | < 10ms | 100-500ms |
| 增量索引 | 自动 | 需配置 |
| 冷启动 | 即时 | 需要实例 |

### 功能

| 功能 | Code Search MCP | Sourcegraph |
|------|----------------|-------------|
| 文件搜索 | ✅ | ✅ |
| 符号搜索 | ✅ | ✅ |
| 内容搜索 | ✅ | ✅ |
| 正则搜索 | ✅ | ✅ |
| 代码审查集成 | ❌ | ✅ |
| PR 评论 | ❌ | ✅ |
| 代码智能 | 基础 | 高级 |

### 资源

| 资源 | Code Search MCP | Sourcegraph |
|------|----------------|-------------|
| 内存占用 | < 50MB | > 1GB |
| 磁盘占用 | ~1MB/千文件 | 更大 |
| CPU 使用 | 低 | 中-高 |
| 网络依赖 | 无 | 需要 |

---

## 适用场景

### Code Search MCP 最佳场景

1. **本地开发**
   - 快速索引个人项目
   - 离线工作
   - 轻薄笔记本

2. **AI 助手集成**
   - Claude Code 插件
   - Cursor/Copilot 增强
   - 自定义 AI 工作流

3. **轻量级需求**
   - 小型仓库 (<1000 文件)
   - 简单搜索需求
   - 预算有限

4. **隐私敏感**
   - 闭源代码
   - 敏感项目
   - 不想上传云端

### Sourcegraph 最佳场景

1. **大型团队**
   - 100+ 开发者
   - 多代码库
   - 需要代码审查

2. **企业级功能**
   - 代码审查集成
   - 权限管理
   - 合规审计

3. **高级代码智能**
   - 代码理解
   - 跨语言分析
   - 依赖图谱

4. **开源项目**
   - 公开仓库搜索
   - 全局搜索
   - 社区探索

---

## 成本对比

### Code Search MCP

- **软件**: 免费 (MIT)
- **硬件**: 无特殊要求
- **维护**: 极低

### Sourcegraph

| 计划 | 价格 | 特性 |
|------|------|------|
| Free | $0 | 基础搜索 |
| Team | $5/用户/月 | 团队功能 |
| Enterprise | 定制 | 全功能 |

---

## 搜索能力对比

### 文件搜索

```python
# Code Search MCP
find_files: {"query": "config", "extensions": [".json", ".yaml"]}

# Sourcegraph
# repo:config file:*.json file:*.yaml
```

**结果**: 两者相近，Code Search 更轻量

### 符号搜索

```python
# Code Search MCP
find_symbols: {"query": "handleRequest", "kind": "function"}

# Sourcegraph
# type:symbol query:handleRequest
```

**结果**: Sourcegraph 符号理解更深

### 内容搜索

```python
# Code Search MCP
find_content: {"query": "TODO", "regex": False}

# Sourcegraph
# "TODO" type:diff
```

**结果**: Sourcegraph 支持更多搜索类型

---

## 性能基准测试

### 测试环境

- 1000 个 Python/TypeScript 文件
- 约 50000 行代码

### 索引时间

```
Code Search MCP:  0.5s (增量) / 5s (全量)
Sourcegraph:     30s+ (首次) / 10s (增量)
```

### 搜索延迟

```
Code Search MCP:
  find_files:     3ms
  find_symbols:   5ms
  find_content:   8ms

Sourcegraph:
  文件搜索:       150ms
  符号搜索:       200ms
  内容搜索:       300ms
```

### 内存占用

```
Code Search MCP:  45MB
Sourcegraph:     1.5GB (Docker)
```

---

## 迁移指南

### 从 Sourcegraph 迁移到 Code Search

#### 1. 安装
```bash
pip install code-search-mcp
```

#### 2. 配置 MCP 客户端
```json
{
  "mcpServers": {
    "code-search": {
      "command": "python",
      "args": ["-m", "code_search_mcp"]
    }
  }
}
```

#### 3. 迁移搜索模式

| Sourcegraph | Code Search MCP |
|-------------|----------------|
| `repo:xxx` | 自动（已索引仓库） |
| `file:*.py` | `file_pattern: "*.py"` |
| `type:symbol` | `find_symbols` |
| `-` (排除) | 不支持 |

#### 4. 典型迁移

```python
# Sourcegraph: "repo:myapp file:src/ TODO"
# Code Search:
index_repository: {"repo_path": "/path/to/myapp", "force_rebuild": True}
find_content: {"query": "TODO", "file_pattern": "**/src/**"}
```

---

## 混合使用策略

### 场景：Code Search + Sourcegraph

可以同时使用两者：

```python
# 快速本地搜索 → Code Search
find_files: {"query": "config"}

# 深度分析 → Sourcegraph
# (通过 Sourcegraph API)
```

### 推荐策略

| 场景 | 推荐工具 |
|------|----------|
| 日常开发快速搜索 | Code Search |
| 代码审查 | Sourcegraph |
| 大规模代码分析 | Sourcegraph |
| 离线/本地工作 | Code Search |
| AI 助手增强 | Code Search |

---

## 总结

| 选择 | 理由 |
|------|------|
| **Code Search MCP** | 轻量、快速、免费、离线 |
| **Sourcegraph** | 团队协作、企业级、高级智能 |

**推荐**: 个人/小团队使用 Code Search，企业使用 Sourcegraph。
