当前位置: 首页 > news >正文

基于MCP工具的开发-部署-上线与维护全流程技术实现与应用研究

1. MCP技术速成

1.1 MCP服务器Server合集

Model Context Protocol servers:https://github.com/modelcontextprotocol/servers
在这里插入图片描述
Smithery - MCP 服务器注册表,用于为您的 LLM 代理找到合适的工具,

地址:https://smithery.ai/

在这里插入图片描述

Awesome MCP Servers:https://github.com/punkpeye/awesome-mcp-servers

在这里插入图片描述

MCP.so – MCP资源托管平台,支持实时在线调试接口:https://mcp.so/

在这里插入图片描述

1.2 MCP客户端Client

除了能在命令行中创建MCP客户端外,还支持各类

客户端的调用:https://modelcontextprotocol.io/clients

在这里插入图片描述

1.3 快速接入MCP工具示例

将高德地图导航MCP(服务器)接入Cherry Studio(客户端)的示例:

CherryStudio代码地址:https://github.com/CherryHQ/cherry-studio

在这里插入图片描述
CherryStudio文档详解:https://docs.cherry-ai.com/cherry-studio/download

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下载完成后,您将直接进入对话界面:

在这里插入图片描述

接下来,可以将模型切换为DeepSeek官方提供的API接口:

在这里插入图片描述
然后开启:

在这里插入图片描述

尝试使用DeepSeek chat

在这里插入图片描述
在这里插入图片描述

此外,还需安装uvbun文件以确保MCP工具的正常调用

在这里插入图片描述

其他操作系统配置详见:https://docs.cherry-ai.com/advanced-basic/mcp/install

Cherry Studio接入MCP流程:

  • 尝试接入Filesystem MCP工具:https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem

    在MCP配置编辑页面输入以下内容:

    {"mcpServers": {"filesystem": {"isActive": true,"command": "npx","args": ["-y","@modelcontextprotocol/server-filesystem","C:/Users/Administrator/Desktop/最新流量视频/MCP体验课/MCPTest"],"name": "filesystem"}}
    }
    

    在这里插入图片描述

然后点击开启:

在这里插入图片描述
在对话中开启MCP工具,这里可选一个或者多个工具:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

同时再尝试接入fetch MCP工具:https://github.com/modelcontextprotocol/servers/tree/main/src/fetch

在这里插入图片描述

Fetch MCP 服务器是基于模型上下文协议(Model Context Protocol,MCP)开发的服务器工具,专为增强大型语言模型(LLMs)的网页信息处理能力而设计。它通过将HTML网页内容转换为清晰易读的Markdown格式,帮助LLMs更高效地解析和利用网络信息。

主要功能:

  • 网页内容获取与转换Fetch MCP 提供 fetch 工具,能够从指定 URL 抓取网页内容并转换为 Markdown 格式,便于LLMs 处理和使用。
  • 多格式支持:除 Markdown 外,Fetch MCP 还支持获取网页的 HTML、JSON 及纯文本格式,适应多样化应用需求。
  • 智能内容截取:用户可通过 start_index 参数设定提取起始位置,实现网页内容分段读取,精准定位所需信息。

同样需要在MCP配置页面写入如下内容:

"fetch": {"command": "uvx","args": ["mcp-server-fetch"]}

在这里插入图片描述
开启工具:

在这里插入图片描述
并尝试进行调用:

在这里插入图片描述

2. MCP服务器调用流程

2.1 MCP技术生态概览

MCP基础技术生态结构:

在这里插入图片描述

2.1.1 MCP通信协议概述

MCP(Model Context Protocol)是一种标准化协议,旨在统一大规模模型与工具之间的通信。该协议明确规定了消息格式和交互方式,支持包括stdio、Server-Sent Events(SSE)和Streamable HTTP在内的多种传输机制。每种通信方式各具特点,可根据具体应用场景灵活选用。

2.1.1.1 Stdio 传输(Standard Input/Output)

stdio 传输方式是最简单的通信方式,主要用于本地工具间的消息传递。它通过标准输入(stdin)和标准输出(stdout)建立数据传输通道,特别适合本地进程间的交互场景。

工作方式:客户端和服务器通过标准输入输出流(stdin/stdout)进行通信。客户端向服务器发送命令和数据,服务器执行并通过标准输出返回结果。​
应用场景:适用于本地开发、命令行工具、调试环境,或者模型和工具服务在同一进程内运行的情况。

2.1.1.2 Server-Sent Events(SSE)

SSE(Server-Sent Events)是一种基于HTTP协议的服务器到客户端的单向通信机制。它通过持久化的HTTP连接,使服务器能够主动向客户端推送实时数据更新。这种技术特别适合需要持续接收服务器消息的应用场景。

工作流程:客户端发起 HTTP GET 请求与服务端建立连接后,服务端将持续以数据流形式推送信息,客户端通过解析这些流数据实现实时信息获取。
典型应用:该方案特别适合服务端主动推送数据的场景,包括但不限于即时通讯、气象预报、新闻推送等实时性要求较高的领域。

2.1.1.3 Streamable HTTP

Streamable HTTP更新公告:https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2025-03-26/basic/transports.mdx#streamable-http

在这里插入图片描述

MCP更新公告:https://modelcontextprotocol.io/development/updates

在这里插入图片描述

Streamable HTTPMCP 协议中新增的一种基于 HTTP 的双向流式传输方式。与传统 HTTP 的请求-响应模型不同,它通过长连接实现服务器向客户端的实时数据推送,并支持多个请求和响应的并发流式传输。需要注意的是,MCP仅规范了Streamable HTTP协议层的通信规则,并未提供配套的SDK客户端。开发者若需实现Streamable HTTP机制的客户端和服务端,可采用Python httpx等第三方库进行开发。

工作方式:客户端采用 HTTP POST 方式向服务器发起请求,支持接收流式响应(包括 JSON-RPC 响应或 SSE 流)。对于大数据量请求或需要持续交互的场景,服务器可通过长连接实现数据分批推送。
应用场景:特别适合对高并发和低延迟有严格要求的分布式系统,包括跨服务/跨网络应用。典型应用包括实时流媒体、在线游戏、金融交易等高并发业务场景。

2.1.1.4 MCP 传输方式优劣势分析

在这里插入图片描述

三种传输方式概述如下:

StdIO 传输:适用于本地进程间的简单通信,是命令行工具和调试阶段的理想选择,但缺乏分布式能力。
SSE 传输:适合实时数据推送和浏览器端的单向通知,但在双向交互或复杂场景中存在局限性。
Streamable HTTP 传输:作为最灵活且功能强大的方案,能够应对高并发、高交互的分布式系统需求,尽管实现复杂度较高,但其适用性覆盖更复杂的业务场景。

2.1.2 MCP SDK概述

MCP SDK现已支持多种编程语言,包括Python、TypeScript、Java、KotlinC# ,可用于开发客户端和服务器端应用:https://github.com/modelcontextprotocol

在这里插入图片描述

2.2 MCP服务器标准接入流程

2.2.1 MCP服务器基本接入流程

MCP工具的客户端接入流程如下:

在这里插入图片描述

采用 JSON 配置文件定义服务启动命令(如 npx、python、node 等)是一种通用且灵活的实现方式。只需在配置中指定相应的执行命令、参数和环境变量,MCP 服务就能根据配置启动运行,并与其他服务进行交互。例如,以下配置文件定义了一个 filesystem MCP 服务:

{"mcpServers": {"filesystem": {"command": "npx","args": ["-y","@modelcontextprotocol/server-filesystem","C:\\Users\\username\\Desktop","C:\\Users\\username\\Downloads"]}}
}

mcpServers:根节点,包含所有 MCP 服务的定义。​
filesystem:服务名称,可以是任意标识符,表示这个 MCP 服务的类型或功能。​
command:用于启动服务的命令,这里是 npx,表示使用 npx 来执行某个工具或包。​
args:服务启动参数列表,用于配置启动工具或进程的具体运行参数。

这种配置文件的修改方式具有出色的通用性和灵活性:

服务类型灵活:通过调整 commandargs 参数,可适配各类服务需求。
路径与环境配置自由:支持自定义目录和资源路径作为服务启动参数。
多服务并行配置:单个配置文件即可实现多个服务的定义与管理。

{"mcpServers": {"filesystem": {"command": "npx","args": ["-y","@modelcontextprotocol/server-filesystem","C:\\Users\\username\\Desktop"]},"database": {"command": "python","args": ["server_database.py","--db-path","C:\\Users\\username\\Data"]}}
}

集成外部工具MCP 服务支持与各类外部工具的无缝对接,包括 Python 脚本、Node.js 工具包及其他命令行工具。只需在配置文件中定义启动命令和相关参数,即可轻松实现集成。

官方说明文档中推荐的配置方法:https://modelcontextprotocol.io/quickstart/user#windows

在这里插入图片描述
目前主流客户端(如Cursor、Clien等)均采用此方法配置MCP服务器:

在这里插入图片描述
这也是当前主流 MCP 平台普遍支持的调用方式:

  • Smithery

    在这里插入图片描述

  • MCP.so

    在这里插入图片描述

GitHub MCP 官方资源合集:

在这里插入图片描述

2.2.2 MCP工具的命令行配置参数

需要特别注意的是,在这个 JSON 配置文件中,npx 命令的核心功能是执行命令行工具。首次运行时,它会自动下载并执行指定的工具或库。若该工具未被缓存,npx 将直接从 npm registry 下载并执行。

{"command": "npx","args": ["-y","@modelcontextprotocol/server-filesystem","C:\\Users\\username\\Desktop","C:\\Users\\username\\Downloads"]
}

npx:

npxNode.js 内置的工具,用于执行命令行工具或 Node.js 包。使用 npx 时,它会先检查本地是否已安装指定工具:若未安装,则会自动从 npm 仓库临时下载并执行该工具。这个 npm 包在执行时,npx 会优先查找本地安装版本。如果本地不存在,它将直接从 npm 注册表下载并运行该包。

-y:

表示自动接受所有的提示(通常是用于跳过安装时的确认提示)。实际运行时会执行如下等价命令:

npx -y @modelcontextprotocol/server-filesystem C:\\Users\\username\\Desktop C:\\Users\\username\\Downloads

首次运行时:

npx 会从 npm 仓库下载 @modelcontextprotocol/server-filesystem 库。下载的包将存放在临时缓存目录中并执行相应命令。运行结束后,npx 会自动清理临时文件,但工具进程会继续运行。

后续运行时:

当重复执行同一命令时,npx 会优先检查本地缓存。若工具包已存在于缓存中,npx 会直接调用缓存的版本执行,无需重新下载。只有在工具包缺失或版本更新时,npx 才会重新下载并运行。

2.3 MCP服务器类型

Resources: 资源,指可读取的数据源,包括本地文件或API返回内容。
Tools: 工具,指第三方服务或功能函数,用于控制LLM可调用的外部功能。​
Prompts: 提示词,即预设的任务模板,用于指导用户完成特定操作。

2.4 MCP开发环境搭建

2.4.1 uv入门

MCP 开发要求借助 uv 进行虚拟环境创建和依赖管理。uv 是一个Python 依赖管理工具,类似于 pipconda,但它更快、更高效,并且可以更好地管理 Python 虚拟环境和依赖项。它的核心目标是替代 pip、venvpip-tools,提供更好的性能和更低的管理开销。

uv 的特点:

  • 速度更快:相比 pip,uv 采用 Rust 编写,性能更优。​
  • 支持 PEP 582:无需 virtualenv,可以直接使用 pypackages 进行管理。​
  • 兼容 pip:支持 requirements.txtpyproject.toml 依赖管理。​
  • 替代 venv:提供 uv venv 进行虚拟环境管理,比 venv 更轻量。​
  • 跨平台:支持 Windows、macOSLinux

2.4.2 uv安装

  • 方式一:pip
    pip install uv
    
  • 方式二:curl
    curl -LsSf https://astral.sh/uv/install.sh | sh    # 安装到 /usr/local/bin
    

2.4.3 uv的基本用法

安装 uv 后,其用法与 pip 类似,但语法更简洁、运行速度更快。

  • 安装 Python 依赖

    uv pip install requests
    
  • 创建虚拟环境

    uv venv myenv   # 等效于 python -m venv myenv,但更高效
    
  • 激活虚拟环境

    source myenv/bin/activate  # Linux/macOS
    myenv\Scripts\activate     # Windows
    
  • 安装 requirements.txt

    uv pip install -r requirements.txt
    
  • 运行 Python 项目(直接运行 Python 项目)

    uv run python script.py    # 等效于: ①pip install -r requirements.txt ②python script.py
    

3. 总结

本文系统性地梳理了 MCP(Model Context Protocol)工具 在开发、部署、上线与维护全流程中的技术实现路径。通过对 服务器端与客户端的快速搭建方法MCP协议通信机制(包括StdIO、SSE、Streamable HTTP)的深入解析,以及典型示例(如Cherry Studio接入FilesystemFetch MCP工具)的实操演示,进一步展示了MCP在提升LLM工具调用能力与生态扩展性方面的价值。

在实践层面,MCP标准化的配置方式和多语言SDK支持,使得开发者能够以统一的协议快速集成不同类型的工具和资源;而通过结合uv虚拟环境与依赖管理方案,则为MCP的开发与维护提供了高效、轻量化的工程支持。

展望未来,MCP技术的发展将主要集中在以下几个方向:

  1. 协议层的演进:随着Streamable HTTP等新型传输机制的成熟,MCP将在高并发、低延迟场景中展现更强的适应性。
  2. 工具生态扩展:更多第三方MCP服务器与工具将被纳入Smithery、MCP.so等平台,进一步完善生态矩阵。
  3. 跨场景应用深化:在智能体(Agent)、行业知识库、实时数据处理等复杂应用中,MCP将成为支撑LLM与外部世界交互的核心中枢。
  4. 工程化与可维护性:结合容器化与CI/CD流程,MCP服务的上线与运维将更加自动化与可扩展。

综上,MCP不仅是一套技术协议,更是一种推动 大模型工具化、生态化和标准化 的关键基础设施。其在未来智能应用中的作用,将持续增强并深度嵌入到新一代AI系统的核心架构之中。

http://www.xdnf.cn/news/1389925.html

相关文章:

  • 北斗导航 | PPP-RTK算法核心原理与实现机制深度解析
  • AI助力PPT创作:秒出PPT与豆包AI谁更高效?
  • TypeScript:map和set函数
  • 【前端教程】从基础到专业:诗哩诗哩网HTML视频页面重构解析
  • Java试题-选择题(21)
  • new/delete 和 malloc/free 区别
  • 小杰机器视觉(five day)——直方图均衡化
  • linux系统学习(13.系统管理)
  • 基于orin系列的刷写支持笔记
  • 30分钟入门实战速成Cursor IDE(1)
  • 【拍摄学习记录】04-拍摄模式/曝光组合
  • Nginx的主要配置文件nginx.conf详细解读——及其不间断重启nginx服务等操作
  • 数据结构—第五章 树与二叉树
  • 机器学习算法全景解析:从理论到实践
  • vue3 鼠标移上去 显示勾选框 选中之后保持高亮
  • 自然语言提取PDF表格数据
  • 马斯克杀入AI编程!xAI新模型Grok Code Fast 1发布,深度评测:速度、价格与API上手指南
  • Vue3 + Spring Boot 项目中跨域问题的排查与解决
  • CS144 lab3 tcp_sender
  • 自动驾驶中的传感器技术36——Lidar(11)
  • 《生成式AI消费级应用Top 100——第五版》| a16z
  • uni-app 跨平台项目的 iOS 上架流程:多工具组合的高效协作方案
  • driver.js实现前端页面引导
  • 【Flask】测试平台开发,集成禅道
  • 渗透测试学习笔记
  • dm8_静默安装简单快速
  • 基于EB的K3XX_GPT定时器中断的实现方法
  • 音视频直播卡顿分析与优化:技术原理、实践案例与未来趋势
  • Java 流(Stream)、文件(File)和IO
  • 基于 Python asyncio 和币安 WebSocket 打造高频加密货币预警机器人