Skip to content

Repository files navigation

GitHub Search Tool

一个基于 MCP 协议的 GitHub 仓库搜索工具,支持自然语言搜索和可视化结果展示。

✨ 特性

  • 🔍 自然语言搜索: 使用 DeepSeek LLM 将自然语言转换为 GitHub 搜索语法
  • 📊 Web 可视化: 搜索结果以卡片形式展示,美观直观
  • ⚙️ 灵活配置: 通过 JSON 配置文件管理所有设置
  • 🔄 自动重试: 支持指数退避重试机制
  • 📄 分页支持: 支持分页查询
  • 🔐 Token 管理: 支持 GitHub Token 配置
  • 🌐 多模式运行: MCP 标准模式、HTTP 服务模式、命令行交互模式和 Web 可视化模式

📁 文件结构

github_search_tool/
├── web_app.py           # Web 可视化展示工具
├── github_search_ai.py   # CLI 命令行工具
├── mcp_github_search/    # MCP 服务器模块
│   ├── mcp_server.py    # MCP 服务器主文件
│   ├── config.json      # 配置文件
│   └── README.md        # MCP 模块说明
├── templates/           # Web 模板目录
│   └── results.html     # 搜索结果展示页面
├── test_search.py       # 测试文件
└── requirements.txt     # 依赖列表

🚀 快速开始

1. 安装依赖

pip install flask

2. 设置环境变量(可选)

export GITHUB_TOKEN="your_github_token"
export DEEPSEEK_API_KEY="your_deepseek_api_key"

3. 使用方式

方式一:Web 可视化展示(推荐)

直接搜索并在浏览器中展示结果:

python3 web_app.py "Python web框架 高星"

这会自动打开 Safari 浏览器,展示搜索结果的可视化页面。

方式二:命令行交互

python3 github_search_ai.py

方式三:MCP 服务器模式

python3 -m mcp_github_search.server

方式四:HTTP 服务模式

python3 mcp_github_search/mcp_server.py --server

🖥️ Web 可视化功能

Web 界面特点:

  • 🎨 紫色渐变背景设计
  • 📦 卡片式展示搜索结果
  • 👤 显示仓库所有者头像
  • ⭐ 展示 Star、Fork、Watcher 数量
  • 📅 显示最近更新时间
  • 🔗 点击卡片直接跳转到 GitHub

🛠️ 工具列表

github_search

搜索 GitHub 仓库

参数 类型 必填 说明
query string 自然语言搜索查询
token string GitHub Token
llm_api_key string DeepSeek API Key
page integer 页码(默认 1)
per_page integer 每页数量(默认 10)

set_github_token

保存 GitHub Token

get_github_token

检查 Token 配置状态

get_config

获取当前配置

reload_config

重新加载配置文件

🔧 配置说明

配置文件位于 mcp_github_search/config.json

{
    "version": "2.2.0",
    "server": {
        "host": "localhost",
        "port": 8000
    },
    "github": {
        "api_url": "https://api.github.com/search/repositories",
        "default_per_page": 10,
        "max_per_page": 100
    },
    "llm": {
        "enabled": true,
        "api_url": "https://api.deepseek.com/v1/chat/completions",
        "model": "deepseek-chat"
    }
}

📋 更新日志

v2.3.0

  • ✅ 添加 Web 可视化功能
  • ✅ 支持通过命令行参数直接打开 Web 页面展示结果

v2.2.0

  • ✅ 配置文件抽象化,所有硬编码改为配置驱动
  • ✅ 添加 Config 单例类管理配置
  • ✅ 支持配置热重载

v2.1.0

  • ✅ 集成 DeepSeek LLM 进行自然语言查询转换

v2.0.0

  • ✅ 添加重试机制和分页功能

📄 许可证

MIT License

About

按照需求搜索github项目用的

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages