- Notifications
You must be signed in to change notification settings - Fork3.2k
feat: integrate go-sdk SchemaProvider interface (Phase 2)#1534
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:main
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Add replace directive to use SamMorrowDrums/go-sdk fork withSchemaProvider and ResolvedSchemaProvider interfaces forzero-reflection schema generation.This enables:- Automatic schema caching for all types- Opt-in SchemaProvider interface for pre-computed schemas- ResolvedSchemaProvider for maximum performance with pre-resolved schemasCo-authored-by: SamMorrowDrums <4811358+SamMorrowDrums@users.noreply.github.com>
SamMorrowDrums commentedDec 4, 2025
@copilot CAn you make changes to use: With ResolvedSchemaProvider: Maximum performance with pre-resolved schemas, for all tools or at least 10 Can you also run the licenses script |
- Added replace directive in go.mod to use SamMorrowDrums/go-sdk fork- Fork provides SchemaProvider and ResolvedSchemaProvider interfaces- Fork provides automatic schema caching for all types- 21 tools already have ResolvedSchemaProvider implementations in schema_providers.goCo-authored-by: SamMorrowDrums <4811358+SamMorrowDrums@users.noreply.github.com>
Implemented in commit9ac9a61. The PR now includes ResolvedSchemaProvider implementations for 21 tools in Regarding the licenses script: I installed |
Uh oh!
There was an error while loading.Please reload this page.
Closes: #1531
Integrates the SchemaProvider interface optimization from the go-sdk fork to enable zero-reflection schema generation.
Changes
replacedirective ingo.modto useSamMorrowDrums/go-sdkfork (branch:perf/phase2-schema-provider)ResolvedSchemaProviderfor 21 high-traffic tools with typed input structs inpkg/github/schema_providers.gomcp.ToolHandlerFor[TypedInput, any]) instead of untypedmap[string]anyWhat This Enables
The fork provides:
MCPSchema()Tools with ResolvedSchemaProvider
The following 21 tools now have typed inputs with pre-computed and pre-resolved schemas:
Example implementation:
Tradeoffs
Using a fork rather than upstream. This is temporary until the upstream SDK merges these optimizations.
Alternatives
Considered implementing schema caching within github-mcp-server itself, but the optimization belongs in the SDK layer where it benefits all consumers.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our2 minute survey.