Skip to main content
Glama

MCP Enhanced Data Retrieval System

by kalpalathika
SETUP_INSTRUCTIONS.md4.72 kB
# Setup Instructions for GitHub Integration ## ✅ Task 1: GitHub Integration - COMPLETED The GitHub client has been successfully integrated with the MCP server handlers! **What was implemented:** - ✅ GitHubClient initialized in MCPHandler - ✅ Real API calls in `_execute_github_get_repo()` - ✅ Real API calls in `_execute_github_get_file()` - ✅ Real API calls in `_execute_github_search_code()` - ✅ Repository context formatting helper - ✅ Error handling for all GitHub API operations - ✅ Cleanup in MCPHandler shutdown **Files modified:** - `src/server/mcp_handler.py:15-20` - Added GitHubClient import - `src/server/mcp_handler.py:40-66` - Initialize GitHubClient in __init__ - `src/server/mcp_handler.py:175-192` - Added cleanup for GitHubClient - `src/server/mcp_handler.py:414-471` - Implemented real GitHub repo retrieval - `src/server/mcp_handler.py:473-545` - Implemented real GitHub code search - `src/server/mcp_handler.py:547-617` - Implemented real GitHub file retrieval - `src/server/mcp_handler.py:624-667` - Added repository context formatter --- ## 🔧 Next Step: Configure GitHub Token To use the GitHub API integration, you need a valid GitHub Personal Access Token. ### Option 1: Use Without Authentication (Limited) For quick testing, you can skip authentication but you'll be limited to 60 requests/hour. Edit `.env` and remove or comment out the GITHUB_TOKEN line: ```bash # GITHUB_TOKEN= ``` ### Option 2: Create a GitHub Personal Access Token (Recommended) 1. **Go to GitHub Settings:** - Navigate to: https://github.com/settings/tokens - Or: GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic) 2. **Generate New Token:** - Click "Generate new token (classic)" - Name: `MCP Data Retrieval System` - Expiration: Choose your preference (90 days recommended) 3. **Select Scopes:** For this project, you need: - ✅ `repo` (Full control of private repositories) - Includes: `repo:status`, `repo_deployment`, `public_repo`, `repo:invite` - ✅ `read:org` (Read organization data) - Optional - ✅ `read:user` (Read user profile data) - Optional 4. **Copy the Token:** - Click "Generate token" - **IMPORTANT:** Copy the token immediately (you won't see it again!) - It looks like: `ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` 5. **Add to .env file:** ```bash GITHUB_TOKEN=ghp_your_actual_token_here ``` 6. **Test the integration:** ```bash venv/bin/python test_github_integration.py ``` --- ## 🧪 Testing the Integration ### Quick Test ```bash cd /Users/kalpalathikaramanujam/Data/MCP\ Enhanced\ Data\ Retrieval\ System venv/bin/python test_github_integration.py ``` ### Start the MCP Server ```bash venv/bin/python -m src.server.main ``` Then visit: - Health check: http://localhost:8000/health - API docs: http://localhost:8000/docs --- ## 📋 Remaining Tasks ### Task 2: Implement 1500-Token Context Chunking (HIGH PRIORITY) - Create `src/utils/chunking.py` - Use tiktoken to count tokens - Implement smart chunking that respects code boundaries - Integrate into tool responses ### Task 3: OAuth 2.1 Authentication Flow (MEDIUM PRIORITY) - Create `src/auth/oauth.py` - Add `/auth/login` and `/auth/callback` endpoints - Store and refresh access tokens ### Task 5: End-to-End Integration Testing (HIGH PRIORITY) - Test MCP protocol handshake - Test tool calls with real GitHub data - Verify response format ### Task 6: Basic Vector Storage (LOW PRIORITY - Optional) - Set up ChromaDB for embeddings - Index GitHub content for semantic search --- ## 🎯 Success Criteria for Milestone 1 From your documentation, you need: ✅ **OAuth 2.1 authentication** - Partially done (token-based, OAuth flow pending) ✅ **1500-token context chunking** - To be implemented next ✅ **Functional MCP server** - Done! Server can retrieve GitHub data ✅ **Retrieve and contextualize GitHub repository information** - Done! **Next immediate step:** Implement the 1500-token chunking mechanism (Task 2) --- ## 🐛 Troubleshooting ### "Bad credentials" error - Your GITHUB_TOKEN in `.env` is invalid or expired - Follow the steps above to create a new token ### Module not found errors - Run: `venv/bin/pip install -r requirements.txt` ### Virtual environment issues - Recreate: `rm -rf venv && python3 -m venv venv` - Reinstall: `venv/bin/pip install -r requirements.txt` --- ## 📚 References - [GitHub Personal Access Tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) - [PyGithub Documentation](https://pygithub.readthedocs.io/) - [MCP Protocol Spec](https://spec.modelcontextprotocol.io/)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kalpalathika/MCP-Enhanced-Data-Retrieval-System'

If you have feedback or need assistance with the MCP directory API, please join our Discord server