Conversation
There was a problem hiding this comment.
Pull request overview
This pull request adds a new Google ADK (Agent Development Kit) tooling extension to the Agent365 Python SDK. The extension provides MCP (Model Context Protocol) tool registration capabilities for Google ADK-based agents, allowing them to dynamically discover and integrate MCP tool servers.
Changes:
- Added new
microsoft-agents-a365-tooling-extensions-googlelibrary package with MCP tool registration service - Implemented comprehensive unit tests covering initialization, tool server registration, error handling, and cleanup
- Updated workspace configuration to include the new Google extension package
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
libraries/microsoft-agents-a365-tooling-extensions-google/microsoft_agents_a365/tooling/extensions/google/services/mcp_tool_registration_service.py |
Core service implementation for registering MCP tool servers with Google ADK agents |
libraries/microsoft-agents-a365-tooling-extensions-google/microsoft_agents_a365/tooling/extensions/google/services/__init__.py |
Service module exports |
libraries/microsoft-agents-a365-tooling-extensions-google/microsoft_agents_a365/tooling/extensions/google/__init__.py |
Package initialization and public API exports |
libraries/microsoft-agents-a365-tooling-extensions-google/setup.py |
Package build configuration with dynamic versioning |
libraries/microsoft-agents-a365-tooling-extensions-google/pyproject.toml |
Package metadata, dependencies, and tool configurations |
libraries/microsoft-agents-a365-tooling-extensions-google/README.md |
Package overview and documentation links |
libraries/microsoft-agents-a365-tooling-extensions-google/docs/design.md |
Architectural documentation and usage examples |
tests/tooling/extensions/google/test_mcp_tool_registration_service.py |
Comprehensive unit tests for the registration service |
tests/tooling/extensions/google/__init__.py |
Test package initialization |
pyproject.toml |
Added Google extension to workspace members and dependency constraints |
tests/RUNNING_TESTS.md |
Updated test installation instructions to include Google extension |
libraries/LICENSE.md |
MIT license file for the libraries directory |
libraries/microsoft-agents-a365-tooling-extensions-google/docs/design.md
Outdated
Show resolved
Hide resolved
libraries/microsoft-agents-a365-tooling-extensions-google/docs/design.md
Outdated
Show resolved
Hide resolved
libraries/microsoft-agents-a365-tooling-extensions-googleadk/pyproject.toml
Show resolved
Hide resolved
|
@copilot open a new pull request to apply changes based on the comments in this thread |
|
@JesuTerraz I've opened a new pull request, #157, to work on those changes. Once the pull request is ready, I'll request review from you. |
* Initial plan * Fix design.md and add ruff copyright config per review comments Co-authored-by: JesuTerraz <96103167+JesuTerraz@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JesuTerraz <96103167+JesuTerraz@users.noreply.github.com>
libraries/microsoft-agents-a365-tooling-extensions-google/setup.py
Outdated
Show resolved
Hide resolved
|
@copilot open a new pull request to apply changes based on the comments in this thread |
|
@JesuTerraz I've opened a new pull request, #158, to work on those changes. Once the pull request is ready, I'll request review from you. |
* Initial plan * Fix setup.py consistency and add @pytest.mark.unit decorators Co-authored-by: JesuTerraz <96103167+JesuTerraz@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JesuTerraz <96103167+JesuTerraz@users.noreply.github.com>
...microsoft_agents_a365/tooling/extensions/googleadk/services/mcp_tool_registration_service.py
Show resolved
Hide resolved
rahuldevikar761
left a comment
There was a problem hiding this comment.
Create a workitem to validate if new package is being created and deployed. I don't recall on top of my head that we have a dynamic packaging blocked due to security reason.
libraries/microsoft-agents-a365-tooling-extensions-googleadk/docs/design.md
Outdated
Show resolved
Hide resolved
libraries/microsoft-agents-a365-tooling-extensions-googleadk/docs/design.md
Outdated
Show resolved
Hide resolved
|
@copilot open a new pull request to apply changes based on the comments in this thread. Please be sure to find all |
|
@JesuTerraz I've opened a new pull request, #166, to work on those changes. Once the pull request is ready, I'll request review from you. |
* Initial plan * Fix file structure path from google/ to googleadk/ in design.md Co-authored-by: JesuTerraz <96103167+JesuTerraz@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JesuTerraz <96103167+JesuTerraz@users.noreply.github.com>
4bbe9d4
...microsoft_agents_a365/tooling/extensions/googleadk/services/mcp_tool_registration_service.py
Show resolved
Hide resolved
...microsoft_agents_a365/tooling/extensions/googleadk/services/mcp_tool_registration_service.py
Show resolved
Hide resolved
tests/tooling/extensions/googleadk/test_mcp_tool_registration_service.py
Outdated
Show resolved
Hide resolved
libraries/microsoft-agents-a365-tooling-extensions-googleadk/docs/design.md
Show resolved
Hide resolved
...microsoft_agents_a365/tooling/extensions/googleadk/services/mcp_tool_registration_service.py
Show resolved
Hide resolved
| # Combine existing tools with new MCP servers | ||
| all_tools = list(agent.tools) + mcp_servers_info | ||
|
|
||
| self._logger.info( | ||
| f"Successfully configured agent with {len(mcp_servers_info)} MCP tool servers " | ||
| f"(total tools: {len(all_tools)})" | ||
| ) | ||
|
|
||
| agent.tools = all_tools | ||
|
|
There was a problem hiding this comment.
add_tool_servers_to_agent() always appends toolsets for every server config without checking whether the agent already has a toolset for that server. If this method is called more than once for the same agent/context, it can create duplicate tools and duplicate entries in _connected_servers (and then attempt to close them multiple times during cleanup). Consider de-duping by server URL (or an explicit server identifier) before appending to agent.tools and _connected_servers.
There was a problem hiding this comment.
@copilot open a new pull request to apply changes based on this feedback
|
@JesuTerraz I've opened a new pull request, #168, to work on those changes. Once the pull request is ready, I'll request review from you. |
No description provided.