Tags: 1mcp-app/agent
Tags
feat(mcp-registry): implement comprehensive MCP registry functionality ( #138) * feat(core): implement MCP registry client and cache manager - Add CacheManager class for in-memory caching with TTL support - Implement MCPRegistryClient for interacting with the MCP registry API - Add support for caching registry responses and managing cache invalidation - Include error handling and timeout functionality for API requests - Provide registry status checking and statistics retrieval - Implement cleanup and resource management for cache and client * feat(core): implement registry commands and update MCP client - Add registry command group for MCP server search and status - Update MCPRegistryClient to use Axios and handle new API endpoints - Refactor server schema and adapt to new registry responses - Improve error handling and add support for pagination and caching * feat(registry): add show and versions commands for MCP servers - Introduce `show` command to display detailed information about a specific MCP server - Introduce `versions` command to list all available versions for a specific MCP server - Enhance `search` command output with colors, improved formatting, and usage tips - Add support for version-specific server fetching in registry client - Include new formatters and handlers for show and versions commands - Update registry types to support version metadata and output formats - Improve error handling and user guidance in command responses * feat(registry): improve search command output and update registry types - Refactor search command to display results in a cleaner, line-by-line format with better spacing and colored output - Remove legacy fields from registry server metadata - Update transport type handling to use nested `type` field - Simplify registry type and transport formatting functions - Adjust search result mapping to use updated metadata structure - Improve search filtering logic to align with new transport types - Update tests to reflect changes in server metadata and search logic * feat(registry): enhance search command with output format options and improve result display * feat(formatters): enhance server detail display with environment variables and arguments tables * feat(registry): enhance server versions retrieval and format display in table * refactor(tools): remove MCP search tools implementation and tests * refactor(registry): modularize command setup with dedicated build functions - Refactor the setup of registry commands to utilize dedicated build functions for search and status commands. - Enhance command options handling by consolidating logic into reusable functions. - Improve code readability and maintainability by reducing duplication in command setup. - Update related tests to ensure functionality remains intact after refactoring. * fix(formatters): correct server detail formatter test expectation - Update the test for server detail formatting to reflect the correct output by removing the 'sse' prefix from the expected URL. - Ensure that the test accurately checks for the presence of the formatted server URL without unnecessary prefixes. * fix(tests): update searchHandler test expectations - Remove unnecessary fields from the expected output in the searchHandler tests to align with the current server metadata structure. - Ensure that the tests accurately reflect the expected properties of the server details without outdated attributes. * refactor(registry): move registry options to a separate file and update command interfaces * refactor(registry): update import paths to use absolute paths and improve code organization - Refactored import statements in the registry command files to utilize absolute paths, enhancing clarity and maintainability. - Updated the search, show, status, and versions command files to reflect the new import structure. - Introduced a new cache manager and registry client with associated tests to improve caching functionality and server interaction. - Added comprehensive tests for the new cache manager and MCP registry client to ensure reliability and performance. - Enhanced formatting utilities for server details and versions to improve output consistency and readability. * docs: update architecture documentation to include MCP Registry domain - Added details about the new MCP Registry domain, including its structure and components such as formatters, cache manager, and registry client. - Updated responsibilities and examples in the domain layer section to reflect the inclusion of the MCP Registry. - Enhanced both English and Chinese versions of the architecture documentation for consistency and clarity. * feat(registry): enhance command setup with global options and logging - Integrated global options and logger configuration into the registry command setup. - Updated command handlers to utilize typed arguments for improved type safety. - Ensured strict parsing of command options while allowing unknown options to prevent errors. * feat(registry): implement cursor-based pagination for search command - Introduced cursor-based pagination in the search command to enhance result navigation. - Updated command arguments to replace offset with cursor for improved clarity. - Modified search handling to support new response structure with pagination metadata. - Adjusted display functions to accommodate the new cursor-based results format. - Enhanced tests to validate cursor functionality and ensure backward compatibility. * chore: update pnpm-lock.yaml for dependency integrity and engine compatibility - Reformatted resolution entries for various packages in pnpm-lock.yaml to ensure consistency. - Updated engine compatibility specifications for several dependencies to align with project requirements. - Ensured that all integrity hashes are correctly formatted for improved lockfile reliability. * feat(tests): add end-to-end tests for registry commands - Introduced new E2E tests for the registry commands: `help`, `search`, `status`, `show`, and `versions`. - Each command's help output is validated to ensure correct usage information is displayed. - Implemented tests for basic functionality, output formats, error handling, and performance for the `search`, `status`, `show`, and `versions` commands. - Enhanced `CliTestRunner` to support running registry commands with appropriate arguments. - Ensured comprehensive coverage for various scenarios, including valid and invalid inputs, to improve overall test reliability. * feat(tests): add comprehensive E2E tests for registry commands - Introduced new end-to-end tests for the `registry` commands, including `basic`, `search`, `show`, `status`, and `versions`. - Validated basic functionality, error handling, and output formats for each command. - Enhanced tests to ensure proper handling of valid and invalid inputs, including 404 errors for non-existent server IDs. - Improved timeout settings for network calls to ensure reliability during testing. - Ensured consistent output structure and error messages across different formats and scenarios.
chore: refine Dockerfile for improved environment setup - Updated symlink commands in the Dockerfile to use the home directory directly, enhancing compatibility and clarity. - Reintroduced the PATH environment variable setup to ensure proper access to installed binaries within the container.
chore: update Dockerfile for improved installation process - Removed yarn installation from the Dockerfile to streamline the setup. - Updated Python installation command to ensure it sets as the default and creates symlinks for easier access. - Enhanced environment variable setup for Python to improve usability within the container.
chore: add version update script and workflow for automated version m… …anagement - Introduced a new script `update-version.cjs` to handle version updates in `package.json` and `src/constants/mcp.ts`. - Created a workflow `update-version.yml` to automate version updates and changelog generation during the release process. - Updated existing workflows to ensure version updates occur before building binaries and publishing to npm.
chore: update build script to use pnpm exec for TypeScript compilatio… …n and path alias resolution - Changed the shebang from bash to sh for better compatibility. - Updated TypeScript compilation and path alias resolution commands to use pnpm exec, ensuring consistent execution within the project environment.
chore: update build and development scripts for improved workflow - Replaced the `dev` and `build` scripts in package.json with new shell scripts (`dev-start.sh` and `build.sh`) to streamline the development and build processes. - The `dev-start.sh` script handles environment setup and starts TypeScript compilation in watch mode alongside nodemon for auto-restart. - The `build.sh` script manages the build process, including TypeScript compilation, path alias resolution, and setting executable permissions on the output file. - Added `concurrently` and `nodemon` as new dependencies to facilitate the development workflow.
chore(deps-dev): bump @types/node from 24.3.1 to 24.7.0 (#144) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.3.1 to 24.7.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.7.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
PreviousNext