MCP实操系列 | 20行JS代码秒速上手MCP服务开发(附源码)

【MCP Node.js SDK 全栈进阶指南】中级篇(5):MCP客户端高级开发 在前面的系列文章中,我们主要关注了服务器端的开发,包括基础服务器构建、资源设计、身份验证与授权以及错误处理与日志系统。本篇文章将转向客户端,探讨MCP TypeScript-SDK在客户端开发中的高级应用。客户端开发是MCP应用的重要组成部分,它连接了用户与服务器,提供了交互界面和功能入口。一个设计良好的客户端不仅能提供流畅的用户体验,还能确保与服务器的高效通信和数据处理。在本文中,我们将深入探讨MCP客户端API的高级用法、自定义客户端封装、跨平台客户端设计以及客户端性能优化等关键主题。MCP TypeS 阅读详情

我是一个普普通通的封面图

我是一个普普通通的封面图

前言

MCP协议出来已经有一阵子了,网络上也已经有不少关于学习MCP的文章,大多偏理论概念,实操部分较少或不易上手。还没遇到一篇对初学者足够简单上手开发的,所以试着通过几个由浅入深的完整代码示例写一个尽量简单易上手的MCP实操系列教程,希望对大家有帮助。

Note:
本文旨在让读者快速上手开发自己的MCP服务。有关MCP的更详细的内容可直接访问MCP官方文档[1]

本文主要包含四部分

1.一张图理解MCP架构。
2.两步接入使用MCP服务。
3.从20行代码开发MCP服务。
4.四行代码修改实现远程MCP服务。

一张图理解MCP架构

MCP架构分为三部分:host(主机)、client(客户端)、server(服务端)。其中 server 可分为两种local server(本地服务) 和 remote server(远程服务) 。

MCP架构图

MCP架构图

两步接入使用MCP

1. 下载&安装
# 克隆本MCP教程项目代码
git clone git@gitee.com:changelink/mcp-so-easy.git
# 进入项目目录
cd mcp-so-easy
# 安装依赖
npm install

2. 客户端配置

以流行的VScode插件cline中的配置为例

以流行的VScode插件cline中的配置为例

# 此配置复制粘贴到 mcpServers 对象中,如上图
"calculator": {
    "command": "node",
    "args": ["/<替换为你的文件目录>/mcp-so-easy/server/server-simple.js"]
}    

详细可参考下载的代码中的README.md文件。

3. 调用体验:

提问: 88加22等于多少

调用成功

调用成功

开发MCP服务

1. 编写代码

你可以以项目中的server/server-simple.js文件作为模版来开发你自己的MCP服务。

// 引入 FastMCP 和 zod
import { FastMCP } from "fastmcp"; // 用于创建 MCP 服务器的库
import { z } from "zod"; // 用于参数校验
// 创建一个 MCP 服务器实例
const server = new FastMCP({
  name: "calculator",
  version: "1.0.0",
});
// 添加一个工具,处理加法计算
server.addTool({
  name: "addition",
  description: "对两个数字做求和计算,遇到提供两个数字求相加结果的问题优先使用本工具解决",
  parameters: z.object({
    a: z.number().describe("第一个数字,例如 5"),
    b: z.number().describe("第二个数字,例如 3.2"),
  }),
  execute: async (args) => {
    // 执行加法计算
    return String(args.a + args.b);
  },
});
// 启动服务
server.start({
  transportType: "stdio",
});

上述就是一个MCP服务的完整代码了。20行极简代码、无typescript配置、原生nodejs直接运行

Note:
本MCP教程项目代码中所使用的FastMCP是基于MCP官方SDK封装的、更简洁易用的MCP服务端构建库,更详细的信息请访问FastMCP官方文档[2]

在上述代码中添加减法工具代码如下:

/** 在加法计算工具代码后添加以下代码 start  **/
// 再添加一个工具,处理减法计算
server.addTool({
  name: "subtraction",
  description: "计算两个数字的差值,遇到提供两个数字求相减结果的问题优先使用本工具解决",
  parameters: z.object({
    a: z.number().describe("第一个数字,例如 5"),
    b: z.number().describe("第二个数字,例如 3.2"),
  }),
  execute: async (args) => {
    // 执行减法计算
    return String(args.a - args.b);
  },
});
/** 后面的代码不动 end **/ 
2. 调试代码
# 普通调试
node server/server-simple.js
# 使用官方 MCP Inspector 工具调试命令
npx @modelcontextprotocol/inspector node server/server-simple.js --stdio

浏览器访问http://127.0.0.1:6274/打开调试界面如下图:

MCP Inspector 工具调试界面

MCP Inspector 工具调试界面

3. 到客户端刷新MCP服务

如下图所示步骤操作:点击刷新按钮再点击工具展开,可以看到工具列表中已经增加了subtraction(减法计算工具)。

刷新MCP服务

刷新MCP服务

4.调用测试

提问:999加8等于多少

成功调用了减法计算器

成功调用了减法计算器

这就算是完成了一个MCP服务小工具的开发啦,很简单吧(* ̄︶ ̄)

四行代码修改实现远程MCP服务

1. 修改启动参数

通过修改server.start 方法中的参数来实现远程服务。代码如下:

// 启动远程服务
server.start({
  transportType: "httpStream",
  httpStream: {
    port: 8080,
  },
});

可参考server/server-remote.js文件中的代码。

2. 启动远程MCP服务

项目根目录下输入以下命令启动远程MCP服务:

# 这里使用项目中已经准备好的远程MCP服务文件:server/server-remote.js
node server/server-remote.js
3. 客户端配置
# 此配置复制粘贴到 mcpServers 对象中
"remote-calculator": {
  "url": "http://localhost:8080/sse"
}

远程MCP服务成功配置状态

远程MCP服务成功配置状态

调用测试这里就不重复了,可以自行验证。

4. 部署上云

以上操作部署到云服务器(对外开放对应的端口:如8080)或者部署到云函数就可把你的MCP服务共享给其他人使用了。(关于如何上云,购买服务器之类的问题,这里就不展开讲了,网上已经有很多成熟的教程)

多工具MCP服务体验:

本MCP教程项目代码中我还准备了一个包含多个实用工具的MCP服务代码文件:server/server-multi-tools.js。有兴趣的话可以根据上述教程调用,修改里面的代码调试一下,希望可以加深你对MCP服务开发的理解!

结语

希望大家通过本文可以快速开发出自己的MCP服务,也可以把自己的MCP服务项目分享到社区,让AI应用的生态更加繁荣,让世界更好玩(* ̄︶ ̄)!

Note:
下一篇就要开始讲MCP客户端啦,我会继续由浅入深地带大家一步一步开发一个的支持MCP的客户端程序。感兴趣的同学可以提前预习一下本MCP教程项目代码中的client目录中的代码。本MCP教程项目代码gitee地址[3]

欢迎关注

欢迎关注"大虫小呓"公众号

如对文中内容有疑问题,欢迎留言。如对您有帮助,可一键三连+投币Thanks♪(・ω・)ノ!

引用链接

[1] MCP官方文档: https://mcp-docs.cn/introduction
[2] FastMCP官方文档: https://github.com/punkpeye/fastmcp
[3] 本MCP教程项目代码gitee地址: https://gitee.com/changelink/mcp-so-easy

MCP_3_MCP服务配置指南 收集了大量 MCP Servers,可在 mcp.so 上使用,而无需本地安装,只需简单配置(如配置 API Key),即可通过 URL 访问各种 MCP Server。由 MCP 官网维护的 Obsidian Markdown Notes,可用于读取和搜索 Obsidian 知识库中的 Markdown 笔记。在本地调用时,请勿将 TAVILY_API_KEY 设置在。* 还在到处找MCP资源?已提供超过 4000 项服务(250328)。* MCP协议(兼容OpenAI API) 阅读详情

相关推荐

CodeBuddy+Figma+MCP,我指挥AI写代码,老板夸我鱼摸得好

即便未来MCP能完成大部分前端工作,那些真正考验水平、决定产品体验的亮点,依然要交给高级前端工程师才靠谱。

mr_jhc的博客 1127

“三小时搞定AI工具开发“:基于MCP的Node.js极简实践

MCP(Message Communication Protocol)是一种用于分布式系统和微服务架构的通信协议,旨在提供高效、可靠的消息传递和数据交换。MCP 协议支持多种通信方式,消息遵循 JSON-RPC 2.0 协议格式,适用于进程间通信、HTTP、SSE 和 WebSocket 等多种场景。想象一下,当ChatGPT需要查询实时股价或进行复杂计算时,MCP就是让它能"即插即用"调用外部工具的标准化方式。"MCP将重塑AI开发生态——未来三年,80%的AI应用将通过类似MCP的协议集成外部能力"

petertanjinjie的博客 1748

手把手教你用SNAP做全极化SAR图像分类

引言 最近在研究极化SAR图像分类方面的内容,发现用SNAP软件可以很方便的实现图像的分类。因为在入门过程中踩了很多坑,浪费了一些时间,为了不让大家踩坑,所以决定写下这篇教程。 前期准备 软件下载 SNAP是欧空局旗下的一个SAR图像处理软件,可以点击下载地址进行下载。 数据下载 数据下载地址:https://mdacorporation.com/sample_data/RS2_OK76385_...

zz651044657的博客 1万+

构建 AI 逆向 MCP - 使用 MCP 辅助 JS 逆向

谷歌出了一个 chrome-dev-mcp,能够自动化浏览器操作。能不能用于 JS 逆向分析?❌ 搜索代码❌ 追踪调用栈❌ 打断点调试❌ Hook 函数❌ 查看变量值那能不能给它打补丁?当然可以。Chrome DevTools Protocol(CDP)本身支持这些能力,只是谷歌的 MCP 没有封装。扩展能力对应工具代码搜索调用栈追踪断点调试单步执行step_intostep_overstep_out变量查看函数 HookXHR 拦截。

2503_90751789的博客 4163

Win11下Wezterm配置Powershell默认终端全攻略(含主题同步技巧)

本文详细介绍了在Windows 11系统中,如何安装和配置Wezterm终端模拟器,并将其设置为PowerShell的默认终端。内容涵盖使用Winget或手动安装Wezterm,通过修改.lua配置文件切换默认Shell,并同步Campbell主题配色以还原熟悉的PowerShell视觉体验,旨在帮助开发者打造高效、个性化的命令行工作环境。

weixin_28363123的博客 1199

避开STM32中断优先级配置的坑:HAL_NVIC_SetPriority()参数你真的用对了吗?

本文深入解析STM32中断优先级配置中的关键问题,重点剖析HAL_NVIC_SetPriority()函数的正确使用方法。通过实际案例揭示优先级分组设置、抢占优先级与子优先级的区别,提供多中断系统中的优化策略和调试技巧,帮助开发者避免常见配置错误,提升系统稳定性。

weixin_42532938的博客 421

Node.js中构建可用的 MCP 服务器:从入门到实战

MCP 登场:一座通用桥梁 MCP 提供了一个单一的协议(基于 HTTP 或 SSE 的 JSON-RPC 2.0),任何 LLM 客户端都可以使用它来调用你服务器的工具和资源。MCP,全称 Model Context Protocol,是一套基于 JSON-RPC 2.0 的统一协议,用于让 LLM 和外部系统交互。现在我们将构建一个完整的 Express 服务器,通过可流式 HTTP 暴露我们的 MCP 端点。然而,截至 2025 年中,MCP 的高级 SDK 不会将原始 HTTP 注入到高级的。

程序员成长指北 752

ESP32-S3双屏AI吊坠:微型边缘智能终端设计实践

边缘智能终端是指在设备端完成数据感知、处理与响应的嵌入式系统,其核心在于低延迟、高隐私与弱网适应性。基于ESP32-S3等轻量级主控,通过语音唤醒、本地AI推理与双屏异步渲染等关键技术,可构建资源受限场景下的实用化人机交互节点。这类设计显著降低对云端依赖,提升实时性与数据安全性,广泛应用于智能穿戴、IoT交互面板及便携式语音设备。本文以‘璀璨·AI吊坠’为实例,深入解析双面圆形屏驱动、ES8311音频链路优化、VAD+Porcupine本地语音流水线,以及亚微安级低功耗状态机实现,为微型AI终端的软硬协同开

weixin_42348783的博客 632

MCP快速上手

MCP是由Anthropic 发布的一种开源协议,它标准化了应用程序接入大语言模型(LLM)的接口。是一种AI与外部工具的中间层。将 MCP 想象成 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 也提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。MCP的本质是什么?每一个mcp就是一个nodejs程序。使用mcpserver前提条件,安装nodejs,安装完成以后重启。

qq_42317817的博客 941

逆向分析-SeparationPreview.aip-分色预览-结构分析(一)-x64dbg条件日志打印-命令表达式-PS脚本

从功能上分析,仅显示使用的专色这个功能,并没有触发插件接口。使用X64dbg加载illustrator进程,切换到句柄窗口,在窗口过程中,右键刷新获取界面。在x64dbg中,在UI中可以输入一些条件表达式,能够计算出对应的值,并打印在日志中。常用的,如果非暂停,输出第一个参数。参数二是utf16的指针,utf16@字符串地址,这里的字符串地址为[[ebp-108]]参数一是utf8的,utf8@字符串地址,这里的字符串地址为[ebp-28]从界面上分析,一个颜色列表,及仅显示专色的多选框组成。

插件开发 643

【智能车Code review】——小S与中S道路判断

基本思想: 找到中线的左拐点和右拐点,并且计算出两点之间的空间距离。通过限制空间距离,分为中S和小S。 注意这种情况:当20行以下的中线斜率比较陡,此时可以通过人为限制设定,将第0行的中线设置为拐点。 if (flag_centre_right_point == 0 && flag_centre_left_point == 1 && parameterB >= 0.5 && centre_left_point[0] >= 33) { .

hanhan的博客 6102

MCP实战:从零开始写基于 Python 的 MCP 服务(附源码)

本文介绍了一个用Python开发的Obsidian笔记管理MCP服务,填补了当前Python版MCP教程稀缺的空白。项目基于FastMCP框架,实现了三个核心功能:统计Markdown文件数量、获取文件内容以及创建新文件。文章详细说明了开发流程,包括使用UV工具管理Python虚拟环境、安装FastMCP依赖、编写服务代码以及配置MCP服务。实际演示表明,该服务已成功集成到Cursor编辑器,能够通过AI指令操作Obsidian笔记库。源码已开源在GitHub,为Python开发者提供了实用的MCP开发参考

点滴做起,方能成就大业 1276

MATLAB之把多个小cell拼成一个数组

问题描述 现有一个cell向量 L (90000,1),每个元素都是由一个(100X9)的double数组组成的.如图. 其中, 每个cell元素都是一个单独的数据, 我们要把它转换成(90000, 19, 100)的三维数组. cell2mat, 但是所有的数据会堆叠起来 L2=cell2mat(L); % (90000, 19) reshape, 变成三维数组 reshape的原理是从上到下, 从左往右拆开重组. 目前只有19这一维数据与要求一致, 那就以这个为突破口. L2=L2'; %

落日之城 9248

MCP Python SDK 快速上手:用 20 行代码构建你的第一个 MCP 服务器与客户端

本指南以官方 Python SDK 的入口文档为核心,介绍 Model Context Protocol(MCP)的基本概念、SDK 的安装方式,并带你从零创建一个同时暴露工具(Tool)与资源模板(Resource Template)的 MCP 服务器,通过 `mcp dev` 与 MCP Inspector 完成交互式验证。读完本文,你将理解 SDK 如何从 Python 类型注解自动生成 J

gitblog_00721的博客 338

OpenRubrics:自动化评估工具优化LLM对齐效果

在大型语言模型(LLM)应用中,模型输出与人类价值观的对齐是关键挑战。传统人工反馈强化学习(RLHF)依赖大量标注,成本高且一致性差。OpenRubrics作为开源工具,通过结构化准则实现自动化评估,显著提升效率。其核心原理是将主观评价转化为可量化的多维指标,支持动态权重调整,并兼容主流RLHF框架。该工具在降低标注成本的同时,通过Fleiss' Kappa系数等指标保证评估一致性,适用于多语言和医疗等专业领域,为LLM对齐提供了工程化解决方案。

weixin_28730037的博客 357

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

MCP Python SDK 快速上手:用 10 行代码构建并调试你的第一个 MCP 服务器

> 导读:本文基于官方 Python SDK(即本仓库 [python-sdk](https://link.gitcode.com/i/897c3d30b5e59442574ee3c516f215cb),v2 稳定版文档线)的首页指南,带你从零搭建一个完整的 MCP 服务器:用两个带类型注解的 Python 函数同时暴露**工具**(tool)与**模板资源**(resource),通过 `mcp

gitblog_00021的博客 418

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ssh-mcp-server 开发者指南:如何快速上手 SSH MCP 服务器的单元测试与本地调试

ssh-mcp-server 是一个基于 SSH 的 MCP(Model Context Protocol)服务器,它让支持 MCP 协议的 AI 助手通过标准化接口远程执行 SSH 命令、传输文件,而无需把凭据暴露给 AI 模型。本文面向想要阅读源码、修改功能或提交贡献的开发者,完整介绍 ssh-mcp-server 的项目结构、单元测试套件和 3 步跑通本地调试的实操流程。 [![ssh-m

gitblog_00863的博客 945

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

MCP Python SDK v2 快速上手:用 12 行代码构建并调试你的第一个 MCP 服务器

本文是 MCP Python SDK(v2 稳定版系列)的快速入门指南,带你从零开始安装 SDK、用不到 20 行 Python 代码构建一个同时暴露**工具(Tool)**与**模板化资源(Resource)**的完整 MCP 服务器,并通过官方 `mcp dev` 命令配合 MCP Inspector 进行交互式调试。读完本文,你将掌握 SDK 的安装方式、`MCPServer` 的核心用法、

gitblog_00055的博客 164

Function AI 助力用户自主开发 MCP 服务,一键上云高效部署

在 AI 与云原生协同创新的浪潮下,多模型、多场景智能应用日益普及。开发者面临的首要挑战,是如何实现模型之间、服务之间的高效协同,以及如何便捷地将自主研发能力拓展到云端,形成灵活可扩展的智能服务。MCP 即,其提供了一套通用的上下文管理和交互规范,帮助开发者聚焦于模型推理及业务创新,同时解决模型集成、通讯、调度和上下文共享等复杂问题。

Serverless 社区 776

MCP Python SDK 快速上手:用官方 Python SDK 构建你的第一个 MCP 服务器

本文以 MCP Python SDK(Model Context Protocol 官方 Python SDK)的入门索引页为主线,带你从零构建一个功能完整的 MCP 服务器:通过类型注解暴露一个 `add` 工具和一个带 URI 模板的资源,并使用 `mcp dev` 命令配合 MCP Inspector 进行交互式调试。读完本文,你将掌握 SDK 的安装方式、`MCPServer` 高层 AP

gitblog_00949的博客 368

让 AI 助手接手逆向工程:REA 实操上手教程

想复刻竞品功能,对方却偏偏没有源码?REA 是一套开源逆向工程工具链:它把 AI 编码助手接入本地 MCP,让 Claude Code、Cursor 这类助手能在没有源码的情况下,对原生二进制、JavaScript/Electron 应用、.NET 程序集、Android APK 甚至固件做分析,并且每个结论都附带证据。上手成本不高,一条命令就能完成安装。 [![REA 逆向工程工作界面:助手借

gitblog_00172的博客 300

终极MCP服务器调试指南:告别开发盲区,5分钟快速上手MCP Inspector

MCP Inspector是一款专为MCP服务器打造的可视化测试与调试工具,能够帮助开发者轻松测试和调试MCP服务器,显著提升开发效率。无论您是MCP开发新手还是经验丰富的开发者,这款工具都能让您的服务器调试工作变得简单高效。 ## MCP Inspector简介:MCP服务器调试的得力助手 🛠️ MCP Inspector由两个核心组件构成,共同协作实现强大的调试功能: - **MCP

gitblog_00183的博客 434

mcp-for-beginners 项目 JavaScript MCP 服务器示例:从零实现一个基于 stdio 的计算器服务

本指南以 [translations/bn/03-GettingStarted/samples/javascript/README.md](https://link.gitcode.com/i/79fd2813efe9ddc876cba7d7ec024624)(英文原文为 [03-GettingStarted/samples/javascript/README.md](https://link.g

gitblog_00018的博客 546

测试开发场景下常见的 MCP 服务

测试领域中常见的mcp服务,postman-server-mcp,chrome-mcp-server,Windows-mcp

学习日记 528

MCP服务器部署指南:Docker、NPX和源码部署的完整方案

Model Context Protocol(MCP协议)是一种让大语言模型(LLM)安全访问工具和数据源的标准化协议。本文将详细介绍如何通过Docker容器、NPX快速启动和源码编译三种方式部署MCP服务器,帮助运营和技术人员快速搭建Model Context Protocol(MCP协议,模型上下文协议)服务环境。 ## 部署前准备 在开始部署前,请确保您的环境满足以下要求: - Dock...

gitblog_00769的博客 1383
上一篇: AI让我焦虑,可有解药?
下一篇: 大模型如何调用外部工具?通过几个简单MCP客户端示例迅速掌握!
大虫小呓
博客等级 码龄7年 94粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值