feat: RFC 6570 URI templates with operator-aware security (#2356)
This commit is contained in:
parent
067f90578c
commit
24717cc8eb
1 changed files with 3800 additions and 37 deletions
28
docs_src/uri_templates/tutorial004.py
Normal file
28
docs_src/uri_templates/tutorial004.py
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
from mcp_types import (
|
||||
ListResourcesResult,
|
||||
PaginatedRequestParams,
|
||||
ReadResourceRequestParams,
|
||||
ReadResourceResult,
|
||||
Resource,
|
||||
TextResourceContents,
|
||||
)
|
||||
|
||||
from mcp.server import Server, ServerRequestContext
|
||||
|
||||
RESOURCES = {
|
||||
"config://shop": '{"currency": "USD", "tax_rate": 0.08}',
|
||||
"status://health": "ok",
|
||||
}
|
||||
|
||||
|
||||
async def list_resources(ctx: ServerRequestContext, params: PaginatedRequestParams | None) -> ListResourcesResult:
|
||||
return ListResourcesResult(resources=[Resource(name=uri, uri=uri) for uri in RESOURCES])
|
||||
|
||||
|
||||
async def read_resource(ctx: ServerRequestContext, params: ReadResourceRequestParams) -> ReadResourceResult:
|
||||
if (text := RESOURCES.get(params.uri)) is not None:
|
||||
return ReadResourceResult(contents=[TextResourceContents(uri=params.uri, text=text)])
|
||||
raise ValueError(f"Unknown resource: {params.uri}")
|
||||
|
||||
|
||||
server = Server("Bookshop", on_list_resources=list_resources, on_read_resource=read_resource)
|
||||
Loading…
Reference in a new issue