Skip to content

Commit 0184d33

Browse files
committed
feat: Added MCP Server information inside the landing page
1 parent f390831 commit 0184d33

File tree

3 files changed

+85
-11
lines changed

3 files changed

+85
-11
lines changed

app/[locale]/page.tsx

Lines changed: 63 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
Heart,
1717
Server,
1818
BookOpen,
19+
Bot,
1920
} from 'lucide-react'
2021
import { SiGithub } from 'react-icons/si'
2122
import { ThemeToggle, LanguageToggle } from '@/components/layout'
@@ -93,9 +94,9 @@ export default async function LandingPage({ params }: PageProps) {
9394
<p className="text-muted-foreground max-w-2xl mx-auto px-4">{t.toolsDescription}</p>
9495
</div>
9596

96-
<div className="grid grid-cols-1 lg:grid-cols-2 gap-6 lg:gap-8 mb-8">
97+
<div className="grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-6 lg:gap-8 mb-8">
9798
{/* Depex Card */}
98-
<Card className="relative overflow-hidden">
99+
<Card className="relative overflow-hidden flex flex-col h-full">
99100
<div className="absolute top-0 right-0 w-24 sm:w-32 h-24 sm:h-32 bg-gradient-to-br from-blue-500/20 to-transparent rounded-bl-full" />
100101
<CardHeader>
101102
<div className="flex items-center gap-3 mb-2">
@@ -112,10 +113,10 @@ export default async function LandingPage({ params }: PageProps) {
112113
</div>
113114
<CardDescription className="text-base">{t.depexDescription}</CardDescription>
114115
</CardHeader>
115-
<CardContent className="space-y-4">
116+
<CardContent className="space-y-4 flex-1 flex flex-col">
116117
<p className="text-muted-foreground">{t.depexFullDescription}</p>
117118

118-
<div className="space-y-2">
119+
<div className="space-y-2 flex-1">
119120
<h4 className="font-semibold flex items-center gap-2">
120121
<CheckCircle className="h-4 w-4 text-green-500" />
121122
{t.depexFeaturesTitle}
@@ -128,7 +129,7 @@ export default async function LandingPage({ params }: PageProps) {
128129
</ul>
129130
</div>
130131

131-
<div className="flex gap-2 pt-4">
132+
<div className="flex gap-2 pt-4 mt-auto">
132133
<Button className="flex-1 gap-2" asChild>
133134
<a
134135
href="https://github.com/securechaindev/securechain-depex"
@@ -144,7 +145,7 @@ export default async function LandingPage({ params }: PageProps) {
144145
</Card>
145146

146147
{/* VEXGen Card */}
147-
<Card className="relative overflow-hidden">
148+
<Card className="relative overflow-hidden flex flex-col h-full">
148149
<div className="absolute top-0 right-0 w-32 h-32 bg-gradient-to-br from-orange-500/20 to-transparent rounded-bl-full" />
149150
<CardHeader>
150151
<div className="flex items-center gap-3 mb-2">
@@ -161,10 +162,10 @@ export default async function LandingPage({ params }: PageProps) {
161162
</div>
162163
<CardDescription className="text-base">{t.vexgenDescription}</CardDescription>
163164
</CardHeader>
164-
<CardContent className="space-y-4">
165+
<CardContent className="space-y-4 flex-1 flex flex-col">
165166
<p className="text-muted-foreground">{t.vexgenFullDescription}</p>
166167

167-
<div className="space-y-2">
168+
<div className="space-y-2 flex-1">
168169
<h4 className="font-semibold flex items-center gap-2">
169170
<CheckCircle className="h-4 w-4 text-green-500" />
170171
{t.vexgenFeaturesTitle}
@@ -177,7 +178,7 @@ export default async function LandingPage({ params }: PageProps) {
177178
</ul>
178179
</div>
179180

180-
<div className="flex gap-2 pt-4">
181+
<div className="flex gap-2 pt-4 mt-auto">
181182
<Button className="flex-1 gap-2" asChild>
182183
<a
183184
href="https://github.com/securechaindev/securechain-vexgen"
@@ -191,6 +192,59 @@ export default async function LandingPage({ params }: PageProps) {
191192
</div>
192193
</CardContent>
193194
</Card>
195+
196+
{/* MCP Server Card */}
197+
<Card className="relative overflow-hidden flex flex-col h-full">
198+
<div className="absolute top-0 right-0 w-32 h-32 bg-gradient-to-br from-purple-500/20 to-transparent rounded-bl-full" />
199+
<CardHeader>
200+
<div className="flex items-center gap-3 mb-2">
201+
<div className="p-2 bg-purple-500/10 rounded-lg flex items-center justify-center">
202+
<Bot className="h-6 w-6 text-purple-500" />
203+
</div>
204+
<CardTitle className="text-2xl">{t.mcpTitle}</CardTitle>
205+
</div>
206+
<CardDescription className="text-base">{t.mcpDescription}</CardDescription>
207+
</CardHeader>
208+
<CardContent className="space-y-4 flex-1 flex flex-col">
209+
<p className="text-muted-foreground">{t.mcpFullDescription}</p>
210+
211+
<div className="space-y-2 flex-1">
212+
<h4 className="font-semibold flex items-center gap-2">
213+
<CheckCircle className="h-4 w-4 text-green-500" />
214+
{t.mcpFeaturesTitle}
215+
</h4>
216+
<ul className="space-y-1 text-sm text-muted-foreground ml-6">
217+
<li>{t.mcpFeature1}</li>
218+
<li>{t.mcpFeature2}</li>
219+
<li>{t.mcpFeature3}</li>
220+
<li>{t.mcpFeature4}</li>
221+
</ul>
222+
</div>
223+
224+
<div className="flex gap-2 pt-4 mt-auto">
225+
<Button className="flex-1 gap-2" asChild>
226+
<a
227+
href="https://github.com/securechaindev/securechain-mcp-server"
228+
target="_blank"
229+
rel="noopener noreferrer"
230+
>
231+
<SiGithub className="h-5 w-5" />
232+
{t.viewMCPButton} <ExternalLink className="h-4 w-4 ml-2" />
233+
</a>
234+
</Button>
235+
<Button variant="outline" className="gap-2" asChild>
236+
<a
237+
href="https://www.pulsemcp.com/servers/securechaindev-secure-chain"
238+
target="_blank"
239+
rel="noopener noreferrer"
240+
>
241+
<ExternalLink className="h-4 w-4" />
242+
{t.viewPulseMCPButton}
243+
</a>
244+
</Button>
245+
</div>
246+
</CardContent>
247+
</Card>
194248
</div>
195249

196250
{/* Tools Features */}

public/locales/en/common.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"loginButton": "Try Now",
99
"apiDocsButton": "API Docs",
1010
"toolsTitle": "Our Security Tools",
11-
"toolsDescription": "Two powerful open-source tools designed to work together for comprehensive supply chain security",
11+
"toolsDescription": "Three powerful open-source tools designed to work together for comprehensive supply chain security",
1212
"depexTitle": "Depex",
1313
"depexDescription": "Dependency Explorer & Vulnerability Detector",
1414
"depexFullDescription": "Constructs full dependency graphs from package manifests (npm, pip, Maven, etc.) and detects vulnerable transitive dependencies. Visualizes them in Neo4j for exhaustive analysis.",
@@ -27,6 +27,16 @@
2727
"vexgenFeature3": "SBOM compatibility",
2828
"vexgenFeature4": "Exploitability assessment",
2929
"viewVEXGenButton": "View VEXGen",
30+
"mcpTitle": "MCP Server",
31+
"mcpDescription": "Model Context Protocol Integration",
32+
"mcpFullDescription": "Secure Chain MCP Server enables AI assistants and LLMs to interact directly with our security tools through the Model Context Protocol, providing seamless integration for AI-powered security analysis.",
33+
"mcpFeaturesTitle": "Key Features",
34+
"mcpFeature1": "MCP protocol integration",
35+
"mcpFeature2": "AI assistant compatibility",
36+
"mcpFeature3": "Real-time security queries",
37+
"mcpFeature4": "LLM-powered analysis",
38+
"viewMCPButton": "View MCP Server",
39+
"viewPulseMCPButton": "PulseMCP",
3040
"howTheyWorkTitle": "How They Work Together",
3141
"howTheyWorkDescription": "Depex and VEXGen complement each other to provide complete software supply chain security",
3242
"diagramExplanationTitle": "Understanding the Secure Chain Workflow",

public/locales/es/common.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"loginButton": "Probar Ahora",
99
"apiDocsButton": "Documentación API",
1010
"toolsTitle": "Nuestras Herramientas de Seguridad",
11-
"toolsDescription": "Dos potentes herramientas de código abierto diseñadas para trabajar juntas para una seguridad integral de la cadena de suministro",
11+
"toolsDescription": "Tres poderosas herramientas de código abierto diseñadas para trabajar juntas en seguridad integral de la cadena de suministro",
1212
"depexTitle": "Depex",
1313
"depexDescription": "Explorador de Dependencias y Detector de Vulnerabilidades",
1414
"depexFullDescription": "Construye grafos completos de dependencias a partir de manifiestos de paquetes (npm, pip, Maven, etc.) y detecta dependencias transitivas vulnerables. Las visualiza en Neo4j para un análisis exhaustivo.",
@@ -27,6 +27,16 @@
2727
"vexgenFeature3": "Compatibilidad con SBOM",
2828
"vexgenFeature4": "Evaluación de explotabilidad",
2929
"viewVEXGenButton": "Ver VEXGen",
30+
"mcpTitle": "Servidor MCP",
31+
"mcpDescription": "Integración con Protocolo de Contexto de Modelo",
32+
"mcpFullDescription": "El Servidor MCP de Secure Chain permite que los asistentes de IA y LLMs interactúen directamente con nuestras herramientas de seguridad a través del Protocolo de Contexto de Modelo, proporcionando integración perfecta para análisis de seguridad impulsado por IA.",
33+
"mcpFeaturesTitle": "Características Clave",
34+
"mcpFeature1": "Integración con protocolo MCP",
35+
"mcpFeature2": "Compatibilidad con asistentes de IA",
36+
"mcpFeature3": "Consultas de seguridad en tiempo real",
37+
"mcpFeature4": "Análisis impulsado por LLM",
38+
"viewMCPButton": "Ver Servidor MCP",
39+
"viewPulseMCPButton": "PulseMCP",
3040
"howTheyWorkTitle": "Cómo Trabajan Juntos",
3141
"howTheyWorkDescription": "Depex y VEXGen se complementan para proporcionar una seguridad integral de la cadena de suministro software",
3242
"diagramExplanationTitle": "Entendiendo el Flujo de Trabajo de Secure Chain",

0 commit comments

Comments
 (0)