A Cloudflare Worker that scans GitHub repositories and provides a structured view of the repository files, directories, and contents. Perfect for integrating with Smithery and other MCP tools.
- 📁 Scans any public or private GitHub repository (with appropriate token)
- 🧠 Creates a structured tree view of repository files and directories
- 📝 Shows file contents for easy viewing
- 🚀 Caches repository data for 24 hours to improve performance
- 🔄 Provides both HTML and JSON output formats
- 🔒 Secure - users provide their own GitHub tokens
Visit the deployed worker URL in your browser to access the web interface.
Make a GET request to the /scan endpoint with the following parameters:
/scan?url=REPO_URL&token=YOUR_GITHUB_TOKEN&format=json
Parameters:
url: GitHub repository URL (e.g., https://github.com/username/repo)token: Your GitHub personal access token withrepoorpublic_reposcopeformat: (optional) Response format, usejsonfor machine-readable output
Example:
/scan?url=https://github.com/username/repo&token=ghp_xxxx&format=json
The JSON response includes:
{
"success": true,
"data": {
"name": "repository-name",
"owner": "owner-name",
"projectStructure": {
"files": ["root-level-file1", "root-level-file2"],
"directories": {
"dir1": {
"files": ["file-in-dir1"],
"directories": {}
}
}
},
"fileContents": {
"file-path": "file content",
"dir1/file-in-dir1": "content of file in dir1"
},
"timestamp": 1679000000000
},
"cached": false,
"timestamp": 1679000000000
}- Clone this repository
- Install dependencies with
npm install - Deploy with
npm run deploy
A Dockerfile is included for deployment on platforms that support Docker containers:
docker build -t github-repo-scanner .
docker run -p 8787:8787 github-repo-scannerThis worker is designed to be easily integrated with Smithery. When deploying on Smithery:
- Fork or clone this repository
- Deploy using the Smithery platform
- Users will need to provide their own GitHub tokens when using the tool
A GitHub Personal Access Token with the following scopes is required:
reposcope for private repositoriespublic_reposcope for public repositories
Create a token at: https://github.com/settings/tokens
MIT