Merge upstream: streamable HTTP transport, library refactor, string64 - #13
Merged
Conversation
…r 64 bit int fields.
In SSE mode, capture the X-Operator-Identity header (minted by a trusted edge proxy after verifying the operator's client cert) from each inbound message request and attach it as metadata on the outbound gRPC call, so the backend can attribute agent calls to the human operator.
…tring64 Adopts upstream's grpcmcp library package. Fork features are preserved: - --require-method-option and --short-names/--very-short-names now plug in via new Config.MethodFilter and Config.ToolName hooks - --forward-operator-identity reworked from an SSE context func to a ToolHeaderProvider reading the inbound request header, so it works on both SSE and streamable HTTP transports - int64/uint64 JSON schema bounds stay clamped to MAX_SAFE_INTEGER in non-strict mode Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015YK7Pua7bJCJYXzgqmGurD
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015YK7Pua7bJCJYXzgqmGurD
codebutler
approved these changes
Aug 4, 2026
codebutler
added a commit
that referenced
this pull request
Aug 4, 2026
Periodically re-runs gRPC reflection (every 5 minutes when `-reflect` is set) and atomically replaces the MCP tool set via `SetTools`, so new backend RPCs appear in jarvis without restarting grpcmcp. Enables `WithToolCapabilities` so clients receive `tools/list_changed` notifications. **Reworked on top of #13** (upstream library refactor): extracts `grpcmcp.Tools()` from `NewServer` so the refresh loop can rebuild the tool set through the same code path as initial registration, and adds `Config.ServerOptions` for pass-through server options. Also extracts the short-name collision prescan into `buildToolNamer` so refreshes recompute collisions against the new schema. Stacked on #13 — will retarget to master once it merges. Verified: `go vet ./...` and `go test ./...` pass on all packages. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_015YK7Pua7bJCJYXzgqmGurD
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merges
adiom-data/grpcmcpmaster (4 commits) into our fork, preserving all fork features.From upstream
-transport http|sse, http is default whenhostportis set) — prerequisite for retiring the/sseendpoint and the local sse-proxy shimgrpcmcppackage usable as an embedded Go library--string64: expose 64-bit int fields as strings only in JSON schemasFork features preserved
--require-method-optionand--short-names/--very-short-namesnow plug in via newConfig.MethodFilterandConfig.ToolNamehooks--forward-operator-identityreworked from an SSE context func to aToolHeaderProviderreading the inbound request header — now works on both SSE and streamable HTTP transports (was SSE-only)MAX_SAFE_INTEGERin non-strict modeVerified:
go vet ./...andgo test ./...pass on all packages.🤖 Generated with Claude Code
https://claude.ai/code/session_015YK7Pua7bJCJYXzgqmGurD