feat(mcp): add GitHub repo support and tools display in MCP cards

- Support installing MCP servers from GitHub repos by converting 'github:user/repo' to 'git+https://github.com/user/repo.git' to avoid SSH issues and improve npm compatibility
- Display available tools in MCPCard with badges, showing up to 6 tools and total count for better visibility of server capabilities
- Remove unused onViewDetails prop and make uninstall button full-width for improved UI consistency
This commit is contained in:
Evandro Fonseca Junior committed 2025-10-28 22:17:19 -03:00
1 parent f19bf10ef3
commit 745746afa9
8 files changed
+227 -60

No files matched your search

+14 -3
View File
@@ -144,14 +144,25 @@ function detectPackageInfo(serverConfig: any): {
if (command === "npx" || command === "npm") {
// npx @mcpcentral/mcp-time
// npx -y @modelcontextprotocol/server-filesystem
// npx -y github:user/repo
const packageArg = args.find(
(arg: string) => arg.startsWith("@") || !arg.startsWith("-")
(arg: string) =>
arg.startsWith("@") || arg.startsWith("github:") || !arg.startsWith("-")
);
const packageName = packageArg || firstArg || "unknown-npm-package";
let packageName = packageArg || firstArg || "unknown-npm-package";
packageName = packageName.replace(/^-y\s*/, "").trim();
// Converter github:user/repo para git+https://github.com/user/repo.git
// Isso evita problemas com SSH e funciona melhor com npm install
if (packageName.startsWith("github:")) {
const repoPath = packageName.replace("github:", "");
packageName = `git+https://github.com/${repoPath}.git`;
console.log(`Converted github: format to: ${packageName}`);
}
return {
packageRegistry: "npm",
packageName: packageName.replace(/^-y\s*/, "").trim(),
packageName,
};
}