# Chromium Source MCP Server

这是一个 Model Context Protocol (MCP) 服务器，专门用于获取 Chromium 源代码。由于直接访问 Chromium 源码网站（如 source.chromium.org）无法获取代码内容，此服务器提供了一个解决方案。

## 功能

- `get_chromium_file(file_path, branch)`: 通过文件路径和分支获取 Chromium 源代码文件
- `get_chromium_file_from_url(url)`: 通过 source.chromium.org URL 获取 Chromium 源代码文件
- `search_chromium_files(pattern, branch)`: 搜索匹配模式的文件（占位功能）

## 使用方法

### 启动服务器

```bash
python main.py
```

或直接运行：

```bash
python source_fetch.py
```

### 与 MCP 客户端集成

在您的 MCP 客户端配置中添加服务器：

```json
{
  "mcpServers": {
    "chromium-source": {
      "command": "python",
      "args": ["-m", "source_fetch"]
    }
  }
}
```

### 运行测试

测试文件位于 `test/` 目录中（包含 __init__.py 使其成为 Python 包）：

```bash
# 运行核心功能测试
python -m test.test_core

# 或直接运行测试文件
python test/test_core.py
```

## 工具说明

### get_chromium_file
- **参数**: `file_path` (str), `branch` (str, 默认 "main")
- **示例**: 获取 `chrome/app/chrome_main.cc` 文件
- **返回**: 文件内容或错误信息

### get_chromium_file_from_url
- **参数**: `url` (str) - source.chromium.org URL
- **示例**: `https://source.chromium.org/chromium/chromium/src/+/main:chrome/app/chrome_main.cc`
- **返回**: 文件内容或错误信息

### search_chromium_files
- **参数**: `pattern` (str), `branch` (str, 默认 "main")
- **说明**: 目前为占位功能，需要实现完整的搜索逻辑

## 技术细节

- 使用 FastMCP 框架创建 MCP 服务器
- 通过 `https://chromium.googlesource.com/` API 获取原始文件内容
- 支持 base64 解码（Chromium 返回的内容通常被编码）
- URL 解析支持多种格式（如 `main`、`refs/heads/main` 等）