feat(sep): add SEP-3221 Secure Parameters Extension - #3221
Open
anubhav756 wants to merge 1 commit into
Open
Conversation
anubhav756
force-pushed
the
anubhav-secure-params
branch
from
August 10, 2026 13:24
9c05366 to
2bcec19
Compare
9 tasks
anubhav756
force-pushed
the
anubhav-secure-params
branch
2 times, most recently
from
August 10, 2026 13:46
34a3b51 to
f7080ed
Compare
anubhav756
force-pushed
the
anubhav-secure-params
branch
from
August 10, 2026 13:53
f7080ed to
d4c06e2
Compare
anubhav756
force-pushed
the
anubhav-secure-params
branch
from
August 10, 2026 16:06
d4c06e2 to
0375037
Compare
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.
This pull request introduces a new Extensions Track Specification Enhancement Proposal: Secure Parameters Extension (
io.modelcontextprotocol/secure-params) underseps/3221-secure-parameters.md.Motivation and Context
In centralized MCP servers with broad ambient credentials (such as fleet-wide database access), exposing infrastructure coordinates (
project_id,instance,tenant_id) ininputSchemaforces them into model prompts. An attacker using prompt injection can trick the LLM into redirecting tool calls to unauthorized instances (the "Confused Deputy" problem).This SEP defines a standard protocol mechanism to isolate application/infrastructure parameters from model context by introducing:
tools/list: A siblingsecureInputSchemafield alongside standardinputSchema.tools/call: A top-levelsecureArgumentsfield for host-injected values, separate from model-generatedarguments._meta["io.modelcontextprotocol/clientCapabilities"].extensions(2026-07-28+) andserver/discover.arguments.-32021(MISSING_REQUIRED_CLIENT_CAPABILITY) and-32602(INVALID_PARAMS).How Has This Been Tested?
mcp-toolboxGo server andmcp-toolbox-sdk-python).modelcontextprotocol/conformance(src/seps/sep-3221.yaml).2026-07-28JSON-RPC schemas.Breaking Changes
None. This is an opt-in, non-breaking extension under the Extensions Track. Un-negotiated clients and servers continue operating under standard MCP semantics.
Types of changes
Checklist
Additional context