Commit Graph

39 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
Jonathan c73f06fa29 bumps google/go-github to v79 2025-11-15 22:07:38 +01:00
Natalie Dunbar e26cf427ef Add Repository Tree Navigation Tool (#1164)
* 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>
2025-11-10 10:29:13 -05: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
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 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
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
Sam Morrow f90ff16f2e move to new approach and update testing 2025-06-25 08:12:38 +02:00
David Byttow f631ff5548 add author field to list_commits for filtering (#569) 2025-06-24 09:15:25 +02:00
tonytrg 6fa8eafff5 adding tests 2025-06-23 14:46:46 +02:00
William Martin 3e988d5ab5 Add toolsnaps for every tool 2025-06-18 10:38:32 +02:00
Sam Morrow 3e32f75cf4 fix: use better raw file handling and return resources 2025-06-12 14:54:23 +02:00
Pranav RK c7a872b9a1 Bump go-github to v72.0.0 2025-06-02 10:55:04 +02:00
dependabot[bot] 4ccedee992 build(deps): bump github.com/mark3labs/mcp-go from 0.27.0 to 0.28.0 (#412)
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-20 13:30:27 +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
William Martin 09e156383d Test path params for tag tools 2025-04-30 20:15:39 +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
Jake Shorty 865f9bf4d7 Prefer already-defined endpoint mock (#226) 2025-04-11 12:25:40 -06: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 c1bdd6a0f0 chore: export repository funcs 2025-04-08 09:34:08 +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
William Martin 6f7458ae3c Conform list tools
License Check / license-check (push) Has been cancelled
Docker / build (push) Has been cancelled
Unit Tests / build (macos-latest) (push) Has been cancelled
Unit Tests / build (ubuntu-latest) (push) Has been cancelled
Unit Tests / build (windows-latest) (push) Has been cancelled
GoReleaser Release / release (push) Has been cancelled
Lint / lint (push) Has been cancelled
2025-04-04 15:51:50 +02:00
Javier Uruen Val ccaedb6f46 assert params and body (#96) 2025-04-04 14:32:00 +02:00
Javier Uruen Val 92bceb5fa5 linter 2025-03-26 11:03:52 +01:00
Javier Uruen Val a26315fa15 add support for the push_files tool 2025-03-24 14:14:50 +01:00
Sam Morrow dd46f8a837 add a framework for translations 2025-03-20 18:33:30 +01:00
Javier Uruen Val 3dddc2abcd add initial tests 2025-03-17 13:26:14 +01:00