Ricky Sahu commited on
Commit
5be345f
·
1 Parent(s): 09f2b34

support messages in progress notifications

Browse files
pyproject.toml CHANGED
@@ -7,7 +7,7 @@ dependencies = [
7
  "python-dotenv>=1.1.0",
8
  "exceptiongroup>=1.2.2",
9
  "httpx>=0.28.1",
10
- "mcp>=1.8.1,<2.0.0",
11
  "openapi-pydantic>=0.5.1",
12
  "rich>=13.9.4",
13
  "typer>=0.15.2",
 
7
  "python-dotenv>=1.1.0",
8
  "exceptiongroup>=1.2.2",
9
  "httpx>=0.28.1",
10
+ "mcp>=1.9.0,<2.0.0",
11
  "openapi-pydantic>=0.5.1",
12
  "rich>=13.9.4",
13
  "typer>=0.15.2",
src/fastmcp/client/client.py CHANGED
@@ -168,9 +168,10 @@ class Client:
168
  progress_token: str | int,
169
  progress: float,
170
  total: float | None = None,
 
171
  ) -> None:
172
  """Send a progress notification."""
173
- await self.session.send_progress_notification(progress_token, progress, total)
174
 
175
  async def set_logging_level(self, level: mcp.types.LoggingLevel) -> None:
176
  """Send a logging/setLevel request."""
 
168
  progress_token: str | int,
169
  progress: float,
170
  total: float | None = None,
171
+ message: str | None = None,
172
  ) -> None:
173
  """Send a progress notification."""
174
+ await self.session.send_progress_notification(progress_token, progress, total, message)
175
 
176
  async def set_logging_level(self, level: mcp.types.LoggingLevel) -> None:
177
  """Send a logging/setLevel request."""
src/fastmcp/server/context.py CHANGED
@@ -56,7 +56,7 @@ class Context:
56
  ctx.error("Error message")
57
 
58
  # Report progress
59
- ctx.report_progress(50, 100)
60
 
61
  # Access resources
62
  data = ctx.read_resource("resource://data")
@@ -96,7 +96,7 @@ class Context:
96
  return self.fastmcp._mcp_server.request_context
97
 
98
  async def report_progress(
99
- self, progress: float, total: float | None = None
100
  ) -> None:
101
  """Report progress for the current operation.
102
 
@@ -115,7 +115,7 @@ class Context:
115
  return
116
 
117
  await self.request_context.session.send_progress_notification(
118
- progress_token=progress_token, progress=progress, total=total
119
  )
120
 
121
  async def read_resource(self, uri: str | AnyUrl) -> list[ReadResourceContents]:
 
56
  ctx.error("Error message")
57
 
58
  # Report progress
59
+ ctx.report_progress(50, 100, "Processing")
60
 
61
  # Access resources
62
  data = ctx.read_resource("resource://data")
 
96
  return self.fastmcp._mcp_server.request_context
97
 
98
  async def report_progress(
99
+ self, progress: float, total: float | None = None, message: str | None = None
100
  ) -> None:
101
  """Report progress for the current operation.
102
 
 
115
  return
116
 
117
  await self.request_context.session.send_progress_notification(
118
+ progress_token=progress_token, progress=progress, total=total, message=message
119
  )
120
 
121
  async def read_resource(self, uri: str | AnyUrl) -> list[ReadResourceContents]:
uv.lock CHANGED
@@ -340,7 +340,7 @@ dev = [
340
  requires-dist = [
341
  { name = "exceptiongroup", specifier = ">=1.2.2" },
342
  { name = "httpx", specifier = ">=0.28.1" },
343
- { name = "mcp", specifier = ">=1.8.1,<2.0.0" },
344
  { name = "openapi-pydantic", specifier = ">=0.5.1" },
345
  { name = "python-dotenv", specifier = ">=1.1.0" },
346
  { name = "rich", specifier = ">=13.9.4" },
@@ -573,7 +573,7 @@ wheels = [
573
 
574
  [[package]]
575
  name = "mcp"
576
- version = "1.8.1"
577
  source = { registry = "https://pypi.org/simple" }
578
  dependencies = [
579
  { name = "anyio" },
@@ -586,9 +586,9 @@ dependencies = [
586
  { name = "starlette" },
587
  { name = "uvicorn", marker = "sys_platform != 'emscripten'" },
588
  ]
589
- sdist = { url = "https://files.pythonhosted.org/packages/7c/13/16b712e8a3be6a736b411df2fc6b4e75eb1d3e99b1cd57a3a1decf17f612/mcp-1.8.1.tar.gz", hash = "sha256:ec0646271d93749f784d2316fb5fe6102fb0d1be788ec70a9e2517e8f2722c0e", size = 265605, upload-time = "2025-05-12T17:33:57.887Z" }
590
  wheels = [
591
- { url = "https://files.pythonhosted.org/packages/1c/5d/91cf0d40e40ae9ecf8d4004e0f9611eea86085aa0b5505493e0ff53972da/mcp-1.8.1-py3-none-any.whl", hash = "sha256:948e03783859fa35abe05b9b6c0a1d5519be452fc079dc8d7f682549591c1770", size = 119761, upload-time = "2025-05-12T17:33:56.136Z" },
592
  ]
593
 
594
  [[package]]
 
340
  requires-dist = [
341
  { name = "exceptiongroup", specifier = ">=1.2.2" },
342
  { name = "httpx", specifier = ">=0.28.1" },
343
+ { name = "mcp", specifier = ">=1.9.0,<2.0.0" },
344
  { name = "openapi-pydantic", specifier = ">=0.5.1" },
345
  { name = "python-dotenv", specifier = ">=1.1.0" },
346
  { name = "rich", specifier = ">=13.9.4" },
 
573
 
574
  [[package]]
575
  name = "mcp"
576
+ version = "1.9.0"
577
  source = { registry = "https://pypi.org/simple" }
578
  dependencies = [
579
  { name = "anyio" },
 
586
  { name = "starlette" },
587
  { name = "uvicorn", marker = "sys_platform != 'emscripten'" },
588
  ]
589
+ sdist = { url = "https://files.pythonhosted.org/packages/bc/8d/0f4468582e9e97b0a24604b585c651dfd2144300ecffd1c06a680f5c8861/mcp-1.9.0.tar.gz", hash = "sha256:905d8d208baf7e3e71d70c82803b89112e321581bcd2530f9de0fe4103d28749", size = 281432 }
590
  wheels = [
591
+ { url = "https://files.pythonhosted.org/packages/a5/d5/22e36c95c83c80eb47c83f231095419cf57cf5cca5416f1c960032074c78/mcp-1.9.0-py3-none-any.whl", hash = "sha256:9dfb89c8c56f742da10a5910a1f64b0d2ac2c3ed2bd572ddb1cfab7f35957178", size = 125082 },
592
  ]
593
 
594
  [[package]]