Skip to content

Add support for search tools and dynamic tool loading #828

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

Merged
merged 1 commit into from
Jul 29, 2025

Conversation

adwsingh
Copy link
Contributor

Issue #, if available:

Description of changes:

Add support for search tools and dynamic tool loading

This PR enhances the MCP server implementation with dynamic tool discovery and installation capabilities:

Key Changes

  • Search Tools API: Added searchTools operation to the registry service that allows finding relevant tools based on task descriptions
  • Dynamic Tool Installation: Implemented installTool operation to dynamically install MCP tools at runtime
  • Tool Filtering: Added configurable tool filtering support with predicate-based filtering
  • Server Architecture Updates:
    • Services now stored in a map structure for better management
    • Added support for both Smithy-modeled and generic MCP tool bundles
    • Enhanced proxy server initialization and tool refresh mechanisms
  • Registry Model Updates: Updated the registry schema to support tool search and installation workflows
  • CLI Enhancements: Updated StartServer command to handle dynamic tool loading and registry operations

API Changes

  • Replaced ListServers/InstallServer operations with SearchTools/InstallTool
  • Added RegistryTool record for tool identification
  • Enhanced InitializeResult to include optional instructions field

Implementation Details

  • Tools can now be installed on-demand from the registry
  • Supports both direct service integration and proxy-based tool execution
  • Maintains backward compatibility with existing tool bundle configurations
  • Added proper error handling and validation for tool installation

This enables a more flexible and discoverable tool ecosystem where clients can search for and install relevant tools based on their current tasks.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@adwsingh adwsingh requested a review from rhernandez35 July 28, 2025 21:19
@adwsingh adwsingh force-pushed the adwsingh/search-tools-final branch from 29da18e to 68e11e8 Compare July 28, 2025 21:47
@adwsingh adwsingh force-pushed the adwsingh/search-tools-final branch from 68e11e8 to ad2083f Compare July 28, 2025 22:55
@adwsingh adwsingh force-pushed the adwsingh/search-tools-final branch from ad2083f to 9a38200 Compare July 28, 2025 23:06
@adwsingh adwsingh requested a review from rhernandez35 July 28, 2025 23:15
@rhernandez35 rhernandez35 merged commit e31ceab into main Jul 29, 2025
2 checks passed
@rhernandez35 rhernandez35 deleted the adwsingh/search-tools-final branch July 29, 2025 00:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants