GG

galprz/grep-mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

40 stars 4 forks 质量 62 趋势 12MIT

一台通过 grep.app API 提供 GitHub 代码搜索功能的服务器。该服务器使 AI 助手能够在数百万个 GitHub 仓库中搜索特定的代码模式,...

概览

这是一个通过 grep.app API 提供 GitHub 代码搜索功能的服务器。该服务器使 AI 助手能够在数百万个 GitHub 仓库中搜索特定的代码模式、功能和实现。 - : 利用 grep.app 强大的搜索索引跨数百万个 GitHub 仓库进行搜索 - : 按编程语言、仓库和文件路径筛选结果 - : 结果包括语法高亮、仓库分组和摘要统计 - : 异步实现,具备正确的错误处理和速率限制 - 支持 stdio 和 SSE(服务器发送事件)传输 - 返回文件路径、行号、代码片段和仓库信息 - : 3.10 或更高版本 - : - mcp - 模型上下文协议框架 - starlette - 用于 SSE 传输的 Web 框架 - uvicorn - ASGI 服务器 - aiohttp - 用于 API 请求的异步 HTTP 客户端 - --transport:选择stdio(默认)或sse- --host:用于绑定SSE模式的主机(默认:0.0.0。

概述(AI 翻译)

一个**模型上下文协议(MCP)**服务器,通过 grep.app API提供GitHub代码搜索功能。该服务器使AI助手能够在数百万个GitHub仓库中搜索特定的代码模式、函数和实现。

🚀 特色

  • ** 🔍 GitHub 代码搜索**:利用 grep.app 强大的搜索索引跨数百万个 GitHub 仓库进行搜索
  • ** 🎯 高级过滤**:按编程语言、仓库和文件路径过滤结果
  • ** 📊 智能格式化**:结果包括语法高亮、仓库分组和摘要统计
  • ** ⚡ 高性能**:异步实现,具备正确的错误处理和速率限制
  • ** 🛠️ 多种传输模式**:支持stdio和SSE(服务器发送事件)传输
  • ** 📝 丰富结果**:返回文件路径、行号、代码片段和仓库信息

📋 要求

  • Python:3.10及以上
  • 依赖关系:
  • mcp - 模型上下文协议框架
  • starlette - SSE 传输的 Web 框架
  • uvicorn - ASGI 服务器
  • aiohttp - API 请求的异步 HTTP 客户端

🔧 安装

使用紫外线(推荐)

使用 pip

🎯 用途

本页由 AI 翻译,技术细节请以原文为准。

README

以下为原文 README 节选,完整内容请查看原文。

Grep MCP Server

A Model Context Protocol (MCP) server that provides GitHub code search capabilities through the grep.app API. This server enables AI assistants to search through millions of GitHub repositories for specific code patterns, functions, and implementations.

🚀 Features

  • 🔍 GitHub Code Search: Search across millions of GitHub repositories using grep.app’s powerful search index
  • 🎯 Advanced Filtering: Filter results by programming language, repository, and file path
  • 📊 Smart Formatting: Results include syntax highlighting, repository grouping, and summary statistics
  • ⚡ High Performance: Async implementation with proper error handling and rate limiting
  • 🛠️ Multiple Transport Modes: Supports both stdio and SSE (Server-Sent Events) transport
  • 📝 Rich Results: Returns file paths, line numbers, code snippets, and repository information

📋 Requirements

  • Python: 3.10 or higher
  • Dependencies:
    • mcp - Model Context Protocol framework
    • starlette - Web framework for SSE transport
    • uvicorn - ASGI server
    • aiohttp - Async HTTP client for API requests

🔧 Installation

# Install directly from PyPI
uv add grep-mcp

# Or install from source
git clone https://github.com/galperetz/grep-mcp.git
cd grep-mcp
uv sync

Using pip

pip install grep-mcp

🎯 Usage

Add to your MCP client configuration:

{
  "mcpServers": {
    "grep-mcp": {
      "command": "uvx",
      "args": ["grep-mcp"]
    }
  }
}

Direct Execution

# Run with stdio transport (default)
python -m grep_mcp

# Run with SSE transport
python -m grep_mcp --transport sse --host 0.0.0.0 --port 8080

Command Line Arguments

  • --transport: Choose between stdio (default) or sse
  • --host: Host to bind to for SSE mode (default: 0.0.0.0)
  • --port: Port to listen on for SSE mode (default: 8080)

🔧 Available Tools

grep_query

Search GitHub repositories for specific code patterns.

Parameters:

  • query (required): The search query string
  • language (optional): Programming language filter (e.g., “Python”, “JavaScript”)
  • repo (optional): Repository filter in format “owner/repo” (e.g., “fastapi/fastapi”)
  • path (optional): Path filter for specific directories (e.g., “src/”)

Examples:

# Basic search
grep_query("async def main")

# Search Python files only
grep_query("FastAPI", language="Python")

# Search specific repository
grep_query("class Config", repo="fastapi/fastapi")

# Search in specific directory
grep_query("import", path="src/")

# Combined filters
grep_query("async def", language="Python", repo="fastapi/fastapi")

📊 Response Format

The tool returns structured JSON with:

{
  "query": "your search query",
  "summary": {
    "total_results": 12345,
    "results_shown": 10,
    "repositories_found": 4,
在 GitHub 查看完整 README

安装

uvx grep-mcp
新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "grep-mcp": { "command": "uvx", "args": ["grep-mcp"] } } }