之前已经介绍过了 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 服务前需完成基础开发环境配置,确保依赖工具正常运行:

  1. 安装 Node.js 与 npm:推荐使用 Node.js 16.x 及以上版本,可通过 node -v 和npm -v命令验证安装结果。
  2. 安装 pnpm 包管理器:相较于 npm,pnpm 具备更快的依赖安装速度与更小的磁盘占用,执行 npm install -g pnpm 完成全局安装。
  3. 了解核心依赖库:
    • @modelcontextprotocol/sdk:官方 MCP 开发工具包,提供服务初始化、工具注册、传输协议封装等核心能力。
    • zod:TypeScript 优先的数据验证库,用于定义工具输入参数的格式(如数字类型校验),避免非法参数导致服务异常。

2. 项目初始化与依赖安装

按照以下步骤创建项目目录并安装核心依赖:

  1. 创建项目文件夹:执行mkdir add-mcp && cd add-mcp,创建名为“add-mcp”的项目目录并进入。
  2. 初始化项目配置:执行 pnpm init,生成package.json 文件,用于管理项目依赖与配置。
  3. 安装核心依赖:执行pnpm add @modelcontextprotocol/sdk zod,将 MCP SDK 与参数校验库添加到项目依赖。
  4. 配置 ES Module 语法:在 package.json 中添加 "type": "module",确保项目支持import/export 模块化语法,避免 CommonJS 与 ES Module 混用导致的报错。

3. 编写 MCP 服务核心代码(index.mjs)

创建 index.mjs 文件,通过 MCP SDK 实现服务初始化、加法工具注册,并配置 STDIO 传输模式,代码逐段解析如下:

继续阅读全文:从零搭建本地 MCP 服务:STDIO 模式实现与大模型集成全指南

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐