Skip to main content
Glama

GitHub Repos Manager MCP Server

TEST-CLIENT-GUIDE.md23.1 kB
# 🧪 GitHub Repos Manager MCP Tools - Complete Testing Guide & Reference for MCP Clients <div align="center"> **📋 Comprehensive Testing Manual** **🎯 Tool Validation Procedures** **🔧 Troubleshooting Guide** **📊 Results Analysis Framework** </div> --- ## 📚 Table of Contents 1. [Testing Overview](#testing-overview) 2. [Test Environment Specifications](#test-environment-specifications) 3. [Pre-Test Setup](#pre-test-setup) 4. [Category-by-Category Testing](#category-by-category-testing) 5. [Test Results Analysis](#test-results-analysis) 6. [Common Issues & Troubleshooting](#common-issues--troubleshooting) 7. [Performance Benchmarks](#performance-benchmarks) 8. [Test Evidence Collection](#test-evidence-collection) 9. [Reporting Templates](#reporting-templates) --- ## 🔍 Testing Overview ### 📊 What We Test | Category | Tools Count | Key Functions | Critical Areas | |----------|-------------|---------------|----------------| | **Repository Management** | 5 | List, info, search, contents | Basic connectivity | | **Issue Management** | 12 | CRUD operations, comments | Core functionality | | **Pull Request Management** | 6 | Create, review, manage | Previously problematic | | **Branch & Commit Operations** | 6 | Branch lifecycle, commits | Version control | | **File & Content Management** | 5 | File CRUD operations | Content handling | | **Labels & Milestones** | 8 | Project organization | Metadata management | | **User & Collaboration** | 3 | User info, collaborators | Access control | | **Repository Analytics** | 8 | Stats, metrics, insights | Data accuracy | | **Search & Discovery** | 7 | Advanced search features | Query performance | | **Security & Access** | 7 | Keys, webhooks, secrets | Security features | | **GitHub Actions** | 6 | Workflow management | CI/CD integration | | **Organization Management** | 6 | Org-level operations | Enterprise features | ### 🎯 Testing Objectives - **Functionality Validation**: Ensure all tools work as expected - **Performance Monitoring**: Check response times and reliability - **Error Handling**: Validate graceful failure handling - **Data Accuracy**: Verify responses match GitHub web interface - **Integration Testing**: Confirm end-to-end workflows work - **Regression Testing**: Ensure updates don't break existing features --- ## 🖥️ Test Environment Specifications ### 🤖 Supported MCP Clients and Models #### ** Test Environments** | Client | Model | Status | |--------|-------|--------| | **Claude Desktop** | Claude Sonnet 4, Claude Opus 4 | ✅ **Recommended** - Full feature support | | **Continue (VS Code)** | GPT-4, Claude, Local models | 🧪 **Secondary** - Community testing | | **Cline** | Various providers | 🧪 **Secondary** - Community testing | | **Custom MCP Client** | Any supported model | 🔧 **Advanced** - For debugging specific issues | ### 🎯 Default Test Repository **Unless specified otherwise, all testing should be conducted in:** ``` Repository: kurdin/github-repos-manager-mcp-tests Owner: kurdin Visibility: Private Purpose: Dedicated testing environment URL: https://github.com/kurdin/github-repos-manager-mcp-tests ``` #### **Why This Repository?** - ✅ **Isolated Environment**: No impact on production code - ✅ **Pre-configured**: Contains test data, issues, branches - ✅ **Permission Control**: Private repository for safe testing - ✅ **Test History**: Preserves testing artifacts and evidence - ✅ **Comprehensive Setup**: Labels, milestones, and sample content ready #### **Test Repository Contents** ``` ├── README.md (basic repository info) ├── index.js (sample JavaScript file) ├── test-files/ (directory for file operation tests) ├── npm-update-tests/ (NPM version testing artifacts) ├── retest-validation/ (comprehensive test files) └── Various branches for testing (main, feature branches, etc.) ``` ### 🔧 Client Configuration Requirements #### **Claude Desktop Setup** Ensure your `claude_desktop_config.json` includes: ```json { "mcpServers": { "github-repos-manager": { "command": "npx", "args": ["github-repos-manager-mcp"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "your_github_token_here" } } } } ``` #### **Required GitHub Token Permissions** ``` ✅ repo (Full control of private repositories) ✅ read:user (Read user profile data) ✅ read:org (Read organization data) ✅ write:repo_hook (Write repository hooks) ``` ### 🎯 Test Session Initialization **Start every test session with:** ``` 1. Verify MCP client connection 2. Set default repository to kurdin/github-repos-manager-mcp-tests 3. Confirm authentication is working 4. Check repository access permissions ``` **Command Sequence:** ``` local__github-repos-manager__set_default_repo ├── owner: kurdin └── repo: github-repos-manager-mcp-tests local__github-repos-manager__get_user_info (Verify authentication works) local__github-repos-manager__get_repo_info (Confirm repository access) ``` --- ## ⚙️ Pre-Test Setup ### 1. Environment Preparation ```bash # Ensure GitHub MCP is properly installed npm list | grep github-repos-manager-mcp # Verify MCP client configuration includes the GitHub MCP server # Check client-specific configuration files # Confirm you're using a supported test environment: # - Any compatible MCP client # - Any supported LLM model # - Access to kurdin/github-repos-manager-mcp-tests repository ``` ### 2. Test Repository Verification **Standard Test Repository (Default):** ``` Repository: kurdin/github-repos-manager-mcp-tests Owner: kurdin Type: Private Status: ✅ Ready for testing (pre-configured with test data) ``` **Repository Features Available for Testing:** - Multiple issues in various states (open/closed) - Several pull requests for PR testing - Multiple branches for branch operations - Existing labels and milestones - Sample files and directories - Comprehensive test history and artifacts **Alternative Repository Setup (Only if needed):** If you need to test with a different repository, ensure it has: - Read/write access for your GitHub token - At least 2-3 issues with different states - 1-2 branches beyond main - Some existing labels and milestones - Permission to create branches and files ### 3. Authentication Verification ```bash # Verify GitHub token has required permissions: # - repo (full control of private repositories) # - read:user (read user profile data) # - read:org (read organization data) ``` ### 4. Default Repository Setting **Standard Testing Procedure (Always start with this):** ``` local__github-repos-manager__set_default_repo ├── owner: kurdin └── repo: github-repos-manager-mcp-tests ``` **Expected Response:** ``` 📦 Default repository set to: kurdin/github-repos-manager-mcp-tests ``` **Alternative Repository (Only if testing specific scenarios):** ``` local__github-repos-manager__set_default_repo ├── owner: your-username └── repo: your-test-repository ``` **⚠️ Important Note:** Unless specifically testing with a different repository, ALL testing procedures assume you're using `kurdin/github-repos-manager-mcp-tests` as the default repository. --- ## 🧪 Category-by-Category Testing ### 1. 📁 Repository Management Tools #### Test Sequence: ``` 1. set_default_repo → Verify default repo is set 2. list_repos → Check pagination and filtering 3. get_repo_info → Validate complete metadata 4. get_repo_contents → Verify file listing 5. search_repos → Test search functionality ``` #### Expected Results: - **Response Time**: <3 seconds per operation - **Data Accuracy**: Matches GitHub web interface exactly - **Completeness**: All fields populated correctly #### Sample Test Commands: ``` local__github-repos-manager__set_default_repo ├── owner: kurdin └── repo: github-repos-manager-mcp-tests local__github-repos-manager__list_repos ├── per_page: 5 ├── sort: updated └── visibility: all local__github-repos-manager__get_repo_info (no parameters - uses default repo) ``` #### Validation Checklist: - [ ] Default repo setting shows confirmation message - [ ] Repository list includes expected repos with metadata - [ ] Repository info shows correct stats (issues, stars, size) - [ ] File contents list shows all expected files - [ ] Search returns relevant results with proper sorting ### 2. 🎫 Issue Management Tools #### Test Sequence: ``` 1. list_issues → Check existing issues 2. create_issue → Create new test issue 3. get_issue_details → Verify complete issue data 4. edit_issue → Update title/body 5. create_issue_comment → Add comment 6. list_issue_comments → Verify comment listing ``` #### Expected Results: - **Issue Creation**: Properly formatted with labels and assignees - **Comment System**: Full threading and editing support - **Metadata Handling**: Labels, assignees, milestones correctly managed #### Sample Test Commands: ``` local__github-repos-manager__create_issue ├── title: "Test Issue: Validation Run" ├── body: "This issue validates MCP functionality..." ├── labels: ["testing", "validation", "mcp"] └── assignees: ["your-username"] local__github-repos-manager__create_issue_comment ├── issue_number: 1 └── body: "Testing comment functionality" ``` #### Validation Checklist: - [ ] Issue creation returns proper GitHub URL - [ ] All specified labels and assignees are applied - [ ] Issue details match what was created - [ ] Comments appear correctly with timestamps - [ ] Edit operations update issues properly ### 3. 🔀 Pull Request Management Tools #### Test Sequence: ``` 1. list_prs → Check existing PRs 2. create_pull_request → Create new PR 3. get_pr_details → Verify PR metadata 4. list_pr_files → Check changed files 5. create_pr_review → Add review comment 6. list_pr_reviews → Verify review listing ``` #### Expected Results: - **PR Creation**: Successful with proper branch references - **Review System**: Comment reviews work (approval testing limited by GitHub rules) - **File Tracking**: Accurate diff and change information #### Sample Test Commands: ``` local__github-repos-manager__create_pull_request ├── title: "Test PR: Feature Validation" ├── body: "This PR tests the pull request functionality..." ├── head: "feature-branch" └── base: "main" local__github-repos-manager__create_pr_review ├── pull_number: 1 ├── body: "Testing review functionality" └── event: "COMMENT" ``` #### Validation Checklist: - [ ] PR creation succeeds with valid GitHub URL - [ ] PR details show correct branch references - [ ] File lists show accurate diffs and statistics - [ ] Reviews can be created and listed - [ ] All GitHub API responses are complete ### 4. 🌿 Branch & File Management Tools #### Test Sequence: ``` 1. list_branches → Check existing branches 2. create_branch → Create test branch 3. create_file → Add file to new branch 4. update_file → Modify file content 5. list_commits → Check commit history ``` #### Expected Results: - **Branch Operations**: Clean creation and listing - **File Operations**: Proper commit integration - **Version Control**: Accurate commit tracking #### Sample Test Commands: ``` local__github-repos-manager__create_branch ├── branch_name: "test-feature-branch" └── from_branch: "main" local__github-repos-manager__create_file ├── path: "test-files/validation.md" ├── content: "# Test File Content..." ├── message: "Add test validation file" └── branch: "test-feature-branch" ``` #### Validation Checklist: - [ ] Branch creation returns proper SHA reference - [ ] File creation generates commit with correct message - [ ] File updates preserve history - [ ] Commit listings show accurate metadata - [ ] All operations maintain repository integrity ### 5. 🏷️ Labels & Analytics Tools #### Test Sequence: ``` 1. list_repo_labels → Check existing labels 2. create_label → Create test label 3. list_milestones → Check milestones 4. get_repo_languages → Verify language stats 5. list_repo_topics → Check repository topics ``` #### Expected Results: - **Label Management**: Proper color and description handling - **Analytics Accuracy**: Stats match repository reality - **Topic Management**: Current topic list #### Sample Test Commands: ``` local__github-repos-manager__create_label ├── name: "test-validation" ├── color: "00ff00" └── description: "Label for testing validation" local__github-repos-manager__get_repo_languages (no parameters) ``` #### Validation Checklist: - [ ] Label creation shows correct color codes - [ ] Language statistics are accurate - [ ] Topics list is current and complete - [ ] Milestones show proper due dates and progress ### 6. 🔍 Search & User Tools #### Test Sequence: ``` 1. search_issues → Test issue search 2. search_repos → Test repository search 3. get_user_info → Verify user profile 4. list_repo_collaborators → Check access ``` #### Expected Results: - **Search Accuracy**: Relevant results with proper ranking - **User Data**: Complete profile information - **Access Control**: Correct permission levels #### Sample Test Commands: ``` local__github-repos-manager__search_issues ├── query: "repo:your-username/test-repo state:open" └── per_page: 5 local__github-repos-manager__get_user_info (no parameters - gets authenticated user) ``` #### Validation Checklist: - [ ] Search results are relevant and properly formatted - [ ] User profile shows accurate statistics - [ ] Collaborator lists show correct permissions - [ ] All data matches GitHub web interface --- ## 📊 Test Results Analysis ### 🎯 Success Criteria | Metric | Excellent | Good | Needs Attention | |--------|-----------|------|-----------------| | **Functionality** | 100% tools working | 95-99% working | <95% working | | **Response Time** | <2s average | 2-5s average | >5s average | | **Data Accuracy** | 100% match with GitHub | 99% accuracy | <99% accuracy | | **Error Handling** | Graceful failures | Some error messages | Poor error handling | ### 📈 Performance Benchmarks **Expected Response Times:** - **Simple Operations** (get_user_info, set_default_repo): <1 second - **Medium Operations** (list_issues, get_repo_info): 1-2 seconds - **Complex Operations** (search_repos, create_pull_request): 2-3 seconds - **Heavy Operations** (comprehensive searches): 3-5 seconds **Quality Indicators:** - All GitHub URLs should be functional - Timestamps should be in proper ISO 8601 format - Metadata should be complete and accurate - Response formats should be consistent --- ## 🚨 Common Issues & Troubleshooting ### 1. Authentication Problems **Symptoms:** - 401 Unauthorized errors - "Bad credentials" messages - Empty or limited responses **Solutions:** ```bash # Check token permissions # Verify token in GitHub Settings > Personal Access Tokens # Ensure token has required scopes: repo, read:user, read:org # Test token manually: curl -H "Authorization: token YOUR_TOKEN" https://api.github.com/user ``` ### 2. Tool Not Found Errors **Symptoms:** - "Tool 'local__github-repos-manager__*' not found" - Tool execution failures **Solutions:** ```bash # Verify MCP server configuration # Check client config file # Restart MCP client application # Verify npm package is latest version ``` ### 3. Rate Limiting Issues **Symptoms:** - 403 Forbidden with rate limit messages - Slow responses or timeouts **Solutions:** - Wait for rate limit reset (usually 1 hour) - Use authenticated requests (higher limits) - Implement delays between test operations ### 4. Permission Errors **Symptoms:** - "Not Found" errors for accessible repositories - Missing data in responses **Solutions:** - Verify repository access permissions - Check if repository is public vs private - Ensure token has appropriate organization access ### 5. Pull Request Creation Failures **Symptoms:** - "Not Found" errors during PR creation - Branch reference issues **Solutions:** - Verify both branches exist - Ensure branches have different commit histories - Check branch names for typos - Verify repository allows pull requests --- ## ⚡ Performance Benchmarks ### 📊 Baseline Metrics (Expected) | Operation Category | Response Time Target | Success Rate Target | |-------------------|---------------------|-------------------| | **Repository Info** | <1.5s | 100% | | **Issue Operations** | <2s | 100% | | **PR Operations** | <3s | 100% | | **Search Operations** | <4s | 100% | | **File Operations** | <3s | 100% | ### 🎯 Quality Metrics | Quality Aspect | Target | Measurement Method | |----------------|--------|-------------------| | **Data Accuracy** | 100% | Compare with GitHub web interface | | **URL Validity** | 100% | All returned URLs should be accessible | | **Response Completeness** | 100% | All expected fields populated | | **Error Handling** | Graceful | Clear, actionable error messages | --- ## 📋 Test Evidence Collection ### 🎯 Required Evidence for Complete Testing #### For Each Test Run, Document: 1. **Environment Information** ``` - Test Date: YYYY-MM-DD - NPM Package Version: X.X.X - Test Repository: username/repo-name - Tester: Name/Role ``` 2. **Created Test Artifacts** ``` - Issues Created: List with URLs - Branches Created: List with commit SHAs - Files Created: List with paths and sizes - Comments Added: List with IDs - Labels/Milestones: List with details ``` 3. **Performance Metrics** ``` - Average Response Times per category - Slowest operations identified - Any timeout or failure incidents - Overall success rate percentage ``` 4. **Functional Validation** ``` - Screenshots of key operations (optional) - Comparison with GitHub web interface - Verification of data accuracy - End-to-end workflow testing ``` ### 📊 Test Evidence Template ```markdown ## Test Evidence Summary **Test Session**: [Date/Time] **Package Version**: [Version Number] **Test Repository**: [Repository URL] ### Artifacts Created - Issue #X: [Title] - [URL] - Branch: [name] - [SHA] - File: [path] - [size] - Labels: [list] ### Performance Results - Repository Operations: [X.Xs average] - Issue Operations: [X.Xs average] - PR Operations: [X.Xs average] - Search Operations: [X.Xs average] ### Quality Assessment - Functionality: [X/Y tools working] ([percentage]%) - Data Accuracy: [assessment] - Error Handling: [assessment] - Overall Rating: [rating/5 stars] ``` --- ## 📝 Reporting Templates ### 🎯 Quick Test Report Template ```markdown # GitHub MCP Quick Test Report **Date**: [Date] **Version**: [Package Version] **Repository**: [Test Repository URL] ## Test Environment **MCP Client**: [Client Name and Version] **LLM Model**: [Model Name and Version] ## Summary - **Tools Tested**: [Number] - **Success Rate**: [Percentage]% - **Average Response**: [Time]s - **Critical Issues**: [Number] ## Category Results - [ ] Repository Management ([X/5] tools) - [ ] Issue Management ([X/12] tools) - [ ] Pull Request Management ([X/6] tools) - [ ] Branch & File Operations ([X/6] tools) - [ ] Labels & Analytics ([X/8] tools) - [ ] Search & User Tools ([X/7] tools) ## Issues Found [List any problems discovered] ## Recommendation [Deploy/Hold/Fix Required] ``` ### 🎯 Comprehensive Test Report Template ```markdown # GitHub MCP Comprehensive Test Report ## Executive Summary [High-level overview of test results] ## Test Environment - **Date**: [Test Date] - **Package Version**: [Version] - **Repository**: [Test Repository] - **Test Duration**: [Duration] - **MCP Client**: [Client Name and Version] - **LLM Model**: [Model Name and Version] ## Detailed Results by Category [Category-by-category breakdown with evidence] ## Performance Analysis [Response times, benchmarks, comparisons] ## Quality Assessment [Data accuracy, error handling, user experience] ## Issues and Recommendations [Detailed findings and suggested actions] ## Test Evidence [Links to created artifacts and documentation] ## Conclusion [Final assessment and deployment recommendation] ``` --- ## 🎯 Best Practices for Testing ### ✅ Do's 1. **Always Use a Dedicated Test Repository** - Prevents pollution of production repositories - Allows for clean, repeatable testing - Provides isolated environment for experiments 2. **Test in Logical Sequence** - Start with basic operations (repository info) - Build up to complex operations (pull requests) - Test dependencies before dependent operations 3. **Document Everything** - Record all created artifacts - Note performance metrics - Screenshot unusual results 4. **Validate Against GitHub Web Interface** - Compare data accuracy - Verify URLs work correctly - Check that operations appear in GitHub UI 5. **Test Error Scenarios** - Try invalid parameters - Test with insufficient permissions - Verify graceful error handling ### ❌ Don'ts 1. **Don't Test on Production Repositories** - Risk of creating unwanted issues/PRs - May trigger notifications to team members - Could interfere with actual work 2. **Don't Skip Authentication Verification** - Always confirm token permissions - Test with both valid and invalid credentials - Verify access to test repositories 3. **Don't Ignore Performance Issues** - Note any operations taking >5 seconds - Investigate timeout or failure patterns - Report significant performance regressions 4. **Don't Test Without Version Information** - Always record package version being tested - Note any recent updates or changes - Track improvements across versions --- ## 🔄 Regular Testing Schedule ### 📅 Recommended Testing Frequency | Trigger | Testing Scope | Purpose | |---------|---------------|---------| | **New NPM Release** | Comprehensive | Validate updates and improvements | | **Weekly** | Core Functions | Monitor production stability | | **Before Production Deploy** | Full Suite | Ensure deployment readiness | | **After GitHub API Changes** | Affected Areas | Verify continued compatibility | | **User-Reported Issues** | Specific Tools | Investigate and validate fixes | ### 🎯 Automated Testing Considerations Consider creating automated tests for: - Basic connectivity and authentication - Core CRUD operations on issues - Repository information retrieval - Search functionality - Performance regression monitoring --- <div align="center"> ## 🎊 Conclusion This comprehensive testing guide provides everything needed to validate GitHub MCP tools effectively. Regular testing using these procedures ensures reliability, performance, and user satisfaction. **Remember**: Good testing practices lead to better software and happier users! 🚀 </div> --- *This testing guide is based on extensive real-world testing of the GitHub MCP tools and represents best practices learned through comprehensive validation efforts.*

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/kurdin/github-repos-manager-mcp'

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