一个现代的、由 TypeScript 驱动的 MCP(模型上下文协议)服务器,通过 Greptile API 提供基于人工智能的代码搜索和查询功能。使用官方 MCP SDK 构建,旨在与 AI 工具如 Claude Desktop、Continue 和其他 MCP 兼容客户端无缝集成。
# 立即启动,无需设置!
npx greptile-mcp-server --api-key=xxx --github-token=yyy
repo 权限# 立即启动(如果未设置凭据,将提示输入)
npx greptile-mcp-server
# 使用内联凭据
npx greptile-mcp-server --api-key=your_key --github-token=your_token
# 交互式设置向导
npx greptile-mcp-server init
# 测试连接
npx greptile-mcp-server test
在项目根目录创建一个 .env 文件:
GREPTILE_API_KEY=your_greptile_api_key_here
GITHUB_TOKEN=your_github_personal_access_token_here
GREPTILE_BASE_URL=https://api.greptile.com/v2 # 可选
Linux/macOS (Bash/Zsh):
# 当前会话
export GREPTILE_API_KEY="your_api_key_here"
export GITHUB_TOKEN="your_github_token_here"
# 永久设置(添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export GREPTILE_API_KEY="your_api_key_here"' >> ~/.bashrc
echo 'export GITHUB_TOKEN="your_github_token_here"' >> ~/.bashrc
source ~/.bashrc
Windows PowerShell:
# 当前会话
$env:GREPTILE_API_KEY="your_api_key_here"
$env:GITHUB_TOKEN="your_github_token_here"
# 永久设置
setx GREPTILE_API_KEY "your_api_key_here"
setx GITHUB_TOKEN "your_github_token_here"
# 注意:使用 setx 后需要重启终端
Windows 命令提示符:
# 当前会话
set GREPTILE_API_KEY=your_api_key_here
set GITHUB_TOKEN=your_github_token_here
# 永久设置
setx GREPTILE_API_KEY "your_api_key_here"
setx GITHUB_TOKEN "your_github_token_here"
Greptile API 密钥:
GitHub 令牌:
repo 权限给您想要索引的仓库添加到您的 claude_desktop_config.json 中:
{
"mcpServers": {
"greptile": {
"command": "npx",
"args": ["greptile-mcp-server"],
"env": {
"GREPTILE_API_KEY": "your_api_key",
"GITHUB_TOKEN": "your_github_token"
}
}
}
}
添加到您的 Continue 配置中:
{
"contextProviders": [
{
"name": "greptile-mcp",
"type": "mcp",
"serverName": "greptile",
"command": ["npx", "greptile-mcp-server"]
}
]
}
该服务器使用标准 MCP 协议,适用于任何 MCP 兼容客户端:
# 通用 MCP 客户端连接
your-mcp-client connect --command "npx greptile-mcp-server"
greptile_help获取全面文档和使用示例。
{
"name": "greptile_help"
}
index_repository索引一个仓库以便进行搜索。
{
"name": "index_repository",
"arguments": {
"remote": "github",
"repository": "microsoft/vscode",
"branch": "main",
"reload": true
}
}
query_repository使用自然语言查询仓库。
{
"name": "query_repository",
"arguments": {
"query": "如何在这个代码库中实现身份验证?",
"repositories": [
{
"remote": "github",
"repository": "microsoft/vscode",
"branch": "main"
}
],
"stream": false,
"session_id": "可选会话ID"
}
}
get_repository_info获取已索引仓库的信息。
{
"name": "get_repository_info",
"arguments": {
"remote": "github",
"repository": "microsoft/vscode",
"branch": "main"
}
}
# 1. 启动服务器
npx greptile-mcp-server
# 2. 在您的 MCP 客户端中索引一个仓库
{
"tool": "index_repository",
"arguments": {
"remote": "github",
"repository": "microsoft/vscode",
"branch": "main"
}
}
# 3. 查询代码库
{
"tool": "query_repository",
"arguments": {
"query": "VS Code 如何处理文件监视?",
"repositories": [{"remote": "github", "repository": "microsoft/vscode", "branch": "main"}]
}
}
// 从架构概述开始
const session = "exploration-session-1";
// 查询 1:高层次理解
{
"tool": "query_repository",
"arguments": {
"query": "这个代码库的整体架构是什么?",
"session_id": session,
"repositories": [...]
}
}
// 查询 2:深入挖掘(基于先前的上下文)
{
"tool": "query_repository",
"arguments": {
"query": "我们刚刚讨论的主要组件是如何相互作用的?",
"session_id": session // 同一会话以保持连续性
}
}
// 查询 3:实现细节
{
"tool": "query_repository",
"arguments": {
"query": "展示组件交互模式的具体实现",
"session_id": session
}
}
TypeScript 版本保持与 Python 实现的完全兼容性,并增加了显著改进:
# 旧的 Python 使用方式
python -m src.main
# 新的 TypeScript 使用方式
npx greptile-mcp-server
# 相同的 MCP 工具和 API 兼容性
# 不需要更改 MCP 客户端配置
设置后始终测试您的配置:
npx greptile-mcp-server test
问题:服务器找不到您的 API 密钥 解决方案:
# Linux/macOS
echo $GREPTILE_API_KEY
echo $GITHUB_TOKEN
# Windows PowerShell
echo $env:GREPTILE_API_KEY
echo $env:GITHUB_TOKEN
GREPTILE_API_KEY="your_key" GITHUB_TOKEN="your_token" npx greptile-mcp-server
问题:GitHub 令牌无效或权限不足 解决方案:
repo 权限问题:Greptile API 密钥无效或已过期 解决方案:
问题:NPX 缓存问题或安装不完整 解决方案:
npx clear-npx-cachenpx greptile-mcp-server@latest问题:Claude Desktop 或其他 MCP 客户端无法连接 解决方案:
npx greptile-mcp-server init 进行交互式设置npx greptile-mcp-server test 进行详细诊断A: 不需要!服务器通过 NPX 运行,无需安装。只需运行 npx greptile-mcp-server,它将自动下载并运行。
A: 可以!此服务器实现了标准的 Model Context Protocol,适用于 Claude Desktop、MCP CLI 工具和其他任何 MCP 兼容客户端。
A: 确保您的 GitHub 令牌具有私有仓库的 repo 权限。令牌需要访问您要索引的仓库。
A:
A: Greptile 的定价取决于您的使用情况。查看 Greptile 的定价页面 获取当前费率。此 MCP 服务器本身是免费且开源的。
A: 可以!您可以索引多个仓库并在所有仓库之间进行查询。使用 index_repository 工具为每个您想添加的仓库。
A: 索引时间因仓库大小而异。小型仓库(< 1000 文件)通常需要 1-2 分钟,而大型仓库可能需要 10-15 分钟。您可以使用 get_repository_info 工具检查状态。
A: 您的代码由 Greptile 的 API 根据他们的安全和隐私政策处理。查看 Greptile 的安全文档 了解有关数据处理和保留的详细信息。
A: 可以!该服务器可在 Windows、macOS 和 Linux 上运行。使用上面提供的平台特定环境变量设置说明。
A: 这通常意味着:
npx greptile-mcp-server 而不是 npx @greptile/mcp-server)# 克隆并设置
git clone https://github.com/greptile/mcp-server.git
cd mcp-server
npm install
# 开发模式带热重载
npm run dev
# 生产构建
npm run build
# 运行测试
npm test
# 类型检查
npm run typecheck
# 代码检查和格式化
npm run lint
npm run format
src/
├── cli.ts # NPX CLI 接口
├── server.ts # 核心 MCP 服务器实现
├── index.ts # 模块导出
├── clients/
│ └── greptile.ts # Greptile API 客户端
├── types/
│ └── index.ts # TypeScript 类型定义
└── utils/
└── index.ts # 工具函数
tests/
├── unit/ # 单元测试
└── integration/ # 集成测试
npx greptile-mcp-server \
--api-key="your_key" \
--github-token="your_token" \
--base-url="https://api.greptile.com/v2" \
--repositories='[{"remote":"github","repository":"owner/repo","branch":"main"}]' \
--stream=true \
--timeout=60000 \
--verbose
| 变量 | 描述 | 默认值 |
|---|---|---|
GREPTILE_API_KEY | Grept_ile API 密钥 | 必需 |
GITHUB_TOKEN | GitHub 个人访问令牌 | 必需 |
GREPTILE_BASE_URL | API 基础 URL | https://api.greptile.com/v2 |
创建 greptile.config.js:
export default {
apiKey: process.env.GREPTILE_API_KEY,
githubToken: process.env.GITHUB_TOKEN,
repositories: [
{ remote: 'github', repository: 'owner/repo', branch: 'main' }
],
features: {
streaming: true,
orchestration: true,
flowEnhancement: true
}
};
立即部署到 Smithery,无需配置