Repository navigation
feat(mcp): resolve fresh low-level tool ownership - #1009
Merged
Merged
Conversation
Add resolve_original_tool for raw MCP SDK 1.x and 2.x servers. Prefer ownership learned from a served listing and keep unknown ownership fail-open. Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e
Contributor
posthog-python Compliance ReportDate: 2026-10-08T14:08:01.146911+00:00 ✅ All Tests Passed!121/121 tests passed Capture_V1 Tests✅ 95/95 tests passed View Details
Capture_Ai Tests✅ 5/5 tests passed View Details
Feature_Flags Tests✅ 17/17 tests passed View Details
Feature_Flags_Local_Evaluation Tests✅ 4/4 tests passed View Details
|
3 of 5 tasks
Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e
Contributor
|
[Medium risk] Adds tool argument ownership tracking for low-level MCP servers. Fix the Reviews (1) · Last reviewed commit: "fix(mcp): preserve listed argument owner..." · Reviewed by Greptile |
Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e
lucasheriques
approved these changes
Oct 7, 2026
Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e
eli-r-ph
pushed a commit
that referenced
this pull request
Oct 10, 2026
* feat(mcp): resolve fresh low-level tool ownership Add resolve_original_tool for raw MCP SDK 1.x and 2.x servers. Prefer ownership learned from a served listing and keep unknown ownership fail-open. Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve listed argument ownership Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve arguments for unknown schemas Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve low-level tool schemas Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e (cherry picked from commit 127009d)
eli-r-ph
pushed a commit
that referenced
this pull request
Oct 10, 2026
* feat(mcp): resolve fresh low-level tool ownership Add resolve_original_tool for raw MCP SDK 1.x and 2.x servers. Prefer ownership learned from a served listing and keep unknown ownership fail-open. Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve listed argument ownership Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve arguments for unknown schemas Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve low-level tool schemas Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e (cherry picked from commit 127009d)
eli-r-ph
pushed a commit
that referenced
this pull request
Oct 20, 2026
* feat(mcp): resolve fresh low-level tool ownership Add resolve_original_tool for raw MCP SDK 1.x and 2.x servers. Prefer ownership learned from a served listing and keep unknown ownership fail-open. Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve listed argument ownership Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve arguments for unknown schemas Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve low-level tool schemas Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e (cherry picked from commit 127009d)
eli-r-ph
added a commit
that referenced
this pull request
Oct 20, 2026
* ci: reuse Python SDK upgrade PRs unless queued (#1021) * ci: reuse Python SDK upgrade PRs unless queued * ci: protect reused upgrade PRs from stale and queued writes (cherry picked from commit 945bbbc) * feat(error-tracking): standardize exception event metadata (#898) * feat(error-tracking): standardize exception metadata * fix(error-tracking): preserve explicit trace context * fix(error-tracking): restrict exception group traversal * fix(error-tracking): deprecate reserved property overrides * fix(error-tracking): bound exception group traversal (cherry picked from commit 6d6cc3d) * chore: Release v7.65.0 [skip ci] (cherry picked from commit c4e6bdd) * Update generated references (cherry picked from commit 50efa65) * feat(asgi): add error tracking middleware (#1037) * feat(asgi): add error tracking middleware * chore(asgi): type exception capture metadata * fix(asgi): make tracing header trust explicit * refactor(asgi): expose request properties terminology (cherry picked from commit 1c6a47a) * feat(mcp): resolve fresh low-level tool ownership (#1009) * feat(mcp): resolve fresh low-level tool ownership Add resolve_original_tool for raw MCP SDK 1.x and 2.x servers. Prefer ownership learned from a served listing and keep unknown ownership fail-open. Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve listed argument ownership Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve arguments for unknown schemas Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e * fix(mcp): preserve low-level tool schemas Generated-By: PostHog Desktop Task-Id: db1a8a08-fe03-43b6-9e49-705e8b1f375e (cherry picked from commit 127009d) * feat(flask): add error tracking integration (#1038) * feat(flask): add error tracking integration * fix(flask): use canonical exception metadata * chore(flask): type exception capture metadata * refactor(flask): expose request properties terminology * fix(flask): preserve exception privacy settings (cherry picked from commit 292855d) * chore: Release v7.66.0 [skip ci] (cherry picked from commit d23ef68) * Update generated references (cherry picked from commit c0e05b1) * feat(drf): add automatic error tracking integration (#1036) * feat(drf): add automatic error tracking integration * fix(drf): align exception metadata with SDK spec * chore(drf): type exception capture metadata * fix(drf): honor Django request filtering * test(drf): describe context data as properties * feat(drf): support exception capture opt-out * chore(drf): update public API snapshot * fix(drf): align exception capture configuration * test(drf): preserve omitted setting default (cherry picked from commit 9baf8a5) * chore: Release v7.67.0 [skip ci] (cherry picked from commit a655c8b) * Update generated references (cherry picked from commit 509c852) --------- Co-authored-by: Dustin Byrne <[email protected]> Co-authored-by: Hugues Pouillot <[email protected]> Co-authored-by: releaser-posthog-python[bot] <262414804+releaser-posthog-python[bot]@users.noreply.github.com> Co-authored-by: Georgis Andonis <[email protected]>
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.
💡 Motivation and Context
Fresh low-level MCP server instances might call a strict tool before they serve
tools/list. The SDK then cannot remove its injected arguments before tool validation.Why: Strict tools must receive only their own arguments. This change follows sdk-specs#98.
💚 How did you test it?
📝 Checklist
If releasing new changes
sampo addto generate a changeset file.🤖 Agent context
Autonomy: Human-driven (agent-assisted)
PostHog Desktop Codex implemented the agreed SDK contract. The implementation keeps unknown ownership fail-open and gives served listings priority over the resolver.
Created with PostHog Desktop