SIGN IN SIGN UP

The official Python SDK for Model Context Protocol servers and clients

0 0 0 Python

feat: add RFC 6570 URI template utility with bidirectional support

Adds `mcp.shared.uri_template.UriTemplate`, a standalone utility for
parsing, expanding, and matching RFC 6570 URI templates. Supports
Levels 1-3 fully plus path-style explode (`{/var*}`, `{.var*}`,
`{;var*}`).

Matching enforces structural integrity: decoded values are validated
against their operator's permitted character set. A simple `{var}`
whose decoded value contains `/` is rejected, preventing `%2F`
smuggling while still allowing `/` in `{+var}` where it is
intentional. This is the operator-aware generalization of the
post-decode check for encoded path separators.

Also fixes the existing regex-escaping gap where template literals
like `.` were treated as regex wildcards.

The utility lives in `shared/` so it is usable from both client code
(expand) and server code (match), including lowlevel server
implementations that do not use MCPServer.
M
Max Isbey committed
5f5e72b87a4d6b3954aa511b902105a3fba99ad1
Parent: 98f8ef2