<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>MCP Client on Weiuou的博客</title><link>https://blog.weiuou.top/tags/mcp-client/</link><description>Recent content in MCP Client on Weiuou的博客</description><image><title>Weiuou的博客</title><url>https://blog.weiuou.top/avatar.png</url><link>https://blog.weiuou.top/avatar.png</link></image><generator>Hugo</generator><language>zh-cn</language><copyright>Weiuou</copyright><lastBuildDate>Sun, 05 Jul 2026 18:00:00 +0800</lastBuildDate><atom:link href="https://blog.weiuou.top/tags/mcp-client/index.xml" rel="self" type="application/rss+xml"/><item><title>MCP 学习路线</title><link>https://blog.weiuou.top/topics/mcp-learning-path/</link><pubDate>Sun, 05 Jul 2026 18:00:00 +0800</pubDate><guid>https://blog.weiuou.top/topics/mcp-learning-path/</guid><description>MCP 学习路线：从 MCP 是什么、MCP 架构到 Server 的 Tools、Resources 和 Prompts。</description><content:encoded><![CDATA[<p>MCP 的价值在于把 AI 应用和外部系统之间的连接方式标准化。理解 MCP 时，不要只看“它能调用工具”，还要看 Host、Client、Server 如何分工。</p>
<h2 id="一句话定义">一句话定义</h2>
<p>MCP 是一种让 AI 应用连接外部工具、数据源和提示模板的开放协议，可以把它理解为 AI 应用访问外部上下文的标准接口。</p>
<h2 id="推荐阅读顺序">推荐阅读顺序</h2>
<ol>
<li><a href="/posts/what-is-mcp/">什么是 MCP</a></li>
<li><a href="/posts/mcp-architecture/">MCP 架构</a></li>
<li><a href="/posts/mcp-server-tools-resources-prompts/">MCP Server</a></li>
<li><a href="/topics/ai-agent-development/">AI Agent 开发</a></li>
</ol>
<h2 id="核心概念表">核心概念表</h2>
<table>
	<thead>
			<tr>
					<th>概念</th>
					<th>作用</th>
					<th>常见例子</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>MCP Host</td>
					<td>使用 MCP 能力的 AI 应用</td>
					<td>Codex、Claude Desktop</td>
			</tr>
			<tr>
					<td>MCP Client</td>
					<td>Host 内部负责连接某个 Server 的组件</td>
					<td>每个 Server 通常对应一个 Client</td>
			</tr>
			<tr>
					<td>MCP Server</td>
					<td>向 AI 应用暴露能力的程序</td>
					<td>文件系统、GitHub、数据库、浏览器</td>
			</tr>
			<tr>
					<td>Tools</td>
					<td>主动执行动作的接口</td>
					<td>搜索、写入、调用 API</td>
			</tr>
			<tr>
					<td>Resources</td>
					<td>只读上下文或数据源</td>
					<td>文件、文档、数据库记录</td>
			</tr>
			<tr>
					<td>Prompts</td>
					<td>可复用的任务模板</td>
					<td>代码审查模板、调研模板</td>
			</tr>
	</tbody>
</table>
<h2 id="学习路径">学习路径</h2>
<p>先弄清楚 MCP 解决的是“连接标准化”问题，再理解 C-S 架构里的 Host、Client、Server。之后再看 Server 暴露的三类能力：Tools、Resources、Prompts。</p>
<p>如果你已经在做 Agent 应用，可以把 MCP 放到工具生态和上下文管理里理解：它不是替代 Agent Harness，而是给 Harness 提供更标准的能力入口。</p>
<h2 id="延伸阅读">延伸阅读</h2>
<ul>
<li><a href="/posts/function-calling-notes/">Function Calling</a></li>
<li><a href="/posts/agent-development-common-problems/">Agent开发中的常见问题</a></li>
</ul>
]]></content:encoded></item><item><title>MCP 架构</title><link>https://blog.weiuou.top/posts/mcp-architecture/</link><pubDate>Wed, 24 Jun 2026 09:20:00 +0800</pubDate><guid>https://blog.weiuou.top/posts/mcp-architecture/</guid><description>MCP 采用 C-S 架构，MCP Host 会通过 MCP Client 与一个或多个 MCP Server 建立连接。</description><content:encoded><![CDATA[<h2 id="本文结论">本文结论</h2>
<ul>
<li>MCP 采用 C-S 架构：Host 通过 Client 连接一个或多个 Server。</li>
<li>Host 是用户直接使用的 AI 应用，Client 是 Host 内部的连接组件，Server 是暴露能力的外部程序。</li>
<li>一个 Host 可以同时连接多个 MCP Server，每个 Server 可以提供 Tools、Resources 和 Prompts。</li>
<li>传输方式会影响部署形态：本地 Server 常用 stdio，远程 Server 通常使用 HTTP 类传输。</li>
</ul>
<h2 id="适合谁读">适合谁读</h2>
<ul>
<li>已经知道 MCP 是什么，想进一步理解 Host、Client、Server 分工的人。</li>
<li>准备开发 MCP Server，想知道它和 AI 应用之间如何连接的人。</li>
<li>想把 MCP 放进 Agent 工具体系里的人。</li>
</ul>
<h2 id="mcp-的组成">MCP 的组成</h2>
<p>MCP 采用 C-S 架构，常见的 MCP Host 如 Codex、Claude 会与多个 MCP Server 建立连接。例如，本地的 computer-use MCP Server 和在远端的 GitHub MCP Server，Host 会为每个 MCP Server 创建对应的 Client，来保持专用的连接。</p>
<p>如上面所说，MCP Server 可以在本地也可以在远程，可以通过使用不同的传输协议来实现。使用 STDIO 的本地 MCP Server 通常只服务于本地的 MCP 客户端，而使用 Streamable HTTP 的远程服务器则通常可以服务于多个 MCP 客户端。</p>
<p>通常 MCP 生态里还会包含：</p>
<ul>
<li>MCP 规范：定义协议和消息结构。</li>
<li>MCP SDK：帮助开发者实现 Client 或 Server。</li>
<li>MCP 开发工具：用于调试和测试 MCP Server。</li>
<li>MCP Server 的参考实现：例如文件系统、GitHub、数据库等 Server。</li>
</ul>
<h2 id="hostclientserver-的区别">Host、Client、Server 的区别</h2>
<p>MCP 架构中主要组成部分包括 3 类：</p>
<ol>
<li>MCP Host：负责协调管理一个或多个 MCP Clients 的 AI 应用，例如 Codex。</li>
<li>MCP Client：与 MCP Server 保持连接的组件，从 MCP Server 获取数据，供 MCP Host 使用。</li>
<li>MCP Server：一种为 MCP Client 提供所需上下文的程序。</li>
</ol>
<p>可以这样理解：</p>
<table>
	<thead>
			<tr>
					<th>组件</th>
					<th>更像什么</th>
					<th>关注点</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>MCP Host</td>
					<td>用户正在使用的 AI 应用</td>
					<td>任务理解、模型调用、用户交互</td>
			</tr>
			<tr>
					<td>MCP Client</td>
					<td>Host 内部的连接适配器</td>
					<td>与某个 Server 建立连接、发送请求、接收响应</td>
			</tr>
			<tr>
					<td>MCP Server</td>
					<td>外部能力提供者</td>
					<td>暴露工具、资源和提示模板</td>
			</tr>
	</tbody>
</table>
<h2 id="一个请求如何流动">一个请求如何流动</h2>
<p>一个简化的 MCP 调用过程大概是：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">用户提出任务
</span></span><span class="line"><span class="cl">-&gt; Host 判断需要外部能力
</span></span><span class="line"><span class="cl">-&gt; Host 通过对应 Client 请求某个 Server
</span></span><span class="line"><span class="cl">-&gt; Server 返回工具列表、资源内容或工具执行结果
</span></span><span class="line"><span class="cl">-&gt; Host 把结果放回模型上下文
</span></span><span class="line"><span class="cl">-&gt; 模型继续生成或继续调用工具
</span></span></code></pre></div><p>这里最重要的是：Server 不直接替模型做所有决策。Server 提供能力，Host 和模型决定什么时候使用这些能力，而 Harness 或应用层负责权限、确认和审计。</p>
<h2 id="常见误区">常见误区</h2>
<h3 id="mcp-client-不是用户侧应用本身">MCP Client 不是用户侧应用本身</h3>
<p>用户通常看到的是 Host。Client 更像 Host 内部和某个 Server 通信的连接层。</p>
<h3 id="一个-host-不只连接一个-server">一个 Host 不只连接一个 Server</h3>
<p>实际使用中，一个 AI 应用可以同时连接文件系统、GitHub、浏览器、数据库等多个 MCP Server。</p>
<h3 id="mcp-架构不自动等于安全架构">MCP 架构不自动等于安全架构</h3>
<p>MCP 只是把连接标准化。是否允许写文件、是否允许调用某个 API、是否需要人工确认，仍然要由应用和 Server 共同设计。</p>
<h2 id="延伸阅读">延伸阅读</h2>
<ul>
<li><a href="/topics/mcp-learning-path/">MCP 学习路线</a></li>
<li><a href="/posts/what-is-mcp/">什么是 MCP</a></li>
<li><a href="/posts/mcp-server-tools-resources-prompts/">MCP Server</a></li>
</ul>
]]></content:encoded></item></channel></rss>