feat: add keyword search functionality to registry service #142
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation and Context
Summary
This pull request enhances the MCP Registry service to support keyword searching across server names and descriptions for both REST API clients and internal database queries. It introduces new methods and modifications across various layers, including API handlers, memory-based storage, MongoDB repository, and service interfaces, to enable efficient case-insensitive search with cursor-based pagination.
Key Details
search
query parameter to/v0/servers
API endpoint, supporting keywords for filtering servers.search
parameter and invoke appropriate database methods.Search
method in memory database with case-insensitive substring matching on server name and description.Search
method in MongoDB database using regular expressions for case-insensitive, partial matches.Search
functionality.nextCursor
calculated based on the last matched entry.How Has This Been Tested?
/v0/servers
endpoint acceptssearch
parameter and returns filtered results:GET /v0/servers?search=redis
GET /v0/servers?search=database&limit=10&cursor=...
Breaking Changes
Types of changes
Checklist
Additional context