Commit Graph

62 Commits

Author SHA1 Message Date
Adam Holt 60aef5d2e3 Convert to modelcontextprotocol/go-sdk (#1428)
Move from `mark3labs/mcp-go` to `modelcontextprotocol/go-sdk`.

This is mostly focused on updating tool schema and tool handler signatures, along with any associated internal changes related to those changes.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <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: Lulu <59149422+LuluBeatson@users.noreply.github.com>
Co-authored-by: SamMorrowDrums <4811358+SamMorrowDrums@users.noreply.github.com>
Co-authored-by: Sam Morrow <info@sam-morrow.com>
2025-12-01 14:30:59 +01:00
Tony Truong 88a594e76b improve response/feedback loop with better error messages (#1414) 2025-11-17 10:19:42 +01:00
Jonathan c73f06fa29 bumps google/go-github to v79 2025-11-15 22:07:38 +01:00
Jonathan cf0e05e300 Update to google/go-github@v77 (#1357)
* update to google/go-github@v77

* licences update from required CI build

* fixes licences

* fixes possible nil reference

* refresh licences due to recent conflicts

---------

Co-authored-by: Roberto Nacu <kerobbi@github.com>
2025-11-07 08:06:27 -08:00
Jonathan 6f5040734a Updates github-mcp-server to go-github/v76 (#1289)
* 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>
2025-10-27 13:53:53 +01:00
Tony Truong 99acea6ca1 Fix subdomain isolation URL parsing (#1218)
* adding better response

* adding check for subdomain isolation and return raw resp for better better llm response

* adding subdomain for uploads too

* remove unnecessary comments

* better error message

* fix linter
2025-10-15 13:21:37 +02:00
Roberto Nacu dee59272ae Fix binary files retrieval (#1183)
* tighten content filtering logic

* add pdf retrieval test case

* add application/xml check
2025-10-07 16:08:01 +01:00
Copilot 010cf9b33a Add starred repository support to GitHub MCP server (#1078)
License Check / license-check (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
Docker / build (push) Has been cancelled
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
GoReleaser Release / release (push) Has been cancelled
* Initial plan

* Initial exploration and planning for starred repository support

Co-authored-by: tonytrg <40869903+tonytrg@users.noreply.github.com>

* Implement starred repository functionality with comprehensive tests

- Add ListStarredRepositories tool for listing starred repos
- Add StarRepository tool for starring repositories
- Add UnstarRepository tool for unstarring repositories
- Update MinimalRepository struct with StarredAt field
- Add comprehensive test coverage for all new functionality
- Register new tools in the repos toolset

Co-authored-by: tonytrg <40869903+tonytrg@users.noreply.github.com>

* Update README documentation with starred repository tools

- Add list_starred_repositories tool documentation
- Add star_repository tool documentation
- Add unstar_repository tool documentation
- Include comprehensive parameter descriptions for all new tools

Co-authored-by: tonytrg <40869903+tonytrg@users.noreply.github.com>

* Add starred repository support to GitHub MCP server

Co-authored-by: tonytrg <40869903+tonytrg@users.noreply.github.com>

* remove starredat from minimal view

* update descriptions

* remove bin

* dont commit the binary

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: tonytrg <40869903+tonytrg@users.noreply.github.com>
Co-authored-by: tonytrg <tonytrg@github.com>
2025-09-12 16:11:15 +02:00
Matt Holloway 0c5cfc3853 Add return ID to CRUD tools (#1074)
* add return ID to crud tools

* Update pkg/github/gists.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update pkg/github/gists.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix gist id to string conv

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-11 09:53:00 +01:00
Matt Holloway 09deac45d4 initial org repo create support (#1023)
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
Docker / build (push) Has been cancelled
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
GoReleaser Release / release (push) Has been cancelled
License Check / license-check (push) Has been cancelled
2025-09-02 11:30:13 +01:00
Matt Holloway 358a415081 Add minimal response to CRUD tools, repositories and search toolsets (#988)
* add comprehensive minimal response where appropriate

* remove unneeded comments

* remove incorrect diff param

* update docs

* rm comment

* Update pkg/github/repositories.go

Co-authored-by: Lulu <59149422+LuluBeatson@users.noreply.github.com>

* update toolsnaps and docs

* change minimal_output to use new OptionalBoolParamWithDefault

* Update pkg/github/repositories.go

Co-authored-by: Lulu <59149422+LuluBeatson@users.noreply.github.com>

* refactor minimal conversion funcs to minimal_types.go

* consolidate response structs and remove unneeded message field

* consolidate response further

* remove CloneURL field

* Update pkg/github/repositories.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update pkg/github/server.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix undefined

* change incorrect comment

* remove old err var declaration

* Update pkg/github/repositories.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix syntax issue

* update toolsnaps

---------

Co-authored-by: Lulu <59149422+LuluBeatson@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-01 18:13:36 +01:00
Tommaso Moro 73dcb46dd8 Add get_release_by_tag tool (#938)
* add get_release_by_tag tool

* add tool

* add tests

* autogen

* remove comment
2025-08-21 09:57:46 +01:00
JoannaaKL 6f06cba57f List releases (#862)
* 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>
2025-08-12 12:58:21 +02:00
Tommaso Moro 0b80f6869f Tommy/improve-ref-handling (#851)
* make resolveGitReference function more robust, add comments to follow the logic

* add  tests for new functionality

* lint fix 1

* fix linting by using inverted if instead of empty if block

* remove unused var

* refactor

* remove comment

* small fix

* add ref == "" case in switch statement, use originalRef instead of ref in case definitions and some of the logic
2025-08-11 17:31:31 +01:00
Tommaso Moro 521d5e9258 Bump go-github to v74 (#826)
* update all imports to use v74

* go mod tidy

* update third party licenses

* rename

* autogen licenses
2025-08-06 22:11:50 +01:00
Matt Holloway 7ccc6b6493 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>
2025-07-21 16:31:29 +01:00
yonaka 0568187038 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>
2025-07-17 13:29:46 +01:00
Martin Høst Normark be91795fd3 Bump go-github to v73.0.0 (#597)
* Bump go-github to v73.0.0

* Clean up go.mod and update licenses

* Updated remaining imports to use github package v73 instead of v72

---------

Co-authored-by: Tommaso Moro <37270480+tommaso-moro@users.noreply.github.com>
Co-authored-by: tommaso-moro <tommaso-moro@github.com>
2025-07-15 15:21:24 +01:00
Lulu d15026b0eb fix: get_file_contents use "/" for root (#666)
* update path description to use "/" for root

* update docs and toolsnaps

* use mcp.DefaultString, revert description, update unit test
2025-07-11 18:07:28 +01:00
Lulu c23b1f9f6e get_file_content Match Paths in Git Tree if Full Path Unknown (#650)
* add contingency to match path in git tree

* resolveGitReference helper

* fix: handling of directories

* Test_filterPaths

* filterPaths - trailing slashes

* fix: close response body, improve error messages, docs

* update tool result message about resolved git ref

* unit test cases for filterPaths maxResults param

* resolveGitReference - NewGitHubAPIErrorToCtx
2025-07-11 16:23:55 +01:00
Lulu 3341e6bc46 Update create_or_update_file SHA Arg Description (#651)
* sha arg prompt as required if updating file

* generate docs and toolsnaps

* shorten
2025-07-08 17:51:24 +01:00
Lulu 39d7fec500 Update list_commits Filtering Descriptions (#634)
* update sha arg description for list_commits, get_file_contents

* update perPage description for pagination to inform of default 30

* toolsnaps, docs

* revert perPage description
2025-07-07 12:59:49 +01:00
JoannaaKL f88456f989 Update list commits tool description (#629) 2025-07-02 20:07:59 +02:00
JoannaaKL 5904a0365e Fix linting flow (#614)
* Add issues type filter

* Add e2e test

* Update e2e/e2e_test.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add lint script and update golangci config

* Add lint script

* Install if not installed

* Pass lint config

* Use action and rename workflow

* Back to reparate config

* Migrate config to v2

* Update config

* Lint code

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-30 15:14:45 +02:00
Sam Morrow f90ff16f2e move to new approach and update testing 2025-06-25 08:12:38 +02:00
Adam Holt 36e6add0dd Return concrete error types for API errors 2025-06-25 08:12:38 +02:00
William Martin 20afb0fd9e Adjust create_or_update_file description to try avoid incorrect selection (#419)
* Adjust create_or_update_file description to try avoid incorrect selection

* Update pkg/github/repositories.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-24 14:53:09 +02:00
David Byttow f631ff5548 add author field to list_commits for filtering (#569) 2025-06-24 09:15:25 +02:00
tonytrg b2901e13cc changing desc symbols 2025-06-23 14:46:46 +02:00
tonytrg 152847334b fix pr parsing 2025-06-23 14:46:46 +02:00
tonytrg b031f215f4 fix linter 2025-06-23 14:46:46 +02:00
tonytrg 50cfb6d66b get_file_contents accepts a ref instead of just branch 2025-06-23 14:46:46 +02:00
Sam Morrow 3e32f75cf4 fix: use better raw file handling and return resources 2025-06-12 14:54:23 +02:00
Lulu cbcf29f6d1 Export ToBoolPtr and RequiredParam (#495)
* ToBoolPtr, RequiredParam

* lint: type assertion in RequiredParam

* cap docstring
2025-06-09 15:11:38 +02:00
Pranav RK c7a872b9a1 Bump go-github to v72.0.0 2025-06-02 10:55:04 +02:00
William Martin d4a0764ddb Bump mcp-go to 0.30.0 2025-05-26 14:03:58 +02:00
Ashwin Bhat da2df71827 feat: add DeleteFile tool to delete files from GitHub repositories (#356)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: William Martin <williammartin@github.com>
2025-05-13 14:22:43 +02:00
dependabot[bot] 705b61b814 build(deps): bump github.com/mark3labs/mcp-go from 0.25.0 to 0.27.0 (#397)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: William Martin <williammartin@github.com>
2025-05-13 13:26:36 +02:00
Pranav RK 205b619e6b feat: upgrade golangci-lint to v2 (#386)
Co-authored-by: William Martin <williammartin@github.com>
2025-05-12 11:57:27 +02:00
Eran Cohen 866a791635 feat: Add support for git tag operations
Add git tag functionality including:
- List repository tags
- Get tag details
- Support for tag-based content access

This enables basic read-only tag management through the MCP server API.
2025-04-30 20:15:39 +02:00
Camila Rondinini a7d741cc44 fix: specify sha is required (#320) 2025-04-29 12:47:25 +02:00
Sam Morrow a58937c0b3 feat: provide tool annotations 2025-04-23 13:14:01 +02:00
Tony Truong 4457d0ac30 Add missing enum constraints (#278)
* Add missing enum constraints

* Remove redundant listing of additional enums in descriptions

---------

Co-authored-by: Sam Morrow <info@sam-morrow.com>
2025-04-15 17:01:33 +02:00
Arya Soni 01aefd3d7a Add ability to view branches for a repo #141 (#205)
* Add ability to view branches for a repo #141

* fix: update ListBranches test to use InputSchema and correct translation helper

* fix: update ListBranches test to use InputSchema and correct translation helper

* fix: update ListBranches test to handle errors in tool result

* fix: replace deprecated github.String with github.Ptr

* docs: add list_branches tool documentation to README
2025-04-11 14:31:29 +02:00
Jake Shorty 919a10c187 Add tool for getting a single commit (includes stats, files) (#216)
* Add tool for getting a commit

* Split mock back out, use RepositoryCommit with Files/Stats
2025-04-11 08:09:19 +02:00
Sam Morrow 3ec8699deb chore: groundwork for multi-user to server 2025-04-10 01:59:03 +02:00
Sam Morrow 519ed9ebc7 chore: export remaining search + helpers 2025-04-08 09:43:52 +02:00
Sam Morrow c1bdd6a0f0 chore: export repository funcs 2025-04-08 09:34:08 +02:00
William Martin 0f9ef6e708 Add pagination helper 2025-04-07 16:48:56 +02:00
Alexander Yastrebov 755b816b7c pkg/github: fix use of per page parameter
Page size tool parameter names were changed to `perPage` within #90
while GitHub API uses `per_page` parameter name.

This change fixes overlooked inconsistencies.

Follow up on #90
Follow up on #129
Fixes #136

Signed-off-by: Alexander Yastrebov <yastrebov.alex@gmail.com>
2025-04-07 16:48:56 +02:00