github
Fetch files, analyze repo stats, search code, and manage issues (create, comment, list, update) via API.
Instructions
GitHub file and repo access via API. Returns {success, content/stats/results}. Use for: fetching source files, analyzing repo structure, searching code across GitHub. Actions: 'fetch' (raw file content), 'analyze' (repo stats/structure), 'search' (code search), 'create_issue' (open new issue), 'comment_issue' (add comment), 'get_issue' (read issue + comments), 'list_issues' (list repo issues), 'update_issue' (edit state/title/body/labels). Requires GITHUB_TOKEN env var for write ops and higher rate limits. 2MB response cap, 10min cache. For large files, use harvest=True to save to disk instead of loading into context.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch, tag, or commit SHA. Default: default branch. | |
| body | No | Issue/comment body (markdown). Used by create_issue, comment_issue, update_issue. | |
| path | No | File path within repo (e.g., 'src/main.py'). Required for fetch. | |
| repo | No | Repository name (e.g., 'claude-code') | |
| owner | No | GitHub username or org (e.g., 'anthropics') | |
| query | No | Code search query. Required for search action. | |
| state | No | Issue state: 'open' or 'closed'. Used by list_issues (filter) and update_issue. | |
| title | No | Issue title. Required for create_issue. | |
| action | Yes | 'fetch' for file content, 'analyze' for repo stats, 'search' for code search, 'create_issue'/'comment_issue'/'get_issue'/'list_issues'/'update_issue' for issue management | |
| labels | No | Labels array. Used by create_issue, update_issue, list_issues. | |
| harvest | No | Save to disk, return metadata only. Saves context tokens. | |
| harvest_dest | No | Subfolder under harvested/ (e.g., 'github/'). | |
| issue_number | No | Issue number. Required for comment_issue, get_issue, update_issue. |