diff --git a/src/fastmcp/server/context.py b/src/fastmcp/server/context.py index 65af5076b..40fac923a 100644 --- a/src/fastmcp/server/context.py +++ b/src/fastmcp/server/context.py @@ -85,18 +85,18 @@ class Context: ```python @server.tool - def my_tool(x: int, ctx: Context) -> str: + async def my_tool(x: int, ctx: Context) -> str: # Log messages to the client - ctx.info(f"Processing {x}") - ctx.debug("Debug info") - ctx.warning("Warning message") - ctx.error("Error message") + await ctx.info(f"Processing {x}") + await ctx.debug("Debug info") + await ctx.warning("Warning message") + await ctx.error("Error message") # Report progress - ctx.report_progress(50, 100, "Processing") + await ctx.report_progress(50, 100, "Processing") # Access resources - data = ctx.read_resource("resource://data") + data = await ctx.read_resource("resource://data") # Get request info request_id = ctx.request_id diff --git a/src/fastmcp/server/server.py b/src/fastmcp/server/server.py index 0d77d26a5..170f5d10e 100644 --- a/src/fastmcp/server/server.py +++ b/src/fastmcp/server/server.py @@ -1210,8 +1210,8 @@ class FastMCP(Generic[LifespanResultT]): return f"Weather for {city}" @server.resource("resource://{city}/weather") - def get_weather_with_context(city: str, ctx: Context) -> str: - ctx.info(f"Fetching weather for {city}") + async def get_weather_with_context(city: str, ctx: Context) -> str: + await ctx.info(f"Fetching weather for {city}") return f"Weather for {city}" @server.resource("resource://{city}/weather") @@ -1386,8 +1386,8 @@ class FastMCP(Generic[LifespanResultT]): ] @server.prompt() - def analyze_with_context(table_name: str, ctx: Context) -> list[Message]: - ctx.info(f"Analyzing table {table_name}") + async def analyze_with_context(table_name: str, ctx: Context) -> list[Message]: + await ctx.info(f"Analyzing table {table_name}") schema = read_table_schema(table_name) return [ { @@ -1397,7 +1397,7 @@ class FastMCP(Generic[LifespanResultT]): ] @server.prompt("custom_name") - def analyze_file(path: str) -> list[Message]: + async def analyze_file(path: str) -> list[Message]: content = await read_file(path) return [ {