+ +
+
← 返回 - +

🔌 @@ -119,9 +125,11 @@

💡 什么是 MCP?

官方文档: - modelcontextprotocol.io + + modelcontextprotocol.io + · GitHub: - + github.com/modelcontextprotocol

@@ -151,7 +159,7 @@

🖥️ Claude Desktop 配置

claude_desktop_config.json - +
{
@@ -188,7 +196,7 @@ 

⌨️ Claude Code 配置

项目级配置:.mcp.json - +
{
@@ -209,7 +217,7 @@ 

⌨️ Claude Code 配置

命令行 - +
# 添加 MCP 服务器
@@ -241,15 +249,23 @@ 

🌟 热门 MCP 服务器

安装命令 - +
npx -y @modelcontextprotocol/server-filesystem /path/to/dir
- -
+ +
From a6091e840001e80bc3fb846c28f0aa6377fc1842 Mon Sep 17 00:00:00 2001 From: chico Date: Wed, 26 Aug 2026 22:11:30 +0800 Subject: [PATCH 2/2] fix: tighten MCP mobile header --- assets/css/mcp-guide.css | 4 ++++ tests/e2e/mcp-guide-presentation.spec.js | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/assets/css/mcp-guide.css b/assets/css/mcp-guide.css index b380f0050..c253b808e 100644 --- a/assets/css/mcp-guide.css +++ b/assets/css/mcp-guide.css @@ -614,6 +614,10 @@ footer a:focus-visible { padding-right: 52px; } + .title-area { + flex: 0 1 auto; + } + .code-content { padding: var(--space-3); } diff --git a/tests/e2e/mcp-guide-presentation.spec.js b/tests/e2e/mcp-guide-presentation.spec.js index aec8055aa..b3e014b81 100644 --- a/tests/e2e/mcp-guide-presentation.spec.js +++ b/tests/e2e/mcp-guide-presentation.spec.js @@ -39,6 +39,20 @@ test('MCP guide preserves card/code presentation and config disclosure at 390px await expect(page.locator('.code-block').first()).toBeVisible(); await expect(page.locator('.server-install').first()).toBeVisible(); + if (viewport.width === 390) { + const titleAreaGeometry = await page.locator('.title-area').evaluate((titleArea) => { + const lastContent = titleArea.lastElementChild; + if (!lastContent) return { hasContent: false, extraHeight: 0 }; + return { + hasContent: true, + extraHeight: + titleArea.getBoundingClientRect().bottom - lastContent.getBoundingClientRect().bottom + }; + }); + expect(titleAreaGeometry.hasContent).toBe(true); + expect(titleAreaGeometry.extraHeight).toBeLessThanOrEqual(1); + } + const copyStatus = page.getByRole('status'); await expect(copyStatus).toHaveAttribute('aria-live', 'polite'); await page.locator('.code-header button').first().click();