From 8d6571ba20b821752fa2e327f42af98816b7ae6b Mon Sep 17 00:00:00 2001
From: Kai
Date: Wed, 18 Feb 2026 08:13:32 -0800
Subject: [PATCH 1/2] fix: resolve all eslint no-explicit-any errors
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Add stars/installs/framework optional fields to McpServer type
- Remove 18 'as any' casts in mcp-client.tsx (now properly typed)
- Replace 'as any as' with 'as unknown as' in compatibility route
- 19 errors → 0 errors (120 warnings remain, all non-blocking)
Unblocks CI for all branches including PR #449 (design tokens)
---
src/app/api/compatibility/route.ts | 2 +-
src/app/mcp/mcp-client.tsx | 28 ++++++++++++++--------------
src/lib/data.ts | 5 +++++
3 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/src/app/api/compatibility/route.ts b/src/app/api/compatibility/route.ts
index 3d47f6f..6f4b3ae 100644
--- a/src/app/api/compatibility/route.ts
+++ b/src/app/api/compatibility/route.ts
@@ -60,7 +60,7 @@ export async function GET(request: NextRequest) {
const statusFilter = statusFilterRaw && VALID_STATUSES.includes(statusFilterRaw) ? statusFilterRaw : undefined;
const seed = await readCompatibilitySeed();
- const mcpBySlug = new Map((mcpServers as any as McpServer[]).map((server) => [server.slug, server]));
+ const mcpBySlug = new Map((mcpServers as unknown as McpServer[]).map((server) => [server.slug, server]));
const rows = seed.servers
.map((row) => {
diff --git a/src/app/mcp/mcp-client.tsx b/src/app/mcp/mcp-client.tsx
index 0943079..3e57ad9 100644
--- a/src/app/mcp/mcp-client.tsx
+++ b/src/app/mcp/mcp-client.tsx
@@ -196,21 +196,21 @@ export function McpHubClient({ servers }: { servers: McpServer[] }) {
{/* Stats */}
- {((server as any).stars || (server as any).installs || (server as any).framework) && (
+ {(server.stars || server.installs || server.framework) && (
- {(server as any).stars && (
+ {server.stars && (
- ⭐ {(server as any).stars.toLocaleString()}
+ ⭐ {server.stars.toLocaleString()}
)}
- {(server as any).installs && (
+ {server.installs && (
- 📦 {(server as any).installs.toLocaleString()}
+ 📦 {server.installs.toLocaleString()}
)}
- {(server as any).framework && (
+ {server.framework && (
- {(server as any).framework}
+ {server.framework}
)}
@@ -311,21 +311,21 @@ export function McpHubClient({ servers }: { servers: McpServer[] }) {
{/* Stats */}
- {((server as any).stars || (server as any).installs || (server as any).framework) && (
+ {(server.stars || server.installs || server.framework) && (
- {(server as any).stars && (
+ {server.stars && (
- ⭐ {(server as any).stars.toLocaleString()}
+ ⭐ {server.stars.toLocaleString()}
)}
- {(server as any).installs && (
+ {server.installs && (
- 📦 {(server as any).installs.toLocaleString()}
+ 📦 {server.installs.toLocaleString()}
)}
- {(server as any).framework && (
+ {server.framework && (
- {(server as any).framework}
+ {server.framework}
)}
diff --git a/src/lib/data.ts b/src/lib/data.ts
index b13700a..41d7b76 100644
--- a/src/lib/data.ts
+++ b/src/lib/data.ts
@@ -86,6 +86,11 @@ export type McpServer = {
github?: string;
author?: string;
tags?: string[];
+
+ // Optional stats (populated at runtime)
+ stars?: number;
+ installs?: number;
+ framework?: string;
// Phase 1 stats
stars?: number;
From a6ae1a11795b05affec6214e561687cefdee0bb8 Mon Sep 17 00:00:00 2001
From: Kai
Date: Wed, 18 Feb 2026 08:39:09 -0800
Subject: [PATCH 2/2] fix: remove duplicate stars/installs/framework fields in
McpServer type
Duplicate type fields caused 'Duplicate identifier' build error in CI.
---
src/lib/data.ts | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/src/lib/data.ts b/src/lib/data.ts
index 41d7b76..00ea46c 100644
--- a/src/lib/data.ts
+++ b/src/lib/data.ts
@@ -87,12 +87,7 @@ export type McpServer = {
author?: string;
tags?: string[];
- // Optional stats (populated at runtime)
- stars?: number;
- installs?: number;
- framework?: string;
-
- // Phase 1 stats
+ // Stats (populated at runtime)
stars?: number;
installs?: number;
framework?: string;