使用说明
项目简介
本项目是一个 MCP (Model Context Protocol) 服务器,旨在帮助用户更方便地管理和检索自己在 GitHub 上 Star 的仓库。它通过抓取用户的 Star 仓库信息、处理仓库的 README 文件,并利用 Cloudflare AutoRAG 提供语义搜索功能,最终以 MCP 接口的形式对外提供服务,方便 AI Agent 等 MCP 客户端调用。
主要功能点
- 自动同步 GitHub Star 仓库: 定期抓取用户 GitHub Star 仓库列表和 README 文件。
- 语义搜索: 基于 Cloudflare AutoRAG 提供对 Star 仓库内容(主要是 README)的自然语言语义搜索能力。
- MCP 兼容 API: 提供符合 MCP 协议标准的 API 接口,方便集成到各类 MCP 客户端,特别是 AI Agent。
- 工具 (Tool) 注册: 注册 'search_github_stars' 工具,允许客户端通过该工具进行仓库搜索。
安装步骤
- 克隆仓库: 将 GitHub 仓库 'ccbikai/github-stars' 克隆到本地。
- 安装依赖: 确保已安装 Node.js (推荐 v22) 和 PNPM,然后在项目根目录下运行 'pnpm install' 安装项目依赖。
- 配置 Cloudflare R2:
- 创建一个 Cloudflare R2 存储桶 (Bucket) 用于存储仓库数据。
- 配置 R2 访问凭证(账户 ID、访问密钥 ID、秘密访问密钥)。
- 配置 GitHub Secrets: 在 GitHub 仓库的 Settings -> Secrets and variables -> Actions 中添加以下 Secrets:
- 'GH_TOKEN': GitHub Personal Access Token,需要 'repo' 权限。
- 'R2_ACCOUNT_ID': Cloudflare 账户 ID。
- 'R2_ACCESS_KEY_ID': R2 访问密钥 ID。
- 'R2_SECRET_ACCESS_KEY': R2 秘密访问密钥。
- 'R2_BUCKET': R2 存储桶名称。
- 配置 Cloudflare AutoRAG:
- 在 Cloudflare 中创建一个 AutoRAG 实例。
- 在 Cloudflare Worker 的环境变量中设置 'AUTO_RAG_NAME' 为 AutoRAG 实例的名称。
- 部署到 Cloudflare Workers: 运行 'pnpm deploy' 将项目部署到 Cloudflare Workers。
服务器配置
对于 MCP 客户端,需要配置连接到 GitHub Star 搜索服务器的信息。以下是一个 JSON 格式的配置示例,通常在 MCP 客户端的服务器管理或连接设置中添加:
{ "serverName": "GitHub Stars Search", "transport": "sse", "command": "https://your-worker-url.workers.dev", "protocol": "json-rpc", "apiVersion": "1.0", "description": "GitHub Star 搜索服务器,提供搜索 GitHub Star 仓库的功能。", "capabilities": [ "tools" ] }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,例如 "GitHub Stars Search"。
- 'transport': 传输协议,本项目使用 SSE (Server-Sent Events)。
- 'command': 服务器地址,替换 'https://your-worker-url.workers.dev' 为您部署的 Cloudflare Worker 的 URL。
- 'protocol': 通信协议,本项目使用 JSON-RPC。
- 'apiVersion': API 版本,当前版本为 "1.0"。
- 'description': 服务器描述信息,可选。
- 'capabilities': 服务器提供的能力列表,本项目提供 "tools" 能力。
基本使用方法
部署完成后,您可以使用任何兼容 MCP 协议的客户端连接到该服务器。客户端可以通过 JSON-RPC 请求调用服务器注册的工具。
示例:使用 'search_github_stars' 工具
客户端可以发送如下 JSON-RPC 请求来调用 'search_github_stars' 工具,搜索包含关键词 "自然语言处理" 的 GitHub Star 仓库:
{ "jsonrpc": "2.0", "method": "call", "params": { "tool_call_id": "search-github-stars-1", "tool_name": "search_github_stars", "parameters": { "query": "自然语言处理" } }, "id": 1 }
服务器会返回包含搜索结果的 JSON-RPC 响应。具体的响应格式请参考仓库 'README.md' 中的 API Reference 部分。
信息
分类
开发者工具