104 lines
4.2 KiB
PHP
104 lines
4.2 KiB
PHP
<x-layouts.app :title="$title" :description="$description" :canonical="$canonical" :image="$image ?? null">
|
|||
|
|
@push('jsonld')
|
||
|
|
<script type="application/ld+json">
|
||
|
|
{!! json_encode([
|
||
|
|
'@@context' => 'https://schema.org',
|
||
|
|
'@type' => 'SoftwareApplication',
|
||
|
|
'name' => $server->name,
|
||
|
|
'description' => $description,
|
||
|
|
'url' => $server->url,
|
||
|
|
...($server->logo_url ? ['image' => $server->logo_url] : []),
|
||
|
|
'applicationCategory' => $server->category_label,
|
||
|
|
...($server->language ? ['programmingLanguage' => $server->language] : []),
|
||
|
|
]) !!}
|
||
|
|
</script>
|
||
|
|
@endpush
|
||
|
|
|
||
|
|
<p class="text-sm text-neutral-500">
|
||
|
|
<a href="{{ route('mcp-servers.index') }}" class="hover:underline">MCP Servers</a>
|
||
|
|
<span aria-hidden="true">/</span>
|
||
|
|
<a href="{{ route('mcp-servers.category', $server->category) }}" class="hover:underline">{{ $server->category_label }}</a>
|
||
|
|
</p>
|
||
|
|
|
||
|
|
<div class="mt-4 flex items-start gap-4">
|
||
|
|
@if ($server->logo_url)
|
||
|
|
<img src="{{ $server->logo_url }}" alt="{{ $server->name }} logo" class="h-16 w-16 rounded-lg object-cover">
|
||
|
|
@endif
|
||
|
|
<div>
|
||
|
|
<h1 class="text-3xl font-bold tracking-tight">{{ $server->name }}</h1>
|
||
|
|
<p class="mt-1 text-sm text-neutral-500">
|
||
|
|
{{ $server->category_label }}
|
||
|
|
@if ($server->language) · {{ $server->language }} @endif
|
||
|
|
@if ($server->transport_label) · {{ $server->transport_label }} @endif
|
||
|
|
</p>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="mt-6 flex flex-wrap gap-3">
|
||
|
|
<a
|
||
|
|
href="{{ route('mcp-servers.visit', $server) }}"
|
||
|
|
target="_blank"
|
||
|
|
rel="nofollow noopener"
|
||
|
|
class="inline-block rounded-lg bg-neutral-900 px-5 py-2.5 text-sm font-medium text-white hover:bg-neutral-700"
|
||
|
|
>
|
||
|
|
View repository →
|
||
|
|
</a>
|
||
|
|
@if ($server->docs_url)
|
||
|
|
<a
|
||
|
|
href="{{ $server->docs_url }}"
|
||
|
|
target="_blank"
|
||
|
|
rel="nofollow noopener"
|
||
|
|
class="inline-block rounded-lg border border-neutral-300 px-5 py-2.5 text-sm font-medium text-neutral-900 hover:bg-neutral-50"
|
||
|
|
>
|
||
|
|
Documentation →
|
||
|
|
</a>
|
||
|
|
@endif
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<p class="mt-8 text-neutral-700">{{ $server->description }}</p>
|
||
|
|
|
||
|
|
@if ($server->install_command)
|
||
|
|
<div class="mt-8">
|
||
|
|
<h2 class="text-lg font-semibold">Install</h2>
|
||
|
|
<pre class="mt-3 overflow-x-auto rounded-lg bg-neutral-900 p-4 text-sm text-neutral-100"><code>{{ $server->install_command }}</code></pre>
|
||
|
|
</div>
|
||
|
|
@endif
|
||
|
|
|
||
|
|
@if ($server->config_example)
|
||
|
|
<div class="mt-8">
|
||
|
|
<h2 class="text-lg font-semibold">Example configuration</h2>
|
||
|
|
<pre class="mt-3 overflow-x-auto rounded-lg bg-neutral-900 p-4 text-sm text-neutral-100"><code>{{ $server->config_example }}</code></pre>
|
||
|
|
</div>
|
||
|
|
@endif
|
||
|
|
|
||
|
|
@if (! empty($server->capabilities))
|
||
|
|
<div class="mt-8">
|
||
|
|
<h2 class="text-lg font-semibold">Capabilities</h2>
|
||
|
|
<ul class="mt-3 list-inside list-disc space-y-1 text-neutral-700">
|
||
|
|
@foreach ($server->capabilities as $capability)
|
||
|
|
<li>{{ $capability }}</li>
|
||
|
|
@endforeach
|
||
|
|
</ul>
|
||
|
|
</div>
|
||
|
|
@endif
|
||
|
|
|
||
|
|
@if (! empty($server->tags))
|
||
|
|
<div class="mt-8 flex flex-wrap gap-2">
|
||
|
|
@foreach ($server->tags as $tag)
|
||
|
|
<span class="rounded-full bg-neutral-100 px-3 py-1 text-sm text-neutral-700">#{{ $tag }}</span>
|
||
|
|
@endforeach
|
||
|
|
</div>
|
||
|
|
@endif
|
||
|
|
|
||
|
|
@if ($related->isNotEmpty())
|
||
|
|
<div class="mt-12 border-t border-neutral-200 pt-8">
|
||
|
|
<h2 class="text-lg font-semibold">More {{ $server->category_label }} servers</h2>
|
||
|
|
<div class="mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2">
|
||
|
|
@foreach ($related as $relatedServer)
|
||
|
|
<x-mcp-server-card :server="$relatedServer" />
|
||
|
|
@endforeach
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
@endif
|
||
|
|
</x-layouts.app>
|