The GitHub MCP server provides multiple tools for interacting with GitHub. Here's when and how to use each tool in the issue creation workflow. Note: Issue body formatting should follow the templates defined in 2_github_issue_templates.xml, with different formats for problem reporters vs contributors. ALWAYS use this FIRST before creating any issue to check for duplicates. Search for keywords from the user's problem description. github search_issues { "q": "repo:RooCodeInc/Roo-Code dark theme button visibility", "sort": "updated", "order": "desc" } Use to browse recent issues if search doesn't find specific matches. Helpful for understanding issue patterns and formatting. github list_issues { "owner": "RooCodeInc", "repo": "Roo-Code", "state": "all", "labels": ["bug"], "sort": "created", "direction": "desc", "perPage": 10 } Use when you find a potentially related issue and need full details. Check if the user's issue is already reported or related. github get_issue { "owner": "RooCodeInc", "repo": "Roo-Code", "issue_number": 123 } Use on related issues to understand discussion context. Helps avoid creating issues for already-discussed topics. github get_issue_comments { "owner": "RooCodeInc", "repo": "Roo-Code", "issue_number": 123 } These tools should ONLY be used if the user has indicated they want to contribute the implementation. Skip these for problem reporters. For bug reports from contributors, check recent commits that might have introduced the issue. Look for commits touching the affected files. github list_commits { "owner": "RooCodeInc", "repo": "Roo-Code", "perPage": 20 } When you identify a potentially problematic commit. Get details about what changed. github get_commit { "owner": "RooCodeInc", "repo": "Roo-Code", "sha": "abc123def456" } Use to find code patterns across the repository on GitHub. Complements local codebase_search tool for contributors. github search_code { "q": "repo:RooCodeInc/Roo-Code language:typescript dark theme button" } Check recent PRs that might be related to the issue. Look for PRs that modified relevant code. github list_pull_requests { "owner": "RooCodeInc", "repo": "Roo-Code", "state": "all", "sort": "updated", "direction": "desc", "perPage": 10 } Only use after: 1. Confirming no duplicates exist 2. Gathering all required information 3. Determining if user is contributing or just reporting 4. Getting user confirmation github create_issue { "owner": "RooCodeInc", "repo": "Roo-Code", "title": "[Descriptive title of the bug]", "body": "[Format according to bug report template]", "labels": ["bug"] } github create_issue { "owner": "RooCodeInc", "repo": "Roo-Code", "title": "[Problem-focused title]", "body": "[Problem description only - no technical details]", "labels": ["proposal", "enhancement"] } github create_issue { "owner": "RooCodeInc", "repo": "Roo-Code", "title": "[Problem-focused title with implementation intent]", "body": "[Full template including technical analysis sections]", "labels": ["proposal", "enhancement"] } ONLY use if user wants to add additional information after creation. github add_issue_comment { "owner": "RooCodeInc", "repo": "Roo-Code", "issue_number": 456, "body": "Additional context or comments." } Use if user realizes they need to update the issue after creation. Can update title, body, or state. github update_issue { "owner": "RooCodeInc", "repo": "Roo-Code", "issue_number": 456, "title": "[Updated title if needed]", "body": "[Updated body if needed]" } After user selects issue type, immediately search for related issues: 1. Use search_issues with keywords from their description 2. Show any similar issues found 3. Ask if they want to continue or comment on existing issue When searching GitHub Discussions: 1. Note that GitHub MCP tools don't currently support discussions API 2. Instruct user to manually search discussions at: https://github.com/RooCodeInc/Roo-Code/discussions/categories/feature-requests 3. Ask user to provide any related discussion numbers they find 4. Include these in the "Related Discussions" section of the issue Decision point for contribution: 1. Ask user if they want to contribute implementation 2. If yes: Use contributor tools for codebase investigation 3. If no: Skip directly to creating a problem-focused issue 4. This saves time for problem reporters During codebase exploration (CONTRIBUTORS ONLY): 1. Use list_commits to find recent changes to affected files 2. Use search_code for additional code references 3. Check list_pull_requests for related PRs 4. Include findings in the technical context section When creating the issue: 1. Format differently based on contributor vs problem reporter 2. Problem reporters: Simple problem description + context 3. Contributors: Full template with technical sections 4. Use create_issue with appropriate body format 5. Capture the returned issue number 6. Show user the created issue URL If search_issues finds exact duplicate: - Show the existing issue to user - Ask if they want to add a comment instead - Use add_issue_comment if they agree If create_issue fails: - Check error message (permissions, rate limit, etc.) - Save the drafted issue content - Provide user with the content to create manually Be aware of GitHub API rate limits: - Authenticated requests: 5000/hour - Search API: 30 requests/minute - Use searches efficiently