Spaces:
Running
Running
Ricky Sahu commited on
Commit ·
5be345f
1
Parent(s): 09f2b34
support messages in progress notifications
Browse files- pyproject.toml +1 -1
- src/fastmcp/client/client.py +2 -1
- src/fastmcp/server/context.py +3 -3
- uv.lock +4 -4
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.
|
| 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.
|
| 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.
|
| 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/
|
| 590 |
wheels = [
|
| 591 |
-
{ url = "https://files.pythonhosted.org/packages/
|
| 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]]
|