* Initial plan
* Migrate git toolset to modelcontextprotocol/go-sdk
- Remove //go:build ignore tag from git.go
- Update imports to use modelcontextprotocol/go-sdk
- Convert GetRepositoryTree tool schema to jsonschema format
- Update handler signature to use new generics pattern
- Update parameter extraction to use args map
- Replace mcp.NewToolResult* with utils package helpers
- Create dedicated git_test.go with updated test patterns
- Update toolsnaps for get_repository_tree
Related to #1428
Co-authored-by: omgitsads <4619+omgitsads@users.noreply.github.com>
* re-add git toolset
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: omgitsads <4619+omgitsads@users.noreply.github.com>
Co-authored-by: LuluBeatson <lulubeatson@github.com>
* Initial plan
* Migrate gists toolset to modelcontextprotocol/go-sdk
- Remove //go:build ignore tags from gists.go and gists_test.go
- Update imports to use modelcontextprotocol/go-sdk instead of mark3labs/mcp-go
- Migrate all 4 tools (ListGists, GetGist, CreateGist, UpdateGist):
- Updated tool definitions to use jsonschema.Schema for InputSchema
- Changed handler signatures to new SDK format with generics
- Updated parameter extraction to use args map instead of request object
- Replaced result helpers with utils package equivalents
- Updated all tests to match new handler signatures
- Added toolsnap tests for all 4 tools
- Added parseISOTimestamp utility function to minimal_types.go
- Created toolsnaps for all 4 tools
Related to #1428
Co-authored-by: omgitsads <4619+omgitsads@users.noreply.github.com>
* fix invalid schema, re-add gists toolset to server
* make schema types lowercase
* Don't assert without a testing.T
* just return the tool & handler
* Add Close method to IOLogger to close underlying reader and writer
* Update cmd/github-mcp-server/generate_docs.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* remove unnecessary translation
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: omgitsads <4619+omgitsads@users.noreply.github.com>
Co-authored-by: LuluBeatson <lulubeatson@github.com>
Co-authored-by: Adam Holt <me@adamholt.co.uk>
Co-authored-by: Adam Holt <omgitsads@github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* add repo nav tool
* comment responses
* move into git.go
* fix documentation
* Update pkg/github/git.go
Co-authored-by: Adam Holt <omgitsads@github.com>
* Fix undefined variable error in GetRepositoryTree
* Update git.go to use github.com/google/go-github/v77 for consistency with main branch
---------
Co-authored-by: Adam Holt <omgitsads@github.com>
* updates github-mcp-server to go-github/v76
* updates license files
* refactors ListProjects to make use of
google/go-github ProjectsService
* refactors GetProject to make use of google/go-github ProjectsService
* declaring commit without a pointer
* cleanup additional commit pointer
---------
Co-authored-by: Tommaso Moro <37270480+tommaso-moro@users.noreply.github.com>
* add state_reason param
* add close as duplicate functionality
* refactor and improve tests
* fix state reason validation logic and update tests
* move state and state reason handling to gql
* fix marshal failures
* address latest feedback
* add sliding window for actions logs
* refactor: fix sliding
* remove trim content
* only use up to 1mb of memory for logs
* update to tail lines in second pass
* add better memory usage calculation
* increase window size to 5MB
* update test
* update vers
* undo vers change
* add incremental memory tracking
* use ring buffer
* remove unused ctx param
* remove manual GC clear
* fix cca feedback
* extract ring buffer logic to new package
* handle log content processing errors and use correct param for maxjobloglines
* fix tailing
* account for if tailLines exceeds window size
* add profiling thats reusable
* remove profiler testing
* refactor profiler: introduce safeMemoryDelta for accurate memory delta calculations
* linter fixes
* Update pkg/buffer/buffer.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* use flag for maxJobLogLines
* add param passing for context window size
* refactor: rename contextWindowSize to contentWindowSize for consistency
* fix: use tailLines if bigger but only if <= 5000
* fix: limit tailLines to a maximum of 500 for log content download
* Update cmd/github-mcp-server/main.go
Co-authored-by: Adam Holt <omgitsads@github.com>
* Update cmd/github-mcp-server/main.go
Co-authored-by: Adam Holt <omgitsads@github.com>
* move profiler to internal/
* update actions test with new profiler location
* fix: adjust buffer size limits
* make line buffer 1028kb
* fix mod path
* change test to use same buffer size as normal use
* improve test for non-sliding window implementation to not count empty lines
* make test memory measurement more accurate
* remove impossible conditional
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Adam Holt <omgitsads@github.com>
* add team tool with tests
* add to tools
* add toolsnaps and docs
* Update pkg/github/context_tools.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* rewrite to allow providing user
* rRename get_my_teams to get_teams and update documentation and tests
* remove old snap
* rm old comments
* update test teams to numbered examples
* Update descriptions for allow finding teams of other users
* return empty result over custom empty error
* fix test expectations for no teams found
* flatten teams response to not include Nodes
* update description to include clarification about teams you are a member of
* fix typo in tool desc
* updated description to be more generic for accecss note
* amended error handling
* Update pkg/github/context_tools.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* add additional tool to get team members
* update tool desc for get_team_members to include warning about auth
* added new scope info
* refactor to parse params individually
* GetTeams - rename "login" field to "org"
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: LuluBeatson <lulubeatson@github.com>
Co-authored-by: Lulu <59149422+LuluBeatson@users.noreply.github.com>
* docs: add required GitHub token permissions per action (#128)
* Feat: Add support for GitHub Releases (list and latest) tools
* Update repositories.go
Update params
* Update README.md
Add only new tool to the readme
* Revise GitHub PAT instructions and permissions section
* Readme formatting
---------
Co-authored-by: Arya Soni <aryasoni98@gmail.com>
Co-authored-by: Arya Soni <18515597+aryasoni98@users.noreply.github.com>
Build and Test Go Project / build (macos-latest) (push) Has been cancelled
Build and Test Go Project / build (ubuntu-latest) (push) Has been cancelled
Build and Test Go Project / build (windows-latest) (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
Docker / build (push) Has been cancelled
GoReleaser Release / release (push) Has been cancelled
License Check / license-check (push) Has been cancelled
* initial changes
* Further advances on list_issues tool to use GRPC
* Updating pagination for Graphql ListIssues
* Sorting data structures & returning mapped Issue
* Adding dynamic label queries
* Adding dynamic state queries for list_issues
* Add optional since filter, to get issues based on last update to issue
* Move ListIssues test to graphql format & removal of temp file
* Update documentation and fix linter issues
* Removal of redundant code, and increase limit on label return
* Fixing context for status to allow for better interactions
* Update tool snaps with tool description
* Update docs for final changes to context
* Create 'add sub-issue' tool
* Fix hardcoded API host
* Create 'list sub-issues' tool
* Create 'remove sub-issue' tool
* Fix Test_GetIssue mock data - add missing User field
The assertion was already checking User.Login but the mock was incomplete
* Create 'reprioritize sub-issue' tool
* fixes
* use go github pck to add sub-issues
* Update to use go github package
* update description
* update to use go github v73
* lint, docs
* refactor: tests to use go-github-mock
* add toolsnaps
* make RemoveSubIssue use NewGitHubAPIErrorResponse, update docstring
* Always include SHA in get_file_contents responses (#676)
* fix: Add SHA to get_file_contents while preserving MCP behavior (#595)
Enhance get_file_contents to include SHA information without changing
the existing MCP server response format.
Changes:
- Add Contents API call to retrieve SHA before fetching raw content
- Include SHA in resourceURI (repo://owner/repo/sha/{SHA}/contents/path)
- Add SHA to success messages
- Update tests to verify SHA inclusion
- Maintain original behavior: text files return raw text, binaries return base64
This preserves backward compatibility while providing SHA information
for better file versioning support.
Closes#595
* fix: Improve error handling for Contents API response
Ensure response body is properly closed even when an error occurs by moving
the defer statement before the error check. This prevents potential resource
leaks when the Contents API returns an error with a non-nil response.
Changes:
- Move defer respContents.Body.Close() before error checking
- Rename errContents to err for consistency
- Add nil check for respContents before attempting to close body
This follows Go best practices for handling HTTP responses and prevents
potential goroutine/memory leaks.
* revert changes to resource URI
* use GraphQL API to get file SHA
* refactor: mock GQL client instead of getFileSHA function to follow conventions
* lint
* revert GraphQL
---------
Co-authored-by: LuluBeatson <lulubeatson@github.com>
* Reorganize README, add dedicated install guides, include policies and governance info for the github server (#695)
* Refactor README and add host installation guides, governance docs
- Reorganized README for clarity and navigation
- Added dedicated installation guides for Claude, Cursor, Windsurf, JetBrains, and more
- Clarified contribution guidelines and approval criteria
- Added policies and governance documentation
* Update README.md
* Update README with configuration section for remote GitHub MCP Server
* Update MCP access policy description in README
Removing coding agent from the policy note, as the GitHub server is unaffected by this policy
* Update configuration steps for GitHub Copilot in JetBrains IDEs...
...to reflect changes in accessing settings and configuring MCP.
* Update install-other-copilot-ides.md
* Update Eclipse MCP support version and configuration steps...
...for GitHub Copilot plugin in installation guide.
* Update docs/installation-guides/install-cursor.md
* Update docs/installation-guides/install-windsurf.md
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
---------
Co-authored-by: Tony Truong <tonytrg@github.com>
* fix: shorten long tool name for adding pr review comments (#697)
* shorten tool name
* update function name to match tool name
* adjust wording of descriptions
* Update installation guide for GitHub MCP Server (#699)
* Update installation guide for GitHub MCP Server
Removed reference to GitHub.com in the installation guide. The GitHub server is available to Coding Agent by default, without installation needed.
* Rename section to 'Install in Other MCP Hosts'
Updating title for consistency and adding a link to the "other Copilot IDEs" install guide.
* Revise installation guide for Cursor MCP setup
Updated installation guide for Cursor with steps clarified, remote server installation, and one-click install deeplinks to open Cursor and add the github server to the config file.
* fix: make mcpcurl support "integer" type (#688)
- FYI:https://json-schema.org/understanding-json-schema/reference/numeric#integer
* Added installation instructions for mcpcurl (#719)
* Added installation instructions for mcpcurl
* Update cmd/mcpcurl/README.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add pagination support to GraphQL-based tools (#683)
* initial pagination for `ListDiscussions`
* redo category id var cast
* add GraphQL pagination support for discussion comments and categories
* remove pageinfo returns
* fix out ref for linter
* update docs
* move to unified pagination for consensus on params
* update docs
* refactor pagination handling
* update docs
* linter fix
* conv rest to gql params for safe lint
* add nolint
* add error handling for perPage value in ToGraphQLParams
* refactor pagination error handling
* unified params for rest andn graphql and rennamed to be uniform for golang
* add 'after' for pagination
* update docs
* Update pkg/github/discussions.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update pkg/github/discussions.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update pkg/github/discussions_test.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* update default page size const
* reduce default pagination size from 100 to 30 in discussion tests
* update pagination for reverse and total
* update pagination to remove from discussions
* updated README
* improve the `ToGraphQLParams` function
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* shorten param descriptions
* fix: resp nil check in error handling in RemoveSubIssue function
---------
Co-authored-by: LuluBeatson <lulubeatson@github.com>
Co-authored-by: tommaso-moro <tommaso-moro@github.com>