Skip to content
{mcpdesc}

Reference security schemes and scopes correctly

Security requirements refer to named schemes, and scopes have meaning only for OAuth 2.0 or OpenID Connect schemes. Correct missing references or repeated scopes. An uncatalogued scope can produce a warning where the scheme declares a static scope catalogue.

Security requirements name declared schemes, list scopes only for OAuth 2.0 and OpenID Connect schemes, do not repeat scopes, and use catalogued scopes when the scheme declares a static catalogue.

Rule ID: mcpdesc.security.requirements
Owner: mcpdesc
Surface: Security Requirement
Kind: mcpdesc-semantic
Requirement level: must
Protocol versions: independent of the MCP protocol version
Document schema locations: #/$defs/securityRequirementArray, #/$defs/securityRequirement
Status: internal · Enforcement: internal

The document schema rejects duplicate scopes first; the semantic duplicate-scope check applies only to direct callers of the semantic validator.

Source: expected-warning/uncatalogued-oauth-scope.json · Selected: /tools/0/security/0/oauth

[
"issues:admin"
]

Source: expected-warning/uncatalogued-openid-scope.json · Selected: /security/0/oidc

[
"profile:read"
]

Source: expected-invalid/unknown-security-reference.json · Selected: /security/0

{
"missing": []
}

Source: expected-invalid/non-oauth-scopes.json · Selected: /security/0

{
"bearer": [
"admin"
]
}

Source: expected-invalid/duplicate-security-scope.json · Selected: /security/0

{
"oauth": [
"records:read",
"records:read"
]
}

document.yaml at immutable tag v0.9.0-rc.3.