@@ -7,144 +7,164 @@ GitHub MCP Server implemented in Go.
7
7
Create a GitHub Personal Access Token with the appropriate permissions
8
8
and set it as the GITHUB_PERSONAL_ACCESS_TOKEN environment variable.
9
9
10
-
11
10
##Tools
12
11
13
12
###Users
13
+
14
14
- ** get_me** - Get details of the authenticated user
15
- - No parameters required
15
+ - No parameters required
16
16
17
17
###Issues
18
+
18
19
- ** 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)
22
24
23
25
- ** 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)
28
31
29
32
- ** 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)
35
38
36
39
###Pull Requests
40
+
37
41
- ** 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)
41
46
42
47
- ** 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)
50
56
51
57
- ** 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)
58
65
59
66
- ** 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)
63
71
64
72
- ** 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)
68
77
69
78
- ** 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)
74
84
75
85
- ** 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)
79
90
80
91
- ** 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)
84
95
85
96
###Repositories
97
+
86
98
- ** 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)
94
107
95
108
- ** 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)
101
115
102
116
- ** 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)
108
123
109
124
- ** 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)
114
130
115
131
- ** 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)
119
136
120
137
- ** 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)
125
143
126
144
- ** 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)
133
151
134
152
###Search
153
+
135
154
- ** 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)
141
161
142
162
- ** 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)
148
168
149
169
##Standard input/output server
150
170
@@ -178,6 +198,7 @@ GitHub MCP Server running on stdio
178
198
}
179
199
180
200
` ` `
201
+
181
202
# # TODO
182
203
183
204
Lots of things!
@@ -190,14 +211,12 @@ Missing tools:
190
211
- update_issue (labels and assignees arrays)
191
212
- create_pull_request_review (comments array)
192
213
193
-
194
- Testing
214
+ Testing
195
215
196
216
- Unit tests
197
217
- Integration tests
198
218
- Blackbox testing: ideally comparing output to Anthromorphic' s server to make sure that this is a fully compatible drop-in replacement.
199
219
200
220
And some other stuff:
201
- - ...
202
-
203
221
222
+ - ...