AI——MCP详解

前言

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(大语言模型)交互时,经常需要联网搜索最新信息以减少幻觉。然而,这里也存在问题:

  1. 并非所有聊天机器人都支持联网功能

  2. 即使支持联网,也可能不包含你习惯使用的搜索引擎。

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 uv
2. 运行 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。

有哪些常用的 Clients
MCP 官网 ( 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/clients
Awesome MCP Clients https://github.com/punkpeye/awesome-mcp-clients/

3. MCP Server

每个 MCP 服务器都提供了一组特定的工具,负责从本地数据或远程服务中检索信息。是MCP架构中的关键组件。

与传统的远程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值