-
Notifications
You must be signed in to change notification settings - Fork 5
Update uipath 2.2 #159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Update uipath 2.2 #159
Conversation
1f6de07 to
33c8807
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR updates the uipath-mcp package to align with the new UiPath 2.2 runtime model. The changes refactor the codebase to use the new runtime protocol-based architecture instead of the previous middleware-based approach.
Key changes:
- Migrates from middleware-based execution to runtime factory pattern
- Refactors runtime to implement
UiPathRuntimeProtocolwithexecute()andstream()methods - Updates import paths from
uipath._clitouipath.platformanduipath.runtime
Reviewed changes
Copilot reviewed 13 out of 14 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/uipath_mcp/middlewares.py | Removes init and run middleware registrations |
| src/uipath_mcp/_cli/cli_run.py | Deletes entire run middleware implementation |
| src/uipath_mcp/_cli/cli_init.py | Deletes entire init middleware implementation |
| src/uipath_mcp/_cli/_utils/_config.py | Adds type annotation for command field |
| src/uipath_mcp/_cli/_templates/server.py.template | Simplifies template by removing many example tool functions |
| src/uipath_mcp/_cli/_runtime/_session.py | Updates imports and adds type cast for command parameter |
| src/uipath_mcp/_cli/_runtime/_runtime.py | Major refactor to implement runtime protocol, adds factory pattern support, and streaming capabilities |
| src/uipath_mcp/_cli/_runtime/_factory.py | Adds new factory class for creating MCP runtime instances |
| src/uipath_mcp/_cli/_runtime/_exception.py | Updates import path for error classes |
| src/uipath_mcp/_cli/_runtime/_context.py | Removes UiPathMcpRuntimeContext class, keeps only UiPathServerType enum |
| src/uipath_mcp/_cli/_runtime/init.py | Adds factory registration and exports |
| pyproject.toml | Updates uipath dependency version and adds local development source |
| .vscode/settings.json | Adds new VS Code workspace configuration |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| def _validate_auth(self) -> None: | ||
| """Validate authentication-related configuration. | ||
| TODO: do we still need this? |
Copilot
AI
Dec 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO comment suggests uncertainty about whether authentication validation is still needed. Either confirm it's required and remove the TODO, or refactor if it's obsolete.
| TODO: do we still need this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we do, the check is not done in any other place
90495a9 to
e7df223
Compare
e7df223 to
80f2f3b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
80f2f3b to
6c8f026
Compare
6c8f026 to
ce27d27
Compare
ce27d27 to
141dd08
Compare
| """ | ||
| Load fps context from uipath.json for server registration. | ||
| """ | ||
| config_path = self.context.config_path or "uipath.json" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| config_path = self.context.config_path or "uipath.json" | |
| config_path = self.context.config_path or UiPathConfig.config_file_path() |
| self.trace_provider = TracerProvider() | ||
| trace.set_tracer_provider(self.trace_provider) | ||
| self.trace_provider.add_span_processor( | ||
| async def emit_state(node_name: str, payload: dict[str, Any]) -> None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's remove streaming events, it complicates things unnecessarily
| with open(config_path, "r") as f: | ||
| config: dict[str, Any] = json.load(f) | ||
|
|
||
| config_runtime = config.get("runtime", {}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should be a part of the UiPathRuntimeContext, let's do something similar to what we did for conversational agents: https://github.com/UiPath/uipath-runtime-python/blob/main/src/uipath/runtime/context.py#L319
| await event_queue.put(event) | ||
|
|
||
| try: | ||
| if self._job_id: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's remove this, is automatically handled by the CLI now (the tracing/llm ops exporter part)
This PR updates the uipath-mcp package to align with the new UiPath 2.2 runtime model. The changes refactor the codebase to use the new runtime protocol-based architecture instead of the previous middleware-based approach.
Key changes:
Development Package