从零搭建本地 MCP 服务:STDIO 模式实现与大模型集成全指南
本文介绍如何自主搭建MCP(ModelContextProtocol)服务,实现大模型与外部工具的通信。主流传输方式包括适合本地工具集成的STDIO模式和适用于云端服务的SSE模式。文章以Node.js环境为例,详细讲解STDIO模式MCP服务的搭建流程,包括环境准备、项目初始化、核心代码编写等步骤,帮助开发者快速掌握MCP协议的应用实践。通过搭建本地加法运算工具,展示MCP服务与大模型(以Cur
之前已经介绍过了 MCP 了,如果你有兴趣可以查看下之前的文章:
目前很多官方都开发出了自己的 MCP 服务,例如 Gitlab,支付宝,高德地图,都提供了 MCP 服务,如果你具备开发能力,你也可以搭建自己的 MCP 服务,本文教你如何搭建自己的 MCP 服务。我们来看看 MCP 服务是如何工作的。
随着大模型应用场景的深化,官方与企业纷纷推出定制化 MCP(Model Context Protocol)服务,GitLab 用于代码协作场景的工具调用、支付宝面向支付场景的功能扩展、高德地图针对地理位置服务的集成,均通过 MCP 协议实现了大模型与垂直工具的联动。对于具备开发能力的用户,无需依赖第三方服务,可自主搭建符合业务需求的 MCP 服务。本文将从 MCP 工作原理切入,以 STDIO 传输模式为例,完整讲解本地 MCP 服务的搭建、测试及与大模型(以 Cursor 为例)的集成流程,助力开发者快速掌握 MCP 协议的实践应用。
一、MCP 服务核心工作原理:传输方式解析
MCP 协议的核心价值在于建立大模型与外部工具的通信桥梁,其传输方式直接决定了服务的适配场景与数据交互效率。目前主流的 MCP 传输方式分为 STDIO 和 SSE 两种,二者在通信模式、适用场景上存在显著差异,开发者需根据业务需求选择合适的方式。
1. STDIO 传输模式
STDIO(Standard Input/Output)即标准输入输出流,通过命令行的输入(stdin)与输出(stdout)实现数据交换。
- 通信特点:基于本地进程间通信,无网络依赖,数据传输延迟低,适合本地工具与大模型的轻量集成。
- 适用场景:本地脚本工具(如计算工具、文件处理工具)、无需跨设备调用的场景,例如本文将实现的本地加法运算工具。
2. SSE 传输模式
SSE(Server-Sent Events)基于 HTTP 协议实现单向通信,仅支持服务器向客户端主动推送数据。
- 通信特点:依赖网络环境,可实现跨设备、跨终端的工具调用,支持实时数据推送(如日志更新、实时计算结果)。
- 适用场景:云端工具服务(如在线数据分析工具、远程 API 调用)、需要持续推送数据的场景,例如实时监控系统与大模型的集成。
二、STDIO 模式 MCP 服务搭建:从环境准备到代码实现
本节将以“大模型触发加法运算”为需求,基于 Node.js 环境搭建 STDIO 模式的 MCP 服务,核心依赖官方 MCP SDK(@modelcontextprotocol/sdk)实现服务初始化与工具定义,同时使用 zod 库完成参数校验,确保输入数据的合法性。
1. 前置环境准备
搭建 MCP 服务前需完成基础开发环境配置,确保依赖工具正常运行:
- 安装 Node.js 与 npm:推荐使用 Node.js 16.x 及以上版本,可通过
node -v和npm -v命令验证安装结果。 - 安装 pnpm 包管理器:相较于 npm,pnpm 具备更快的依赖安装速度与更小的磁盘占用,执行
npm install -g pnpm完成全局安装。 - 了解核心依赖库:
@modelcontextprotocol/sdk:官方 MCP 开发工具包,提供服务初始化、工具注册、传输协议封装等核心能力。zod:TypeScript 优先的数据验证库,用于定义工具输入参数的格式(如数字类型校验),避免非法参数导致服务异常。
2. 项目初始化与依赖安装
按照以下步骤创建项目目录并安装核心依赖:
- 创建项目文件夹:执行
mkdir add-mcp && cd add-mcp,创建名为“add-mcp”的项目目录并进入。 - 初始化项目配置:执行
pnpm init,生成package.json文件,用于管理项目依赖与配置。 - 安装核心依赖:执行
pnpm add @modelcontextprotocol/sdk zod,将 MCP SDK 与参数校验库添加到项目依赖。 - 配置 ES Module 语法:在
package.json中添加"type": "module",确保项目支持import/export模块化语法,避免 CommonJS 与 ES Module 混用导致的报错。
3. 编写 MCP 服务核心代码(index.mjs)
创建 index.mjs 文件,通过 MCP SDK 实现服务初始化、加法工具注册,并配置 STDIO 传输模式,代码逐段解析如下:
更多推荐


所有评论(0)