Skip to content

Commit cccf36e

Browse files
committed
Merge branch 'main' of https://github.com/github/github-mcp-server into push-files-improvements
2 parents df21536 + 63c7db0 commit cccf36e

File tree

11 files changed

+157
-35
lines changed

11 files changed

+157
-35
lines changed

docs/tool-renaming.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,20 @@ Will get `issue_read` and `get_file_contents` tools registered, with no errors.
4646
<!-- START AUTOMATED ALIASES -->
4747
| Old Name | New Name |
4848
|----------|----------|
49-
| *(none currently)* | |
49+
| `cancel_workflow_run` | `actions_run_trigger` |
50+
| `delete_workflow_run_logs` | `actions_run_trigger` |
51+
| `download_workflow_run_artifact` | `actions_get` |
52+
| `get_workflow` | `actions_get` |
53+
| `get_workflow_job` | `actions_get` |
54+
| `get_workflow_job_logs` | `actions_get` |
55+
| `get_workflow_run` | `actions_get` |
56+
| `get_workflow_run_logs` | `actions_get` |
57+
| `get_workflow_run_usage` | `actions_get` |
58+
| `list_workflow_jobs` | `actions_list` |
59+
| `list_workflow_run_artifacts` | `actions_list` |
60+
| `list_workflow_runs` | `actions_list` |
61+
| `list_workflows` | `actions_list` |
62+
| `rerun_failed_jobs` | `actions_run_trigger` |
63+
| `rerun_workflow_run` | `actions_run_trigger` |
64+
| `run_workflow` | `actions_run_trigger` |
5065
<!-- END AUTOMATED ALIASES -->

internal/ghmcp/server.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,13 @@ func NewMCPServer(cfg MCPServerConfig) (*mcp.Server, error) {
203203
cfg.ContentWindowSize,
204204
)
205205

206+
// Inject dependencies into context for all tool handlers
207+
ghServer.AddReceivingMiddleware(func(next mcp.MethodHandler) mcp.MethodHandler {
208+
return func(ctx context.Context, method string, req mcp.Request) (mcp.Result, error) {
209+
return next(github.ContextWithDeps(ctx, deps), method, req)
210+
}
211+
})
212+
206213
// Build and register the tool/resource/prompt inventory
207214
inventory := github.NewInventory(cfg.Translator).
208215
WithDeprecatedAliases(github.DeprecatedToolAliases).

internal/ghmcp/server_test.go

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
package ghmcp
2+
3+
import (
4+
"testing"
5+
6+
"github.com/github/github-mcp-server/pkg/translations"
7+
"github.com/stretchr/testify/assert"
8+
"github.com/stretchr/testify/require"
9+
)
10+
11+
// TestNewMCPServer_CreatesSuccessfully verifies that the server can be created
12+
// with the deps injection middleware properly configured.
13+
func TestNewMCPServer_CreatesSuccessfully(t *testing.T) {
14+
t.Parallel()
15+
16+
// Create a minimal server configuration
17+
cfg := MCPServerConfig{
18+
Version: "test",
19+
Host: "", // defaults to github.com
20+
Token: "test-token",
21+
EnabledToolsets: []string{"context"},
22+
ReadOnly: false,
23+
Translator: translations.NullTranslationHelper,
24+
ContentWindowSize: 5000,
25+
LockdownMode: false,
26+
}
27+
28+
// Create the server
29+
server, err := NewMCPServer(cfg)
30+
require.NoError(t, err, "expected server creation to succeed")
31+
require.NotNil(t, server, "expected server to be non-nil")
32+
33+
// The fact that the server was created successfully indicates that:
34+
// 1. The deps injection middleware is properly added
35+
// 2. Tools can be registered without panicking
36+
//
37+
// If the middleware wasn't properly added, tool calls would panic with
38+
// "ToolDependencies not found in context" when executed.
39+
//
40+
// The actual middleware functionality and tool execution with ContextWithDeps
41+
// is already tested in pkg/github/*_test.go.
42+
}
43+
44+
// TestResolveEnabledToolsets verifies the toolset resolution logic.
45+
func TestResolveEnabledToolsets(t *testing.T) {
46+
t.Parallel()
47+
48+
tests := []struct {
49+
name string
50+
cfg MCPServerConfig
51+
expectedResult []string
52+
}{
53+
{
54+
name: "nil toolsets without dynamic mode and no tools - use defaults",
55+
cfg: MCPServerConfig{
56+
EnabledToolsets: nil,
57+
DynamicToolsets: false,
58+
EnabledTools: nil,
59+
},
60+
expectedResult: nil, // nil means "use defaults"
61+
},
62+
{
63+
name: "nil toolsets with dynamic mode - start empty",
64+
cfg: MCPServerConfig{
65+
EnabledToolsets: nil,
66+
DynamicToolsets: true,
67+
EnabledTools: nil,
68+
},
69+
expectedResult: []string{}, // empty slice means no toolsets
70+
},
71+
{
72+
name: "explicit toolsets",
73+
cfg: MCPServerConfig{
74+
EnabledToolsets: []string{"repos", "issues"},
75+
DynamicToolsets: false,
76+
},
77+
expectedResult: []string{"repos", "issues"},
78+
},
79+
{
80+
name: "empty toolsets - disable all",
81+
cfg: MCPServerConfig{
82+
EnabledToolsets: []string{},
83+
DynamicToolsets: false,
84+
},
85+
expectedResult: []string{}, // empty slice means no toolsets
86+
},
87+
{
88+
name: "specific tools without toolsets - no default toolsets",
89+
cfg: MCPServerConfig{
90+
EnabledToolsets: nil,
91+
DynamicToolsets: false,
92+
EnabledTools: []string{"get_me"},
93+
},
94+
expectedResult: []string{}, // empty slice when tools specified but no toolsets
95+
},
96+
{
97+
name: "dynamic mode with explicit toolsets removes all and default",
98+
cfg: MCPServerConfig{
99+
EnabledToolsets: []string{"all", "repos"},
100+
DynamicToolsets: true,
101+
},
102+
expectedResult: []string{"repos"}, // "all" is removed in dynamic mode
103+
},
104+
}
105+
106+
for _, tc := range tests {
107+
t.Run(tc.name, func(t *testing.T) {
108+
result := resolveEnabledToolsets(tc.cfg)
109+
assert.Equal(t, tc.expectedResult, result)
110+
})
111+
}
112+
}

pkg/github/__toolsnaps__/assign_copilot_to_issue.snap

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,11 @@
3131
{
3232
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAC20lEQVRIidWUS4wMURSGv3O7kWmPEMRrSMzcbl1dpqtmGuOxsCKECCKxEBusSJhIWEhsWLFAbC1sWFiISBARCyQ2kzSZGaMxHokgXvGIiMH0PRZjpJqqHpb+TeX+59z//H/q5sD/DqlX9H1/zFeX2qzIKoFWYDKgwBtUymL0UkNaT3V3d3/+5wG2EGxB9TDIxGFMvhVhb9/drpN/NaDJC7MGdwJk6TDCv0Gvq0lve9R762GUNdFDLleaZNBrICGq+4yhvf9TJtP/KZNB2PrLlbBliBfRhajuAwnFVa/n8/nkxFkv3GO9oJrzgwVxdesV71ov6I2r5fxggfWCatYL9yYmUJgLPH7Q29WZ4OED6Me4wuAdeQK6MMqna9t0GuibBHFAmgZ9JMG9BhkXZWoSCDSATIq7aguBD0wBplq/tZBgYDIwKnZAs99mFRYD9vd/YK0dpcqhobM6d9haWyOULRTbAauwuNlvsxHTYP3iBnVyXGAa8BIYC3oVeAKioCtAPEE7FCOgR0ErIJdBBZgNskzh40+NF6K6s+9e91lp9osrxMnFoTSmSmPVsF+E5cB0YEDgtoMjjypd5wCy+WC9GnajhEAa4bkqV9LOHKwa9/yneYeyUqwX3AdyQ5EeVrrqro/hYL0g+ggemKh4HGbPmVu0+fB8U76lpR6XgJwZpoGUpNYiusZg1tXjkmCAav0OMTXfJC4eVYPqwbot6l4BCPqyLhd7lwMAWC/cYb3gi/UCzRaKOxsbFzVEM1iv2Ebt5v2Dm14qZbJecZf1Ah3UCrcTbbB+awHnjgHLgHeinHYqZ8aPSXWWy+XvcQZLpdKI9/0D7UbZiLIJmABckVSqo+/OrUrNgF+D8q1LEdcBrAJGAJ8ROlGeicorABWdAswE5gOjge8CF8Ad66v03IjqJb75WS0tE0YOmNWqLBGReaAzgIkMLrt3oM9UpSzCzW9pd+FpT8/7JK3/Gz8Ao5X6wtwP7N4AAAAASUVORK5CYII=",
3333
"mimeType": "image/png",
34-
"sizes": [
35-
"24x24"
36-
],
3734
"theme": "light"
3835
},
3936
{
4037
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAACCElEQVRIid2UPWsUYRSFn3dxWWJUkESiBgslFokfhehGiGClBBQx4h9IGlEh2ijYxh+gxEL/hIWwhYpF8KNZsFRJYdJEiUbjCkqisj4W+y6Mk5nd1U4PDMOce+45L3fmDvzXUDeo59WK+kb9rn5TF9R76jm1+2/NJ9QPtseSOv4nxrvVmQ6M05hRB9qZ98ZR1NRralntitdEwmw8wQ9HbS329rQKuKLW1XJO/aX6IqdWjr1Xk/y6lG4vMBdCqOacoZZ3uBBCVZ0HDrcK2AYs5ZkAuwBb1N8Dm5JEISXoAnqzOtU9QB+wVR3KCdgClDIr6kCc4c/0O1BLNnahiYpaSmmGY62e/JpCLJ4FpmmMaBHYCDwC5mmMZBQYBC7HnhvAK+B+fN4JHAM+R4+3wGQI4S7qaExtol+9o86pq+oX9Yk6ljjtGfVprK2qr9Xb6vaET109jjqb3Jac2XaM1PLNpok1Aep+G/+dfa24nADTX1EWTgOngLE2XCYKQL0DTfKex2WhXgCutxG9i/fFNlwWpgBQL6orcWyTaldToRbUA2pow61XL0WPFfXCb1HqkPowCj6q0+qIWsw7nlpUj6i31OXY+0AdbGpCRtNRGgt1AigCX4EqsJAYTR+wAzgEdAM/gApwM4TwOOm3JiARtBk4CYwAB4F+oIfGZi/HwOfAM6ASQviU5/Vv4xcBzmW2eT1nrQAAAABJRU5ErkJggg==",
4138
"mimeType": "image/png",
42-
"sizes": [
43-
"24x24"
44-
],
4539
"theme": "dark"
4640
}
4741
]

pkg/github/__toolsnaps__/fork_repository.snap

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,11 @@
2929
{
3030
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAACuElEQVRIibWTTUhUYRiFn/fOdYyoydQxk4LEGzN3RudaLYL+qRaBQYsIItoHCW37ISNbRwUFLWoRZBEt+4EIooKoTdZQ6TWaNIgouzJkuGhG731b6JTojDNBntX3ne+c97zfH8wzZCbREm9bZ4hsQvkeDvl3+/r6xuYqEIvFFgdSvRuDqCrPMu6bVyUDrITTjdI1jR8KBbrj/fs3Q8WLp5p9Qx4BzVOUInIm058+XdAY0ztH6RLhSpAza1RlI2jENzhfqntfjAugEdTYMFEtS0GvonrKslNrZwWIhDYDMh6Wo4ODvaMfB9LPFaMHZGvJ8xHdAlzPDLx+8Smd/pE39SggAptnB2gwDBD6ReJvhSCpMFyq/uSa/NFX5UMJgGCaxywMwiH/bi4wh0SCOy1x5waiCUF2gnSW3AByEfSSZTsPVXFF9CDC4ALx7xU0ocLA87x8tG7ZHRUShsheVMKInMy46culArIj317WRpd7KB2GsAl4bKoccN2330t5ALBsJ7ASTvecoun6hNNt2U5QbM0oRip8E6Wt0gCUFPC12FKoGFnX0BgBDtVGG3/W1qzqz2a/5IrpLGt9pLahvhPhCKrnsiPDT2dqZv1kgGQyGc4FZg+wr8I93F6y0DzY29s7XlHAnw7j7dswgg2oRCYZPTBluzk51VEwXmQG0k8qbGRuWHbqiWWn/qlY0Uv+n5j3gKKvaCaSyeSimrqms4hsB4kurW9c0bSs/pnneflyXrOcACCn5jWEPSr0AAgczvlVTVT+ykojFlvTZNmOWvHU8QJnJVInLNtR2163vJy/7B0EpjYAqBhugVMVF8A3goZy/rJHFGa8P4fpCXosHm9PqwbiwzHAqyLvlvPP+dEKWG23dyh6C1g0RY0Jsv+Dm77/XwIAWlpbVzJh7gLAnHjw8d27z5V65xW/AVGM6Ekx9nZCAAAAAElFTkSuQmCC",
3131
"mimeType": "image/png",
32-
"sizes": [
33-
"24x24"
34-
],
3532
"theme": "light"
3633
},
3734
{
3835
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABoUlEQVRIibWUPS+EQRSFz0hsxaIgIZHYllDYiiiUEn6Bn0Dho6Nhf4GPjkYn8ZEgGqFRSNBoVTQKdhEROsk+mrt2svvu7Gutk7yZzJlz77nzztyR/hmulADSkkYk5SQdO+c+QwmAZkkTktolXTjnbkLiDJCniHsgFdCnTFNAHliuJE6bYANoAYaBF+AwYHBkmiGgFdi0HINR4lmrotXjVoG3gMEbsOLN2yzHTIFr8PRZG3s9rs/jo5At0fd6fFk1TfY/X4A14MyqmQrsYNo0pxbzCtwBTZUCUsAh8GHCKaDspnl6ZyZ3FnMA9AR2/BOYBzJVhUV9BshHrTVEkZKeJPXHNZA0IOkxttrrhzkgGdAlgXnTLv3GIAHsEh87QGNUrooHaEajkoYlFXYxaeO2je+SLp1z57Grr2J4DvwqWaVDrhv+3SAWrMvXgWcgZ10b3a01GuwDX8CWfV/AXr2Sd9lVXPC4ReM6q8XHOYMOG2897rZkrXZY0+WAK6DHHsRr4xJ/NjCTcXstC/gAxuPEBju5xKRb0phNT5xzD7UUW3d8A4p92DZKdSwEAAAAAElFTkSuQmCC",
3936
"mimeType": "image/png",
40-
"sizes": [
41-
"24x24"
42-
],
4337
"theme": "dark"
4438
}
4539
]

pkg/github/__toolsnaps__/merge_pull_request.snap

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,11 @@
4747
{
4848
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAACeElEQVRIibWVTUhUYRSGn/e74+iiQih1F9Vcmj9sptylUVBYkO4jcNeuJBdFKxe1CYQokGrRKjCEdtmqwEVmtqomQWeiUdc2EBUtUufe0yLHn1KLGXtX5zvn4zz3vd8f/Gfp90Qs0drmpA6MT1EveDo1NfV92wB+KnMdo39Nfs4L7eSHD5Nz1QJcJYglWtsw+iUehAuRRjO1g+0KHLerbb4OIHnHAC1FdW129s3XmUJuwnBDoOPbA7BwHsD7QWq1HKYN5msBRCpB1AueLoSROSkciSUyj5ClhE6BLtYC8CpBqVRabNrdMmIiJdQjuUbQ1WI+d78WwIbykxnzU9np7ejlNq2YxQ4ebNtTKyCyWcEgYl55EDj/a7ihFEtkLkr0As2YxjwL+9aem00dCEYNzvnJzLDvH27aaM5y80HEnKGHKGwPnEbT6fSOvzpAmrDQnkncpC7siiUzz2QqIPu25iOuGBorTufO/AJmH0v2ajHwuoHhrQHATOH9rQPJ7IjDLgs6kZ0F6it1AzArVcZLdUE+WnYgmv/uYFmz+dxH4NJGNT+RfYLCE7F4tn0pGkxHy94AmBm8/GfAVvIs7AukUTkbj5YdYIbZ9WJh8m1lzrrbNB4/tD+QuyPsdCibF26gmM/dY/NdRDqd3rEYeN04mswYL+ZXm68DxOPxnWXXMClsp+GGhCWBTtClYj53t1qXK78oVH2XYB/mHZ0pvHsN4Cczzw3rBaoGrJ6D5ZUvN1i+kjI0LWiptjmscbC88hZZCAf2trZeq1v0UsJ6wF7UAlhxUMxPvkW6AboQLbvPcjaO+BIx11cL4I9H308eOiLRQUhpOx79/66fNKzrOCYNDm0AAAAASUVORK5CYII=",
4949
"mimeType": "image/png",
50-
"sizes": [
51-
"24x24"
52-
],
5350
"theme": "light"
5451
},
5552
{
5653
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABjElEQVRIibWVPS/DURTGnysSC0HiZdWVrZ28JDaLT8BHaBsMdjqZJDXiAzC2LF5mX6GtATGiIsGARH+Gnj9X8a/kf3uWe3Py3Oc559xz75E6bK7VAWQkzUi6lXTonHsOpgYUgAZfdgmkQpFnjHwb6AemgDpQCiWwYlEPeL4i8JCEt8vb39g67vkmPH8yA3qt5nVgCzi1jLJBBEwkBZSAdxPKAj86LYQQQCU4cYvAKzDUSYF3YC+uRIAD8sA58ACU//VuTODE1n1g+A9c3jBH1tJ1a5TeCPNrdACSCpKeJG1IepN0LKkm6dGDrkqqOOdm7dyUpDNJi865PUnqjsvEObcJHEhaljQnaV5STwvszttXbR2J441KtB4LauLKVpZpYBDYte8mHUogZTWPrAGstTtQBl6AayDX7qHZD7AALMVGDvQBV5ZyETi2qHLtMvmXWRQAk57vBKgl4fV/0+jmq56vImk0icCnAWm7pB3riGngnlADx0TW+T4yL4CxJJy/Df20mkP/TqGHfifsA7INs3X5i3+yAAAAAElFTkSuQmCC",
5754
"mimeType": "image/png",
58-
"sizes": [
59-
"24x24"
60-
],
6155
"theme": "dark"
6256
}
6357
]

pkg/github/__toolsnaps__/request_copilot_review.snap

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,11 @@
3030
{
3131
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAC20lEQVRIidWUS4wMURSGv3O7kWmPEMRrSMzcbl1dpqtmGuOxsCKECCKxEBusSJhIWEhsWLFAbC1sWFiISBARCyQ2kzSZGaMxHokgXvGIiMH0PRZjpJqqHpb+TeX+59z//H/q5sD/DqlX9H1/zFeX2qzIKoFWYDKgwBtUymL0UkNaT3V3d3/+5wG2EGxB9TDIxGFMvhVhb9/drpN/NaDJC7MGdwJk6TDCv0Gvq0lve9R762GUNdFDLleaZNBrICGq+4yhvf9TJtP/KZNB2PrLlbBliBfRhajuAwnFVa/n8/nkxFkv3GO9oJrzgwVxdesV71ov6I2r5fxggfWCatYL9yYmUJgLPH7Q29WZ4OED6Me4wuAdeQK6MMqna9t0GuibBHFAmgZ9JMG9BhkXZWoSCDSATIq7aguBD0wBplq/tZBgYDIwKnZAs99mFRYD9vd/YK0dpcqhobM6d9haWyOULRTbAauwuNlvsxHTYP3iBnVyXGAa8BIYC3oVeAKioCtAPEE7FCOgR0ErIJdBBZgNskzh40+NF6K6s+9e91lp9osrxMnFoTSmSmPVsF+E5cB0YEDgtoMjjypd5wCy+WC9GnajhEAa4bkqV9LOHKwa9/yneYeyUqwX3AdyQ5EeVrrqro/hYL0g+ggemKh4HGbPmVu0+fB8U76lpR6XgJwZpoGUpNYiusZg1tXjkmCAav0OMTXfJC4eVYPqwbot6l4BCPqyLhd7lwMAWC/cYb3gi/UCzRaKOxsbFzVEM1iv2Ebt5v2Dm14qZbJecZf1Ah3UCrcTbbB+awHnjgHLgHeinHYqZ8aPSXWWy+XvcQZLpdKI9/0D7UbZiLIJmABckVSqo+/OrUrNgF+D8q1LEdcBrAJGAJ8ROlGeicorABWdAswE5gOjge8CF8Ad66v03IjqJb75WS0tE0YOmNWqLBGReaAzgIkMLrt3oM9UpSzCzW9pd+FpT8/7JK3/Gz8Ao5X6wtwP7N4AAAAASUVORK5CYII=",
3232
"mimeType": "image/png",
33-
"sizes": [
34-
"24x24"
35-
],
3633
"theme": "light"
3734
},
3835
{
3936
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAACCElEQVRIid2UPWsUYRSFn3dxWWJUkESiBgslFokfhehGiGClBBQx4h9IGlEh2ijYxh+gxEL/hIWwhYpF8KNZsFRJYdJEiUbjCkqisj4W+y6Mk5nd1U4PDMOce+45L3fmDvzXUDeo59WK+kb9rn5TF9R76jm1+2/NJ9QPtseSOv4nxrvVmQ6M05hRB9qZ98ZR1NRralntitdEwmw8wQ9HbS329rQKuKLW1XJO/aX6IqdWjr1Xk/y6lG4vMBdCqOacoZZ3uBBCVZ0HDrcK2AYs5ZkAuwBb1N8Dm5JEISXoAnqzOtU9QB+wVR3KCdgClDIr6kCc4c/0O1BLNnahiYpaSmmGY62e/JpCLJ4FpmmMaBHYCDwC5mmMZBQYBC7HnhvAK+B+fN4JHAM+R4+3wGQI4S7qaExtol+9o86pq+oX9Yk6ljjtGfVprK2qr9Xb6vaET109jjqb3Jac2XaM1PLNpok1Aep+G/+dfa24nADTX1EWTgOngLE2XCYKQL0DTfKex2WhXgCutxG9i/fFNlwWpgBQL6orcWyTaldToRbUA2pow61XL0WPFfXCb1HqkPowCj6q0+qIWsw7nlpUj6i31OXY+0AdbGpCRtNRGgt1AigCX4EqsJAYTR+wAzgEdAM/gApwM4TwOOm3JiARtBk4CYwAB4F+oIfGZi/HwOfAM6ASQviU5/Vv4xcBzmW2eT1nrQAAAABJRU5ErkJggg==",
4037
"mimeType": "image/png",
41-
"sizes": [
42-
"24x24"
43-
],
4438
"theme": "dark"
4539
}
4640
]

pkg/github/__toolsnaps__/star_repository.snap

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,11 @@
2525
{
2626
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAACG0lEQVRIidWVMWgTYRiGn+/+a21EClGrERRiTWLShrbiUETErDq7u3QRF0WhoKN06uYgKEVx1lGQLjo4OTUJ2FzSpBrEQiCkGYPm7nMwlZBe2rvaxXf6eb//fd//u/+7O0MIJDJz905MnJpvNRufg2oksHli5iwjUgXExUp9La3Vg+isoAGMyiJwBBi11XsQVBaog0zm8plfdGtApEd1LJdEpVL4sZ82UAc/cRf7zAHGPKMPg2j37eB8NnvauGYTODpQ6hjPulAur23tpTd7FePx+JhtIkvAVZ+yraJj48ciH9rtdneYhwCk03NxV5hWNAWSVLykIEngHPs/Rg/4ruiGYG2AbghSMcoXx8l/k3R6Lt4V3STEyAaE2iqTluPk66Arh2wO6Irj5OsGoNVsvIuejEVFmD8Ua+V5zSneAfTvJW83G6vHJ2LjwJV/tH9Wc4p3AYWBKWo1G6vRiZgRuH4ga3S5Vire7+d2jel2s/HxICEKT2ql4qNB3ncEbU9fhTEHGFF56cf7BrhCNmyAi/pqhr1EoQN0iGZIgEyHDUDw1dghNneB1731bR9tsA5yuZwNZPooBd4YT7PVUmGhWios2CpJEV7w5zu0g0xPO3DWAUymZ1OWUO6V3yP6uLpeWPM7XWJq9hIqS6A3ADzl4qZTqPTv2ZUYMd2tjms/NZa+rawXPvkZ76AXfDM1NXPN9eRWxHT3/Df8n/gNrfGxihYBZk0AAAAASUVORK5CYII=",
2727
"mimeType": "image/png",
28-
"sizes": [
29-
"24x24"
30-
],
3128
"theme": "light"
3229
},
3330
{
3431
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABLElEQVRIidWVTUrDQBiG3ylddNG9+IdRMC7qpgfoWTyCnqFLF/62UMGNWw/gTdwoiMUzaCtoHxeZ4BQn6SQdEV8IZPG9zzMzCYlUIcARcFilUwW+AUyBd2DrNwSXfOciNnwVeHMEE2A9puCMnzmNBV8BXj2CCbC2LLwFDDzwPAOgVcYwFpRI6khKJe0616akxoJ1zCS9SHp0rgdJ98aYZ2PhT7ksYpC005A0lnQdGS7LHGcqMMB5yVlXzQiYP1orOYkAHwLFxw30l4AfBx1eTUk/+OkA2zUEiY9V9I7vB69mQefPBJ0aAm+nWWH4Q9KNvT/wdMN2DTTJ/lx5ZsAtsOfMJMAV8OnMTYGiBc8JUqd0B3RLZrt2Jk8aImiTfTZ6QVvOOj3baYd2/k++AC+3Yx0GcXS0AAAAAElFTkSuQmCC",
3532
"mimeType": "image/png",
36-
"sizes": [
37-
"24x24"
38-
],
3933
"theme": "dark"
4034
}
4135
]

pkg/github/deprecated_tool_aliases.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,21 @@ package github
1111
// "create_pr": "pull_request_create",
1212
var DeprecatedToolAliases = map[string]string{
1313
// Add entries as tools are renamed
14+
// Actions tools consolidated
15+
"list_workflows": "actions_list",
16+
"list_workflow_runs": "actions_list",
17+
"list_workflow_jobs": "actions_list",
18+
"list_workflow_run_artifacts": "actions_list",
19+
"get_workflow": "actions_get",
20+
"get_workflow_run": "actions_get",
21+
"get_workflow_job": "actions_get",
22+
"get_workflow_run_usage": "actions_get",
23+
"get_workflow_run_logs": "actions_get",
24+
"get_workflow_job_logs": "actions_get",
25+
"download_workflow_run_artifact": "actions_get",
26+
"run_workflow": "actions_run_trigger",
27+
"rerun_workflow_run": "actions_run_trigger",
28+
"rerun_failed_jobs": "actions_run_trigger",
29+
"cancel_workflow_run": "actions_run_trigger",
30+
"delete_workflow_run_logs": "actions_run_trigger",
1431
}

pkg/octicons/octicons.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ func DataURI(name string, theme Theme) string {
6262
// Icons are embedded as 24x24 PNG data URIs for offline use and faster loading.
6363
// The name should be the base octicon name without size suffix (e.g., "repo" not "repo-16").
6464
// See https://primer.style/foundations/icons for available icons.
65+
//
66+
// Note: The Sizes field is omitted for backward compatibility with older MCP clients
67+
// that expect it to be a string rather than an array per the 2025-11-25 MCP spec.
6568
func Icons(name string) []mcp.Icon {
6669
if name == "" {
6770
return nil
@@ -70,13 +73,11 @@ func Icons(name string) []mcp.Icon {
7073
{
7174
Source: DataURI(name, ThemeLight),
7275
MIMEType: "image/png",
73-
Sizes: []string{"24x24"},
7476
Theme: string(ThemeLight),
7577
},
7678
{
7779
Source: DataURI(name, ThemeDark),
7880
MIMEType: "image/png",
79-
Sizes: []string{"24x24"},
8081
Theme: string(ThemeDark),
8182
},
8283
}

0 commit comments

Comments
 (0)