A Cloudflare-powered MCP (Model Context Protocol) Server that allows you to search and query your GitHub starred repositories using natural language.
English | 简体中文
This project creates a searchable database of your GitHub starred repositories by:
- Fetching all your starred repositories using the GitHub API
- Extracting and processing the README files from each repository
- Uploading the processed data to Cloudflare R2 storage
- Using Cloudflare AutoRAG to create embeddings for efficient searching
- Exposing a MCP Server that allows querying these repositories via natural language
- Automatically fetches and processes GitHub starred repositories
- Scheduled weekly updates via GitHub Actions
- Stores repository metadata and README content
- Provides semantic search capabilities through Cloudflare AutoRAG
- Exposes a MCP-compatible API for integration with AI agents
- Node.js (v22 recommended)
- PNPM package manager
- GitHub Personal Access Token with
reposcope - Cloudflare account
-
Clone this repository
-
Set up Cloudflare R2:
- Create a R2 bucket
- Configure R2 access credentials
-
Configure GitHub Secrets for the CI/CD workflow:
GH_TOKEN: GitHub token for fetching starred repositoriesR2_ACCOUNT_ID: Cloudflare account IDR2_ACCESS_KEY_ID: R2 access keyR2_SECRET_ACCESS_KEY: R2 secret keyR2_BUCKET: R2 bucket name
-
Configure Cloudflare AutoRAG:
- Create an AutoRAG instance in Cloudflare
- Set the
AUTO_RAG_NAMEenvironment variable in your Cloudflare Worker MCP_API_KEY: API key for securing MCP server access (generate a secure random string)
To develop locally:
# Install dependencies
pnpm install
# Fetch your GitHub stars locally
pnpm dev:stars
# Run MCP server locally
pnpm dev:mcpDeploy to Cloudflare Workers:
pnpm deployThe GitHub Action will automatically:
- Run weekly to update your starred repositories
- Upload the processed files to R2
- Rebuild the AutoRAG index
Once deployed, you can interact with the MCP Server using any MCP-compatible client:
The MCP server requires API key authentication for security. Include your MCP_API_KEY in the request headers:
Authorization: Bearer your-mcp-api-keyStreamable HTTP: https://your-worker-url.workers.dev
Searches through your starred GitHub repositories.
Parameters:
query(string): Natural language query to search repositories
Response:
- JSON result containing matching repositories and relevant README content