Files
archived-ai/ai.symfony.com/templates/sections/_mcp.html.twig
Christopher Hertel 0d492e3362 Redesign ai.symfony.com landing page
Overhaul the landing page with a modern, section-based layout:

- Hero slider with 3 rotating slides (Agent, Symfony, MCP) and progress bar
- Component Architecture section with layered SVG diagram
- Features section with 10 tabbed code examples
- Third-party integration bridges logo grid
- Demos section with setup steps and demo cards
- MCP SDK and Symfony Mate sections
- Sticky navbar with glassmorphism effect and Bootstrap tooltips
- Redesigned "Get Involved & Get Support" CTA section
- Full light/dark theme support with CSS variables
- Stimulus controllers for hero slider, feature tabs, and clipboard
- AOS scroll animations
- Subtle gradient backgrounds for secondary sections
2026-03-23 12:25:03 +01:00

40 lines
2.0 KiB
Twig

<section id="mcp" class="py-5 py-lg-5">
<div class="container">
<div class="row align-items-center g-5">
<div class="col-lg-5" data-aos="fade-right">
<h2 class="ff-title fw-bold h3 mb-3 section-heading">Model Context Protocol</h2>
<p class="text-muted mb-4">
The official MCP PHP SDK, built in collaboration with the PHP Foundation.
Create MCP servers that expose tools and resources to any AI agent, or build
clients that connect to existing MCP servers.
</p>
<div class="d-flex flex-wrap gap-2">
<a href="https://symfony.com/doc/current/ai/bundles/mcp-bundle.html" class="btn btn-dark px-3 d-flex align-items-center">
<span>MCP Bundle docs</span>
{{ ux_icon('tabler:arrow-up-right', {width: 20, height: 20, class: 'ms-2'}) }}
</a>
<a href="https://php.sdk.modelcontextprotocol.io" class="btn btn-outline-secondary px-3 d-flex align-items-center">
<span>Official SDK docs</span>
{{ ux_icon('tabler:arrow-up-right', {width: 20, height: 20, class: 'ms-2'}) }}
</a>
</div>
</div>
<div class="col-lg-7" data-aos="fade-left">
<pre class="terminal"><code><span class="keyword">class</span> <span class="title class_">WeatherTool</span>
{
<span class="comment">/**
* @param string $city Name of the city
*/</span>
<span class="title">#[McpTool(name: 'weather')]</span>
<span class="keyword">public function</span> <span class="title function_ invoke__">getWeather</span>(<span class="variable">string</span> <span class="variable">$city</span>): <span class="variable">string</span>
{
<span class="keyword">return</span> <span class="string">'sunny, 24°C'</span>;
}
}</code></pre>
</div>
</div>
</div>
</section>