201 Commits

Author SHA1 Message Date
Tom Elliott 70cb7375e5 projects: update fields and prompt (#1292)
* update fields and prompt

* update snapshots

* update docs

* pr feedback

* update snapshots

* update docs
2025-10-24 10:47:13 +02:00
Tom Elliott af2e93b846 projects: add item field support (#1282)
* add fields

* generate docs

* pr feedback

---------

Co-authored-by: Tom Elliott <tmelliottjr@lcjr0246td.lan>
2025-10-23 15:32:00 +02:00
Ksenia Bobrova 3ba8d4a122 Issues consolidation (#1211)
* Issues consolidation

* Issues consolidation

* Clarify get_review_comments description

* Add get_comments method

* Formatting fixes

* Clarify tool description

* Clarify tool descriptions
2025-10-23 13:27:07 +02:00
Tony Truong c01959536b Split up tooling utility (#1273)
Docker / build (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
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
Build and Test Go Project / build (macos-latest) (push) Has been cancelled
Publish to MCP Registry / publish (push) Has been cancelled
* split up functionality for reusability

* Update pkg/github/tools.go

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-21 15:57:39 +02:00
Tony Truong 66fabb7a8d Adding default toolset as configuration (#1229)
* add toolset default to make configuration easier

* fix readme

* adding transformer to cleanly handle special toolsets

* cleaning code

* fixing cli message

* remove duplicated test

* Update internal/ghmcp/server.go

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

* Update internal/ghmcp/server_test.go

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

* adding error message for invalid toolsets

* fix merge conflict

* add better formatting

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-15 18:20:14 +02: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
Ksenia Bobrova e5522fca31 Consolidate pull request review tools (#1192)
* Consolidate pull request review tools

* Prompt tweaks + deleting snap

* Server instructions change

* Add enums

* Remove excessive mentions of event parameter

* Doc update
2025-10-10 16:56:01 +02:00
Adam Holt bcc5275a4a Ignore unknown toolsets (#1202)
Default to ignore unknown toolsets, with the option to return an error.
2025-10-10 15:20:58 +02:00
Tony Truong f9343e62fd rename tooling (#1198)
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
* rename tooling

* fix double tool
2025-10-09 18:28:09 +02:00
JoannaaKL 5c61abeb31 Add update project item tool (#1194)
* Add update project item tool

* Update docs

* Add tests and tool snaps

* Remove unnecessary comments

* Formatting and fixes

* Extract error messages to const

* Fix json tag

* Rename field

* Update params

* Update test

* Update tool example
2025-10-09 17:44:55 +02:00
Tony Truong bbfc44c552 adding labels tools (#1193)
* adding labels tools

* fixing ci

* update toolsnap

* fixing lint

* changing comment

* fix title
2025-10-09 11:24:18 +02:00
Roberto Nacu 16b43c9d44 Add sort and order parameters to search_repositories tool (#1191)
* add sort and order params

* test adding server instructions for sorting

* improve server instructions

* reorder
2025-10-09 10:11:12 +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
Tommaso Moro 94b3d7278e Revert "Add flexibility around server instructions for search-related tools (…" (#1187)
This reverts commit 8a69a5c35f.
2025-10-07 10:14:05 +01:00
Ksenia Bobrova d0d4b0e5cb Consolidating pull requests get tools (#1172)
* Consolidating tools draft

* Consolidate pullrequest tools

* Prompt tweaks

* Fixes
2025-10-07 11:05:22 +02:00
Tommaso Moro 8a69a5c35f Add flexibility around server instructions for search-related tools (#1181)
* make instructions for flexible around search tools

* swap sections
2025-10-06 16:34:07 +01:00
Tony Truong bf0d62e4a6 Adding default toolset grouping (#1159)
* adding default toolset group, splitting up stargazers from repos

* adding structs for toolset group metadata

* update readme

* refactor the readme

* fix lint

---------

Co-authored-by: Ksenia Bobrova <almaleksia@github.com>
2025-10-06 17:07:25 +02:00
JoannaaKL 6d01897ccd Remove update_project_item tool (#1167)
* Remove update_project_item tool

* Lint
2025-10-01 12:13:26 +02:00
JoannaaKL 6793b9d376 Add tools to add, update and delete project items (#1152)
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
Publish to MCP Registry / publish (push) Has been cancelled
* Add add_project_item tool

* Add tools to update and delete project items

* Update pkg/github/projects.go

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

* Update pkg/github/projects.go

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

* Add tests

* Lint the code

* Fix req params

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-30 10:08:15 +02:00
JoannaaKL 088560113c Add tool for project fields and items (#1145)
* Add get project fields tool

* Data types

* Docs

* Update projectNumber's type

* Add list_project_items tool

* Add get_project_item tool

* Return minimal project

* Remove unused per_page
2025-09-29 15:43:00 +02:00
JoannaaKL abf7c478ac Add tools for Projects V2 (#1114)
* Add get_project tool

* Remove pagination for now

* Fix url formatting

* Minor tweaks

* Add list project fields tool

* Wording
2025-09-26 11:36:35 +02:00
Ola Hungerford 0a1d6dbd36 Add server instructions based on toolsets (#1091)
* Add instruction generation for enabled toolsets and corresponding tests

* Refactor instruction generation to always include base and context management instructions

* Refactor base instruction for clarity and adjust context management instruction formatting

* Simplify changes for now

* Remove unused toolset instructions and simplify test cases for clarity

* Add test cases for issues, notifications, and discussions toolsets in instruction generation

* Update base instruction and test expectations for clarity on tool selection and context management

* Add support for disabling instructions via environment variable

* Clarify PR review workflow instruction for consistency

* Apply suggestions from code review

Co-authored-by: Ksenia Bobrova <almaleksia@github.com>

* Refactor instruction generation and testing for clarity and consistency

---------

Co-authored-by: Ksenia Bobrova <almaleksia@github.com>
2025-09-25 13:27:29 +02:00
JoannaaKL 23630b3744 Add ListProjects tool (#1113)
* Bump go-viper/mapstructure

* Update github.com/go-viper/mapstructure/v2 version in licenses

* Add tool to list projects

* Fix ordering
2025-09-22 16:48:51 +02: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
Roberto Nacu b6486a3817 Add specifying state change reason to update_issue tool (#1073)
* 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
2025-09-12 16:04:00 +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
Tony Truong 9db2e17204 Updating tool get_pull_request_comments -> get_pull_request_review_comments (#1062)
* update get_pull_request_comments to get_pull_request_review_comments to signify difference

* fix remaining old references

* cleanup dangling tool snap
2025-09-09 13:26:22 +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 0418808647 Change role from "system" to "user" in prompt messages for AssignCodingAgentPrompt and IssueToFixWorkflowPrompt. Role "system" is not allowed by Claude Code in MCP provided prompt (allowed only role "user" and "assistant") (#941)
License Check / license-check (push) Has been cancelled
Docker / build (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (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
Co-authored-by: 0xGosu <0xGosu@gmail.com>
2025-08-21 23:20:26 +01:00
Jurre d03072f1a9 Repository security advisories (#925)
* Add support for listing repo level security advisories

* Add support for listing repo security advisories at the org level
2025-08-21 15:20:20 +02:00
Jurre 47040f43ef Add Global Security Advisories Toolset (#919) 2025-08-21 12:48:46 +02: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
Matt Holloway 2621dbefd9 Add actions job log buffer and profiler (#866)
* 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>
2025-08-19 14:02:16 +01:00
Ksenia Bobrova 587272bc33 Use server.ServerResourceTemplate and server.ServerPrompt wrappers (#886)
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
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
2025-08-14 17:41:20 +02:00
JoannaaKL afe8ddb8ca Add issue types (#869)
* feat: add type to issues

* test: add `type` test for create and update issues

* Generate docs and toolsnaps

* Update pkg/github/issues.go

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

* Use github ptr

---------

Co-authored-by: Pranav RK <pranavrk7@gmail.com>
Co-authored-by: Pranav RK <39577726+radar07@users.noreply.github.com>
Co-authored-by: Alon Kenneth <11458012+akenneth@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-14 07:25:29 +02:00
Matt Holloway 1832210139 Add get_teams and get_team_members tools (#834)
* 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>
2025-08-13 13:41:04 +01:00
Gökhan Arkan d52c1d4ece Fix duplicate filter issues across all search tools (#828)
* Enhance search functionality with new query filters and utility functions

- Added multiple test cases for searching issues with various query filters in `issues_test.go`.
- Introduced utility functions in `search_utils.go` to check for specific filters and extract repository information from queries.
- Created comprehensive tests in `search_utils_test.go` to validate the new filtering logic and ensure accurate query parsing.

* Refactor repository filter extraction in search utilities

- Renamed `extractRepoFilter` to `hasRepoFilter` to simplify the function's purpose.
- Updated test cases in `search_utils_test.go` to reflect the new function name and logic.
- Adjusted tests to focus on the presence of the `repo:` filter rather than extracting owner and repo details.

* Enhance search functionality with additional query filters and utility functions

- Added new test cases for searching pull requests and users with various query filters in `pullrequests_test.go` and `search_test.go`.
- Implemented a utility function `hasTypeFilter` in `search_utils.go` to check for the presence of `type:` filters in queries.
- Updated the search handler to conditionally prepend the `type:` filter based on the presence of existing filters, improving query handling.

* Updated both regex patterns to handle this edge case
2025-08-13 10:15:22 +01:00
Alon Kenneth 0e7a25ea5a Add List issue types tool (#616)
* add list issue types action

* lint

* remove log

* update docs
2025-08-12 14:01:52 +02: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
Bailey Hayes 3479d02215 fix: replace logrus with slog (#781)
- Adjust some logs to use structured outputs
- Set stdioserver log prefix as const
- Do not export test func removeTimeAttr

Signed-off-by: Bailey Hayes <behayes2@gmail.com>
Co-authored-by: Matt Holloway <mattdholloway@github.com>
Co-authored-by: JoannaaKL <joannaakl@github.com>
2025-08-12 11:04:28 +02:00
Adam Holt 842003a572 Handle Actions Cancel Workflow Run returning a 202 (#855)
Actions Cancel Workflow Run returns a 202 on success. Check for a `*github.AcceptedError` in response to the API call to handle this correctly.
2025-08-12 10:30:24 +02:00
Tommaso Moro cad048ba36 use go-github to remove sub issue (#856) 2025-08-11 18:30:16 +01: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
Babbage f818830ff1 Adding comments sorting for list_issues (#854) 2025-08-11 15:48:26 +01:00
Babbage 8aa3379fea Migrate list_issues tool from REST to GraphQL API (#833)
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
2025-08-08 15:26:48 +01:00
Kirsten Laskoski d65d1d5455 fix: correct descriptions for PR/issue searching (#840)
Fix #839 by updating the descriptions for the `owner` and `repo`
parameters for the `search_issues` and `search_pull_requests` tools to
no longer reference notifications but issues and pull requests,
respectively.
2025-08-08 13:34:04 +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
Tommaso Moro 33a63a053d Add support for org-level discussions in list_discussion_categories tool (#819)
* hide implementation detail for org-level queries

* update tests

* autogen

* made tests consistent with other tests
2025-08-05 11:05:45 +01:00
Tommaso Moro ff6e859555 add title to get_discussion query (#803) 2025-08-01 16:55:11 +01:00