Skip to content

Commit f8e6cbe

Browse files
committed
fix: try to send cancelled notification on failure
1 parent 3a9a460 commit f8e6cbe

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "uipath-mcp"
3-
version = "0.0.42"
3+
version = "0.0.43"
44
description = "UiPath MCP SDK"
55
readme = { file = "README.md", content-type = "text/markdown" }
66
requires-python = ">=3.10"

src/uipath_mcp/_cli/_runtime/_runtime.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import tempfile
66
from typing import Any, Dict, Optional
77

8+
import mcp.types as types
89
from mcp import ClientSession, StdioServerParameters
910
from mcp.client.stdio import stdio_client
1011
from opentelemetry import trace
@@ -272,7 +273,6 @@ async def _register(self) -> None:
272273
except BaseException as e:
273274
logger.error(f"Error during server initialization: {e}")
274275

275-
276276
# Now that we're outside the context managers, check if initialization succeeded
277277
if not initialization_successful:
278278
await self.dispose_session()
@@ -329,7 +329,25 @@ async def dispose_session(self) -> None:
329329
try:
330330
response = self._uipath.api_client.request(
331331
"POST",
332-
f"mcp_/mcp/{self.server.name}/dispose?sessionId={self.server.session_id}"
332+
f"mcp_/mcp/{self.server.name}/out/message?sessionId={self.server.session_id}",
333+
json=types.JSONRPCNotification(
334+
jsonrpc="2.0",
335+
method="notifications/cancelled",
336+
params={"requestId": "*"},
337+
).model_dump(),
338+
)
339+
if response.status_code == 202:
340+
logger.info(
341+
f"Sent outgoing cancelled message to UiPath MCP Server: {self.server.session_id}"
342+
)
343+
else:
344+
logger.error(
345+
f"Error sending outgoing cancelled message to to UiPath MCP Server: {response.status_code} - {response.text}"
346+
)
347+
348+
response = self._uipath.api_client.request(
349+
"POST",
350+
f"mcp_/mcp/{self.server.name}/dispose?sessionId={self.server.session_id}",
333351
)
334352
if response.status_code == 202:
335353
logger.info(

0 commit comments

Comments
 (0)