@@ -7,144 +7,164 @@ GitHub MCP Server implemented in Go.
77Create a GitHub Personal Access Token with the appropriate permissions
88and set it as the GITHUB_PERSONAL_ACCESS_TOKEN environment variable.
99
10-
1110##Tools
1211
1312###Users
13+
1414- ** get_me** - Get details of the authenticated user
15- - No parameters required
15+ - No parameters required
1616
1717###Issues
18+
1819- ** get_issue** - Gets the contents of an issue within a repository
19- - ` owner ` : Repository owner (string, required)
20- - ` repo ` : Repository name (string, required)
21- - ` issue_number ` : Issue number (number, required)
20+
21+ - ` owner ` : Repository owner (string, required)
22+ - ` repo ` : Repository name (string, required)
23+ - ` issue_number ` : Issue number (number, required)
2224
2325- ** add_issue_comment** - Add a comment to an issue
24- - ` owner ` : Repository owner (string, required)
25- - ` repo ` : Repository name (string, required)
26- - ` issue_number ` : Issue number (number, required)
27- - ` body ` : Comment text (string, required)
26+
27+ - ` owner ` : Repository owner (string, required)
28+ - ` repo ` : Repository name (string, required)
29+ - ` issue_number ` : Issue number (number, required)
30+ - ` body ` : Comment text (string, required)
2831
2932- ** search_issues** - Search for issues and pull requests
30- - ` query ` : Search query (string, required)
31- - ` sort ` : Sort field (string, optional)
32- - ` order ` : Sort order (string, optional)
33- - ` page ` : Page number (number, optional)
34- - ` per_page ` : Results per page (number, optional)
33+ - ` query ` : Search query (string, required)
34+ - ` sort ` : Sort field (string, optional)
35+ - ` order ` : Sort order (string, optional)
36+ - ` page ` : Page number (number, optional)
37+ - ` per_page ` : Results per page (number, optional)
3538
3639###Pull Requests
40+
3741- ** get_pull_request** - Get details of a specific pull request
38- - ` owner ` : Repository owner (string, required)
39- - ` repo ` : Repository name (string, required)
40- - ` pull_number ` : Pull request number (number, required)
42+
43+ - ` owner ` : Repository owner (string, required)
44+ - ` repo ` : Repository name (string, required)
45+ - ` pull_number ` : Pull request number (number, required)
4146
4247- ** list_pull_requests** - List and filter repository pull requests
43- - ` owner ` : Repository owner (string, required)
44- - ` repo ` : Repository name (string, required)
45- - ` state ` : PR state (string, optional)
46- - ` sort ` : Sort field (string, optional)
47- - ` direction ` : Sort direction (string, optional)
48- - ` per_page ` : Results per page (number, optional)
49- - ` page ` : Page number (number, optional)
48+
49+ - ` owner ` : Repository owner (string, required)
50+ - ` repo ` : Repository name (string, required)
51+ - ` state ` : PR state (string, optional)
52+ - ` sort ` : Sort field (string, optional)
53+ - ` direction ` : Sort direction (string, optional)
54+ - ` per_page ` : Results per page (number, optional)
55+ - ` page ` : Page number (number, optional)
5056
5157- ** merge_pull_request** - Merge a pull request
52- - ` owner ` : Repository owner (string, required)
53- - ` repo ` : Repository name (string, required)
54- - ` pull_number ` : Pull request number (number, required)
55- - ` commit_title ` : Title for the merge commit (string, optional)
56- - ` commit_message ` : Message for the merge commit (string, optional)
57- - ` merge_method ` : Merge method (string, optional)
58+
59+ - ` owner ` : Repository owner (string, required)
60+ - ` repo ` : Repository name (string, required)
61+ - ` pull_number ` : Pull request number (number, required)
62+ - ` commit_title ` : Title for the merge commit (string, optional)
63+ - ` commit_message ` : Message for the merge commit (string, optional)
64+ - ` merge_method ` : Merge method (string, optional)
5865
5966- ** get_pull_request_files** - Get the list of files changed in a pull request
60- - ` owner ` : Repository owner (string, required)
61- - ` repo ` : Repository name (string, required)
62- - ` pull_number ` : Pull request number (number, required)
67+
68+ - ` owner ` : Repository owner (string, required)
69+ - ` repo ` : Repository name (string, required)
70+ - ` pull_number ` : Pull request number (number, required)
6371
6472- ** get_pull_request_status** - Get the combined status of all status checks for a pull request
65- - ` owner ` : Repository owner (string, required)
66- - ` repo ` : Repository name (string, required)
67- - ` pull_number ` : Pull request number (number, required)
73+
74+ - ` owner ` : Repository owner (string, required)
75+ - ` repo ` : Repository name (string, required)
76+ - ` pull_number ` : Pull request number (number, required)
6877
6978- ** update_pull_request_branch** - Update a pull request branch with the latest changes from the base branch
70- - ` owner ` : Repository owner (string, required)
71- - ` repo ` : Repository name (string, required)
72- - ` pull_number ` : Pull request number (number, required)
73- - ` expected_head_sha ` : The expected SHA of the pull request's HEAD ref (string, optional)
79+
80+ - ` owner ` : Repository owner (string, required)
81+ - ` repo ` : Repository name (string, required)
82+ - ` pull_number ` : Pull request number (number, required)
83+ - ` expected_head_sha ` : The expected SHA of the pull request's HEAD ref (string, optional)
7484
7585- ** get_pull_request_comments** - Get the review comments on a pull request
76- - ` owner ` : Repository owner (string, required)
77- - ` repo ` : Repository name (string, required)
78- - ` pull_number ` : Pull request number (number, required)
86+
87+ - ` owner ` : Repository owner (string, required)
88+ - ` repo ` : Repository name (string, required)
89+ - ` pull_number ` : Pull request number (number, required)
7990
8091- ** get_pull_request_reviews** - Get the reviews on a pull request
81- - ` owner ` : Repository owner (string, required)
82- - ` repo ` : Repository name (string, required)
83- - ` pull_number ` : Pull request number (number, required)
92+ - ` owner ` : Repository owner (string, required)
93+ - ` repo ` : Repository name (string, required)
94+ - ` pull_number ` : Pull request number (number, required)
8495
8596###Repositories
97+
8698- ** create_or_update_file** - Create or update a single file in a repository
87- - ` owner ` : Repository owner (string, required)
88- - ` repo ` : Repository name (string, required)
89- - ` path ` : File path (string, required)
90- - ` message ` : Commit message (string, required)
91- - ` content ` : File content (string, required)
92- - ` branch ` : Branch name (string, optional)
93- - ` sha ` : File SHA if updating (string, optional)
99+
100+ - ` owner ` : Repository owner (string, required)
101+ - ` repo ` : Repository name (string, required)
102+ - ` path ` : File path (string, required)
103+ - ` message ` : Commit message (string, required)
104+ - ` content ` : File content (string, required)
105+ - ` branch ` : Branch name (string, optional)
106+ - ` sha ` : File SHA if updating (string, optional)
94107
95108- ** search_repositories** - Search for GitHub repositories
96- - ` query ` : Search query (string, required)
97- - ` sort ` : Sort field (string, optional)
98- - ` order ` : Sort order (string, optional)
99- - ` page ` : Page number (number, optional)
100- - ` per_page ` : Results per page (number, optional)
109+
110+ - ` query ` : Search query (string, required)
111+ - ` sort ` : Sort field (string, optional)
112+ - ` order ` : Sort order (string, optional)
113+ - ` page ` : Page number (number, optional)
114+ - ` per_page ` : Results per page (number, optional)
101115
102116- ** create_repository** - Create a new GitHub repository
103- - ` name ` : Repository name (string, required)
104- - ` description ` : Repository description (string, optional)
105- - ` private ` : Whether the repository is private (boolean, optional)
106- - ` auto_init ` : Auto-initialize with README (boolean, optional)
107- - ` gitignore_template ` : Gitignore template name (string, optional)
117+
118+ - ` name ` : Repository name (string, required)
119+ - ` description ` : Repository description (string, optional)
120+ - ` private ` : Whether the repository is private (boolean, optional)
121+ - ` auto_init ` : Auto-initialize with README (boolean, optional)
122+ - ` gitignore_template ` : Gitignore template name (string, optional)
108123
109124- ** get_file_contents** - Get contents of a file or directory
110- - ` owner ` : Repository owner (string, required)
111- - ` repo ` : Repository name (string, required)
112- - ` path ` : File path (string, required)
113- - ` ref ` : Git reference (string, optional)
125+
126+ - ` owner ` : Repository owner (string, required)
127+ - ` repo ` : Repository name (string, required)
128+ - ` path ` : File path (string, required)
129+ - ` ref ` : Git reference (string, optional)
114130
115131- ** fork_repository** - Fork a repository
116- - ` owner ` : Repository owner (string, required)
117- - ` repo ` : Repository name (string, required)
118- - ` organization ` : Target organization name (string, optional)
132+
133+ - ` owner ` : Repository owner (string, required)
134+ - ` repo ` : Repository name (string, required)
135+ - ` organization ` : Target organization name (string, optional)
119136
120137- ** create_branch** - Create a new branch
121- - ` owner ` : Repository owner (string, required)
122- - ` repo ` : Repository name (string, required)
123- - ` branch ` : New branch name (string, required)
124- - ` sha ` : SHA to create branch from (string, required)
138+
139+ - ` owner ` : Repository owner (string, required)
140+ - ` repo ` : Repository name (string, required)
141+ - ` branch ` : New branch name (string, required)
142+ - ` sha ` : SHA to create branch from (string, required)
125143
126144- ** list_commits** - Gets commits of a branch in a repository
127- - ` owner ` : Repository owner (string, required)
128- - ` repo ` : Repository name (string, required)
129- - ` sha ` : Branch name, tag, or commit SHA (string, optional)
130- - ` path ` : Only commits containing this file path (string, optional)
131- - ` page ` : Page number (number, optional)
132- - ` per_page ` : Results per page (number, optional)
145+ - ` owner ` : Repository owner (string, required)
146+ - ` repo ` : Repository name (string, required)
147+ - ` sha ` : Branch name, tag, or commit SHA (string, optional)
148+ - ` path ` : Only commits containing this file path (string, optional)
149+ - ` page ` : Page number (number, optional)
150+ - ` per_page ` : Results per page (number, optional)
133151
134152###Search
153+
135154- ** search_code** - Search for code across GitHub repositories
136- - ` query ` : Search query (string, required)
137- - ` sort ` : Sort field (string, optional)
138- - ` order ` : Sort order (string, optional)
139- - ` page ` : Page number (number, optional)
140- - ` per_page ` : Results per page (number, optional)
155+
156+ - ` query ` : Search query (string, required)
157+ - ` sort ` : Sort field (string, optional)
158+ - ` order ` : Sort order (string, optional)
159+ - ` page ` : Page number (number, optional)
160+ - ` per_page ` : Results per page (number, optional)
141161
142162- ** search_users** - Search for GitHub users
143- - ` query ` : Search query (string, required)
144- - ` sort ` : Sort field (string, optional)
145- - ` order ` : Sort order (string, optional)
146- - ` page ` : Page number (number, optional)
147- - ` per_page ` : Results per page (number, optional)
163+ - ` query ` : Search query (string, required)
164+ - ` sort ` : Sort field (string, optional)
165+ - ` order ` : Sort order (string, optional)
166+ - ` page ` : Page number (number, optional)
167+ - ` per_page ` : Results per page (number, optional)
148168
149169##Standard input/output server
150170
@@ -178,6 +198,7 @@ GitHub MCP Server running on stdio
178198}
179199
180200` ` `
201+
181202# # TODO
182203
183204Lots of things!
@@ -190,14 +211,12 @@ Missing tools:
190211- update_issue (labels and assignees arrays)
191212- create_pull_request_review (comments array)
192213
193-
194- Testing
214+ Testing
195215
196216- Unit tests
197217- Integration tests
198218- Blackbox testing: ideally comparing output to Anthromorphic' s server to make sure that this is a fully compatible drop-in replacement.
199219
200220And some other stuff:
201- - ...
202-
203221
222+ - ...