fix: change Resource URI fields from AnyUrl to str (#1863)
This commit is contained in:
parent
f2abefffaf
commit
cfb2909631
1 changed files with 343 additions and 179 deletions
|
|
@ -3,7 +3,6 @@ import click
|
|||
import mcp.types as types
|
||||
from mcp.server.lowlevel import Server
|
||||
from mcp.server.lowlevel.helper_types import ReadResourceContents
|
||||
from pydantic import AnyUrl, FileUrl
|
||||
from starlette.requests import Request
|
||||
|
||||
SAMPLE_RESOURCES = {
|
||||
|
|
@ -37,7 +36,7 @@ def main(port: int, transport: str) -> int:
|
|||
async def list_resources() -> list[types.Resource]:
|
||||
return [
|
||||
types.Resource(
|
||||
uri=FileUrl(f"file:///{name}.txt"),
|
||||
uri=f"file:///{name}.txt",
|
||||
name=name,
|
||||
title=SAMPLE_RESOURCES[name]["title"],
|
||||
description=f"A sample text resource named {name}",
|
||||
|
|
@ -47,10 +46,13 @@ def main(port: int, transport: str) -> int:
|
|||
]
|
||||
|
||||
@app.read_resource()
|
||||
async def read_resource(uri: AnyUrl):
|
||||
if uri.path is None:
|
||||
async def read_resource(uri: str):
|
||||
from urllib.parse import urlparse
|
||||
|
||||
parsed = urlparse(uri)
|
||||
if not parsed.path:
|
||||
raise ValueError(f"Invalid resource path: {uri}")
|
||||
name = uri.path.replace(".txt", "").lstrip("/")
|
||||
name = parsed.path.replace(".txt", "").lstrip("/")
|
||||
|
||||
if name not in SAMPLE_RESOURCES:
|
||||
raise ValueError(f"Unknown resource: {uri}")
|
||||
|
|
|
|||
Loading…
Reference in a new issue