前言
MCP 是用来实现Agent 与 Tools(工具) 的交互
Agent 需要调用外部工具和API、访问数据库、执行代码等。
JAVA + Spring AI + LangChain + LangChain4J + MCP = AI 智能落地项目
MCP能干什么?
对于程序员来说
举例 1:开发部署
开发者通过自然语言指令 “部署新版本到测试环境”,触发 MCP 链式调用 GitLab API(代码合并)、Jenkins API(构建镜像)、Slack API(通知团队)。
举例 2:SQL 查询
开发者通过自然语言输入,比如 “查询某集团部门上个季度销售额”,就能查询出数据库的数据,并结合大模型进行回答,不再需要编写 SQL,MCP 自动转换为精准 SQL 语句并执行。
对于大众用户来说
举例 1:旅游规划
当我要去旅行时,旅行规划助手通过 MCP 同时调用天气 API(获取目的地气象)、交通 API(查询航班动态)、地图 API(规划路线),AI 自动生成带实时数据的行程方案。
举例 2:联网搜索
我们在与 LLM(大语言模型)交互时,经常需要联网搜索最新信息以减少幻觉。然而,这里也存在问题:
并非所有聊天机器人都支持联网功能
即使支持联网,也可能不包含你习惯使用的搜索引擎。
MCP是什么?
MCP(Model Context Protocol,模型上下文协议) 是 2024 年 11 月底由 Anthropic 推出的一种开放标准。
它的核心目标是:为大语言模型(LLM)提供统一、标准化的通信方式,让模型能够与外部数据源和工具进行高效交互。
MCP作为一种标准化协议,极大地简化了大预言模型与外部世界的交互方式,使开发者能够以统一的方式为AI应用添加各种能力。
程序员如何使用MCP?
MCP 应用场景 📊
| 应用领域 | 典型场景 | MCP 价值 | 代表实现 |
|---|---|---|---|
| 智能编程助手 | 代码生成、Bug 修复、API 集成 | 安全访问本地代码库、CI/CD 系统 | Cursor、VS Code 插件 |
| 数据分析工具 | 自然语言查询数据库、可视化生成 | 安全查询内部数据库、连接 BI 工具 | XiYanSQL-MCP、数据库 MCP 服务器 |
| 企业知识管理 | 知识库查询、文档生成、邮件撰写 | 安全访问内部文档、保护隐私数据 | 文件系统 MCP、Email-MCP |
| 创意设计工具 | 3D 建模、图形生成、UI 设计 | 与专业软件无缝集成 | Blender MCP、浏览器自动化 |
| 工作流自动化 | 多系统协调、事件驱动流程 | 跨系统安全协作 | Cloudflare MCP、AWS 自动化套件 |
MCP 的通信机制
根据 MCP 的规范,当前支持两种通信机制(传输方式):
stdio(标准输入输出):主要用在本地服务上,操作你本地的软件或者本地的文件。比如 Blender 这种就只能用 Stdio,因为它没有在线服务。(MCP 默认通信方式)
SSE(Server-Sent Events):主要用在远程通信服务上,这个服务本身就有在线的 API,比如访问你的谷歌邮件、天气情况等。
MCP 的通信机制:stdio 方式
✅ 优点
适用场景明确:适用于客户端与服务器在同一台机器上运行的场景,实现简单。
无网络依赖:无需依赖外部网络,通信速度快,适合需要快速响应的本地应用。
高可靠性与易调试:可靠性高,且调试过程相对便捷。
❌ 缺点
配置复杂度高:需要提前完成准备工作,包括安装所需的命令行工具。
单进程限制:为单进程通信模式,无法并行处理多个客户端请求;同时进程资源开销较大,不适合在本地运行大量服务,限制了其在复杂分布式场景中的使用。
MCP 的通信机制:SSE 方式
🎯 适用场景
跨物理位置通信:适用于客户端与服务器部署在不同物理位置的远程场景。
实时数据类场景:适合实时数据更新、消息推送、轻量级监控、实时日志流等需求。
分布式 / 远程部署:在分布式系统或远程服务部署场景下,基于 HTTP 的 SSE 传输方式更为适配。
✅ 核心优点
配置极简:仅需提供服务链接即可完成配置,操作便捷,直接复制链接填入即可使用。
stdio 的本地环境安装
stdio 的本地服务环境分为两类,分别对应不同的技术栈和运行指令:
Python 编写的服务:对应使用
uvx指令运行TypeScript 编写的服务:对应使用
npx指令运行💡 补充说明:
uvx是 uv 工具包提供的一次性运行 Python 包的命令,无需全局安装即可直接调用脚本。
npx是 Node.js 生态下的工具,用于直接运行 npm 包中的可执行文件,适合 TypeScript/JavaScript 服务。
Python 环境(uvx 方式)
1. 安装 uv(如果未安装)
# 安装 uv(跨平台) curl -LsSf https://astral.sh/uv/install.sh | sh # 或 Windows 下 powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # 若已经配置Python环境,可使用以下命令安装 pip install uv2. 运行 MCP Python 服务
# 用 uvx 直接运行 Python 实现的 MCP 服务 uvx <mcp-python-package-name>
示例:如果服务包名为
mcp-server-python,直接执行uvx mcp-server-python即可启动本地 stdio 服务。
🟦 TypeScript 环境(npx 方式)
1. 确保 Node.js 已安装
# 检查 Node.js 版本 node -v # 如未安装,可从 https://nodejs.org/ 下载 LTS 版本2. 运行 MCP TypeScript 服务
# 用 npx 直接运行 TypeScript/JS 实现的 MCP 服务 npx <mcp-typescript-package-name>
示例:如果服务包名为
@modelcontextprotocol/server-typescript,执行npx @modelcontextprotocol/server-typescript即可启动。
💡 关键区别
| 环境 | 运行指令 | 适用语言 | 特点 |
|---|---|---|---|
| Python | uvx |
Python | 无需全局安装,一次性运行,环境隔离好 |
| TypeScript | npx |
TypeScript/JavaScript | 基于 Node.js 生态,直接调用 npm 包 |
📌 配置到 MCP 客户端
以 Claude Desktop 为例,在 claude_desktop_config.json 中添加:
-
Python 服务:
{
"mcpServers": {
"python-server": {
"command": "uvx",
"args": ["<mcp-python-package-name>"]
}
}
}
-
TypeScript 服务:
{
"mcpServers": {
"ts-server": {
"command": "npx",
"args": ["<mcp-typescript-package-name>"]
}
}
}
MCP的工作原理
MCP的C/S架构
5个核心概念
MCP 遵循客户端-服务器架构(client-server),其中包含以下几个核心概念:
• MCP 主机(MCP Hosts)
• MCP 客户端( MCP Clients )
• MCP 服务器( MCP Servers )
• 本地资源( Local Resources )
• 远程资源( Remote Resources )
MCP的C/S架构原型图

MCP 解析
1. MCP Host
作为运行MCP的主应用程序,例如 Claude Desktop、Cursor、Cline 或 AI 工具。为用户提供与LLM交互的接口,同时集成 MCP Client 以连接 MCP Server。

2. MCP Client
MCP client充当 LLM 和 MCP Server 之间的桥梁,嵌入在主机程序中,主要负责:
- 接收来自LLM的请求。
- 将请求转发到相应的MCP Server。
- 将MCP Server 的结果返回给LLM。

有哪些常用的 ClientsMCP 官网 ( https://modelcontextprotocol.io/clients ) 列出来一些支持 MCP 的 Clients 。分为两类:• AI 编程 IDE : Cursor 、 Cline 、 Continue 、 Sourcegraph 、 Windsurf 等• 聊天客户端: Cherry Studio 、 Claude 、 Librechat 、 Chatwise 等更多的 Client 参考这里:MCP Clients : https://www.pulsemcp.com/clientsAwesome MCP Clients : https://github.com/punkpeye/awesome-mcp-clients/
3. MCP Server
每个 MCP 服务器都提供了一组特定的工具,负责从本地数据或远程服务中检索信息。是MCP架构中的关键组件。

与传统的远程


7156

被折叠的 条评论
为什么被折叠?



