github / github/github-mcp-server

perf: integrate go-sdk schema caching optimization (Phase 1)

Abierto
#1,530 0 comentarios 1 reacción 1 asignado Asignado a @Copilot Ver en GitHub
enhancement performance
Lenguaje dominante
Go
Estrellas
33k
Forks
5k
Merge medio
2 d 1 h
PR fusionados (30 d)
52

Descripción

## Summary

Integrate the schema caching optimization from the go-sdk fork to dramatically improve tool registration performance.

## Background

The go-sdk currently performs expensive reflection-based schema generation on every `AddTool` call. In stateless server patterns (like github-mcp-server where a new server is created per HTTP request), this causes significant overhead.

The optimization adds automatic schema caching that provides:
- **132x faster** tool registration
- **51x fewer** allocations
- **19% faster** per-tool-call validation

## Implementation

### 1. Update go.mod to use the fork

Add a replace directive to use the optimized fork:

```go
replace github.com/modelcontextprotocol/go-sdk => github.com/SamMorrowDrums/go-sdk v0.0.0-20251204132239-46310a70a79a
```

Or use the branch reference:
```go
replace github.com/modelcontextprotocol/go-sdk => github.com/SamMorrowDrums/go-sdk perf/phase1-schema-cache
```

### 2. Run go mod tidy

```bash
go mod tidy
```

### 3. Verify all tests pass

```bash
go test ./...
```

## Expected Impact

No code changes should be required in github-mcp-server. The optimization is automatic and transparent to integrators.

## Fork Branch

- Repository: https://github.com/SamMorrowDrums/go-sdk
- Branch: `perf/phase1-schema-cache`
- PR: https://github.com/SamMorrowDrums/go-sdk/pull/1

## Benchmark Results

```
BenchmarkAddTool_TypedHandler-22 977080 1223 ns/op 1208 B/op 21 allocs/op
BenchmarkAddTool_TypedHandler_NoCache-22 6764 161463 ns/op 39262 B/op 1072 allocs/op
```

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.