Skip to content

Commit ba69c96

Browse files
committed
Merge branch 'http-stack-2' into http-lockdownmode
2 parents 4e54bf0 + 8d25f46 commit ba69c96

File tree

5 files changed

+16
-12
lines changed

5 files changed

+16
-12
lines changed

internal/ghmcp/server.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func createGitHubClients(cfg github.MCPServerConfig, apiHost utils.APIHostResolv
100100
}, nil
101101
}
102102

103-
func NewStdioMCPServer(cfg github.MCPServerConfig) (*mcp.Server, error) {
103+
func NewStdioMCPServer(ctx context.Context, cfg github.MCPServerConfig) (*mcp.Server, error) {
104104
apiHost, err := utils.NewAPIHost(cfg.Host)
105105
if err != nil {
106106
return nil, fmt.Errorf("failed to parse API host: %w", err)
@@ -144,7 +144,7 @@ func NewStdioMCPServer(cfg github.MCPServerConfig) (*mcp.Server, error) {
144144
return nil, fmt.Errorf("failed to build inventory: %w", err)
145145
}
146146

147-
ghServer, err := github.NewMCPServer(&cfg, deps, inventory)
147+
ghServer, err := github.NewMCPServer(ctx, &cfg, deps, inventory)
148148
if err != nil {
149149
return nil, fmt.Errorf("failed to create GitHub MCP server: %w", err)
150150
}
@@ -246,7 +246,7 @@ func RunStdioServer(cfg StdioServerConfig) error {
246246
logger.Debug("skipping scope filtering for non-PAT token")
247247
}
248248

249-
ghServer, err := NewStdioMCPServer(github.MCPServerConfig{
249+
ghServer, err := NewStdioMCPServer(ctx, github.MCPServerConfig{
250250
Version: cfg.Version,
251251
Host: cfg.Host,
252252
Token: cfg.Token,

pkg/github/server.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ type MCPServerConfig struct {
7373

7474
type MCPServerOption func(*mcp.ServerOptions)
7575

76-
func NewMCPServer(cfg *MCPServerConfig, deps ToolDependencies, inventory *inventory.Inventory) (*mcp.Server, error) {
76+
func NewMCPServer(ctx context.Context, cfg *MCPServerConfig, deps ToolDependencies, inventory *inventory.Inventory) (*mcp.Server, error) {
7777
// Create the MCP server
7878
serverOpts := &mcp.ServerOptions{
7979
Instructions: inventory.Instructions(),
@@ -110,7 +110,7 @@ func NewMCPServer(cfg *MCPServerConfig, deps ToolDependencies, inventory *invent
110110
// In dynamic mode with no explicit toolsets, this is a no-op since enabledToolsets
111111
// is empty - users enable toolsets at runtime via the dynamic tools below (but can
112112
// enable toolsets or tools explicitly that do need registration).
113-
inventory.RegisterAll(context.Background(), ghServer, deps)
113+
inventory.RegisterAll(ctx, ghServer, deps)
114114

115115
// Register dynamic toolset management tools (enable/disable) - these are separate
116116
// meta-tools that control the inventory, not part of the inventory itself

pkg/github/server_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ func TestNewMCPServer_CreatesSuccessfully(t *testing.T) {
134134
require.NoError(t, err, "expected inventory build to succeed")
135135

136136
// Create the server
137-
server, err := NewMCPServer(&cfg, deps, inv)
137+
server, err := NewMCPServer(t.Context(), &cfg, deps, inv)
138138
require.NoError(t, err, "expected server creation to succeed")
139139
require.NotNil(t, server, "expected server to be non-nil")
140140

pkg/http/handler.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@ import (
1616
)
1717

1818
type InventoryFactoryFunc func(r *http.Request) (*inventory.Inventory, error)
19-
type GitHubMCPServerFactoryFunc func(ctx context.Context, r *http.Request, deps github.ToolDependencies, inventory *inventory.Inventory, cfg *github.MCPServerConfig) (*mcp.Server, error)
19+
type GitHubMCPServerFactoryFunc func(r *http.Request, deps github.ToolDependencies, inventory *inventory.Inventory, cfg *github.MCPServerConfig) (*mcp.Server, error)
2020

2121
type HTTPMcpHandler struct {
22+
ctx context.Context
2223
config *HTTPServerConfig
2324
deps github.ToolDependencies
2425
logger *slog.Logger
@@ -46,7 +47,9 @@ func WithInventoryFactory(f InventoryFactoryFunc) HTTPMcpHandlerOption {
4647
}
4748
}
4849

49-
func NewHTTPMcpHandler(cfg *HTTPServerConfig,
50+
func NewHTTPMcpHandler(
51+
ctx context.Context,
52+
cfg *HTTPServerConfig,
5053
deps github.ToolDependencies,
5154
t translations.TranslationHelperFunc,
5255
logger *slog.Logger,
@@ -67,6 +70,7 @@ func NewHTTPMcpHandler(cfg *HTTPServerConfig,
6770
}
6871

6972
return &HTTPMcpHandler{
73+
ctx: ctx,
7074
config: cfg,
7175
deps: deps,
7276
logger: logger,
@@ -112,7 +116,7 @@ func (h *HTTPMcpHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
112116
return
113117
}
114118

115-
ghServer, err := h.githubMcpServerFactory(r.Context(), r, h.deps, inventory, &github.MCPServerConfig{
119+
ghServer, err := h.githubMcpServerFactory(r, h.deps, inventory, &github.MCPServerConfig{
116120
Version: h.config.Version,
117121
Translator: h.t,
118122
ContentWindowSize: h.config.ContentWindowSize,
@@ -133,8 +137,8 @@ func (h *HTTPMcpHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
133137
middleware.ExtractUserToken()(mcpHandler).ServeHTTP(w, r)
134138
}
135139

136-
func DefaultGitHubMCPServerFactory(ctx context.Context, _ *http.Request, deps github.ToolDependencies, inventory *inventory.Inventory, cfg *github.MCPServerConfig) (*mcp.Server, error) {
137-
return github.NewMCPServer(&github.MCPServerConfig{
140+
func DefaultGitHubMCPServerFactory(r *http.Request, deps github.ToolDependencies, inventory *inventory.Inventory, cfg *github.MCPServerConfig) (*mcp.Server, error) {
141+
return github.NewMCPServer(r.Context(), &github.MCPServerConfig{
138142
Version: cfg.Version,
139143
Translator: cfg.Translator,
140144
ContentWindowSize: cfg.ContentWindowSize,

pkg/http/server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func RunHTTPServer(cfg HTTPServerConfig) error {
9595

9696
r := chi.NewRouter()
9797

98-
handler := NewHTTPMcpHandler(&cfg, deps, t, logger)
98+
handler := NewHTTPMcpHandler(ctx, &cfg, deps, t, logger)
9999
handler.RegisterRoutes(r)
100100

101101
addr := fmt.Sprintf(":%d", cfg.Port)

0 commit comments

Comments
 (0)