49b9bb6724
Deploy Docs / deploy-docs (push) Failing after 1s
Conformance Tests / client-conformance (push) Failing after 3s
Conformance Tests / server-conformance (push) Failing after 1s
GitHub Actions Security Analysis / zizmor (push) Failing after 1s
CI / checks (push) Failing after 59m20s
CI / all-green (push) Waiting to run
29 lines
958 B
Python
29 lines
958 B
Python
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)
|