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
23 lines
618 B
Python
23 lines
618 B
Python
from mcp.server import MCPServer
|
|
from mcp.server.mcpserver.exceptions import ResourceNotFoundError
|
|
|
|
mcp = MCPServer("Weather")
|
|
|
|
FORECASTS = {"London": "Rain.", "Cairo": "Sun."}
|
|
|
|
|
|
@mcp.tool()
|
|
def forecast(city: str) -> str:
|
|
"""Today's forecast for one city."""
|
|
if city not in FORECASTS:
|
|
raise ValueError(f"No forecast for {city!r}.")
|
|
return FORECASTS[city]
|
|
|
|
|
|
@mcp.resource("weather://{city}")
|
|
def report(city: str) -> str:
|
|
"""The full report for one city."""
|
|
if city not in FORECASTS:
|
|
raise ResourceNotFoundError(f"No forecast for {city!r}.")
|
|
return f"{city}: {FORECASTS[city]}"
|