From c005e9ed93e756ccc9d5fa921f92a6eb0ca7ee60 Mon Sep 17 00:00:00 2001 From: GabrielDrapor Date: Wed, 25 Jun 2025 00:07:03 +0800 Subject: [PATCH 1/5] swtich registry url to getmcp.io --- src/mcpm/utils/repository.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/mcpm/utils/repository.py b/src/mcpm/utils/repository.py index 5c6a0011..0dda9042 100644 --- a/src/mcpm/utils/repository.py +++ b/src/mcpm/utils/repository.py @@ -16,7 +16,7 @@ logger = logging.getLogger(__name__) # Default repository URL -DEFAULT_REPO_URL = "https://mcpm.sh/api/servers.json" +DEFAULT_REPO_URL = "https://getmcp.io/api/servers.json" # Default cache file path DEFAULT_CACHE_FILE = os.path.join(DEFAULT_CONFIG_DIR, "servers_cache.json") @@ -50,11 +50,14 @@ def _load_cache_from_file(self) -> None: # Parse the last_refresh timestamp if it exists last_refresh_str = cache_data.get("last_refresh") if last_refresh_str: - self.last_refresh = datetime.fromisoformat(last_refresh_str) + self.last_refresh = datetime.fromisoformat( + last_refresh_str) - logger.debug(f"Loaded servers cache from {self.cache_file}") + logger.debug( + f"Loaded servers cache from {self.cache_file}") except (json.JSONDecodeError, ValueError) as e: - logger.error(f"Error parsing cache file: {self.cache_file}: {e}") + logger.error( + f"Error parsing cache file: {self.cache_file}: {e}") self.servers_cache = None self.last_refresh = None @@ -64,7 +67,8 @@ def _save_cache_to_file(self) -> None: """ if self.servers_cache and self.last_refresh: try: - cache_data = {"servers": self.servers_cache, "last_refresh": self.last_refresh.isoformat()} + cache_data = {"servers": self.servers_cache, + "last_refresh": self.last_refresh.isoformat()} with open(self.cache_file, "w", encoding="utf-8") as f: json.dump(cache_data, f, indent=2) From 0464456a7547a465766a334bf812d83a6cf6d5b1 Mon Sep 17 00:00:00 2001 From: GabrielDrapor Date: Wed, 25 Jun 2025 00:07:18 +0800 Subject: [PATCH 2/5] display archived info in mcpm info command --- src/mcpm/commands/info.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/mcpm/commands/info.py b/src/mcpm/commands/info.py index 5f959732..7b611c6b 100644 --- a/src/mcpm/commands/info.py +++ b/src/mcpm/commands/info.py @@ -27,21 +27,24 @@ def info(server_name): mcpm info github # Show details for the GitHub server mcpm info pinecone # Show details for the Pinecone server """ - console.print(f"[bold green]Showing information for MCP server:[/] [bold cyan]{server_name}[/]") + console.print( + f"[bold green]Showing information for MCP server:[/] [bold cyan]{server_name}[/]") try: # Get the server information server = repo_manager.get_server_metadata(server_name) if not server: - console.print(f"[yellow]Server '[bold]{server_name}[/]' not found.[/]") + console.print( + f"[yellow]Server '[bold]{server_name}[/]' not found.[/]") return # Display detailed information for this server _display_server_info(server) except Exception as e: - print_error(f"Error retrieving information for server '{server_name}'", str(e)) + print_error( + f"Error retrieving information for server '{server_name}'", str(e)) def _display_server_info(server): @@ -52,6 +55,7 @@ def _display_server_info(server): description = server.get("description", "No description") license_info = server.get("license", "Unknown") is_official = server.get("is_official", False) + is_archived = server.get("is_archived", False) # Get author info author_info = server.get("author", {}) @@ -80,9 +84,12 @@ def _display_server_info(server): console.print(f"Tags: {', '.join(tags)}") if package: console.print(f"Package: {package}") - console.print(f"Author: {author_name}" + (f" ({author_email})" if author_email else "")) + console.print(f"Author: {author_name}" + + (f" ({author_email})" if author_email else "")) console.print(f"License: {license_info}") console.print(f"Official: {is_official}") + if is_archived: + console.print(f"Archived: {is_archived}") console.print("") # URLs section @@ -114,10 +121,13 @@ def _display_server_info(server): console.print("[bold yellow]Installation Details:[/]") for method_name, method in installations.items(): method_type = method.get("type", "unknown") - description = method.get("description", f"{method_type} installation") - recommended = " [green](recommended)[/]" if method.get("recommended", False) else "" + description = method.get( + "description", f"{method_type} installation") + recommended = " [green](recommended)[/]" if method.get( + "recommended", False) else "" - console.print(f"[cyan]{method_type}[/]: {description}{recommended}") + console.print( + f"[cyan]{method_type}[/]: {description}{recommended}") # Show command if available if "command" in method: @@ -136,7 +146,8 @@ def _display_server_info(server): if env_vars: console.print("Environment Variables:") for key, value in env_vars.items(): - console.print(f' [bold blue]{key}[/] = [green]"{value}"[/]') + console.print( + f' [bold blue]{key}[/] = [green]"{value}"[/]') console.print("") # Examples section From 774df9e02aa3fc10c4d1e37d9bec944ad268256d Mon Sep 17 00:00:00 2001 From: GabrielDrapor Date: Wed, 25 Jun 2025 00:15:10 +0800 Subject: [PATCH 3/5] redirect registry page to getmcp.io --- pages/registry/index.html | 2226 +------------------------------------ 1 file changed, 30 insertions(+), 2196 deletions(-) diff --git a/pages/registry/index.html b/pages/registry/index.html index 04ef7e09..6ac1e828 100644 --- a/pages/registry/index.html +++ b/pages/registry/index.html @@ -6,2219 +6,53 @@ - mcpm.sh - Server Registry - {% include favicon.html %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {% include nav.html %} - -
-
-

MCP Server Registry

- -

The single open source MCP registry we all need.

- -
- - -
- -
-
- -
- -
-
- Filter by tag: - -
-
- All -
-
- -
- -
-
- -
-
-
- mcpm.sh API -
- - - -
-
- -
-

Servers Manifest API Endpoint:

-
- - -
-
- -
-
-
-
-
- - {% include footer.html %} - {% include github-corner.html %} - -