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

Kali Linux下John the Ripper实战:从识别yescrypt哈希到破解zip压缩包(保姆级避坑指南)

本文详细介绍了在Kali Linux中使用John the Ripper工具从识别yescrypt哈希到破解zip压缩包的全过程。针对常见的'No password hashes loaded'报错,提供了两种解决方案,并扩展讲解了哈希识别、zip文件破解及性能优化技巧,是安全测试人员的实用指南。

weixin_29323365的博客 236

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

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

2503_90751789的博客 4163

【Python】torch_npu

Ascend AI处理器核心计算范式与PyTorch的桥接艺术:深入探索torch_npu的基石要真正理解,我们必须首先超越其作为PyTorch后端库的表面认知,深入其所服务的硬件——华为昇腾(Ascend)AI处理器的核心计算范式。这不仅仅是关于如何在NPU上运行PyTorch模型,更是关于NPU如何设计其计算,以及如何巧妙地将这种硬件特性映射到PyTorch的抽象层之上。1. 昇腾AI处理器的达芬奇架构:极致算力的源泉昇腾AI处理器并非传统的CPU或GPU。它采用了华为独创的达芬奇(Da Vinci)架

宅男很神经 5367

5G NR 双连接与载波聚合:PCell、SCell、PScell、SpCell 角色全解析

本文全面解析了5G NR中双连接与载波聚合技术的关键概念,详细介绍了PCell、SCell、PScell和SpCell的角色与功能。通过实际案例和配置示例,帮助读者理解这些小区在提升网络覆盖和速率方面的作用,以及在实际组网中的优化策略。

weixin_33220360的博客 373

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

自适应IIR格型滤波器的Matlab实现

概述 在现有的众多抑制窄带干扰的信号处理手段中,时域自适应陷波干扰抑制技术具有实现简单、抗干扰性能好等优点。IIR陷波器按照结构可以分为直接型和格型两种。相比自适应直接型IIR陷波器,自适应格型IIR陷波器不仅可以准确地控制滤波器的陷波频率,也可以准确地调整陷波器的带宽。 传递函数 二阶自适应IIR格型陷波器的传递函数H(z)为: 其中α与陷波带宽有关,β与陷波频率有关;对应的结构如下图所示: Matlab算法实现 ...

剑藏锋的博客 2798

MCP快速上手

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

qq_42317817的博客 941

信贷风控分析—征信数据源

详解企业和个人征信报告,以及信贷风控之指标构造案例参考

csdnbt的博客 3624

开关变换器小信号建模实战:从理论到环路设计

本文深入探讨了开关变换器小信号建模的实战技巧,从理论基础到环路设计全面解析。通过Buck和Boost变换器的具体案例,详细介绍了状态空间平均法、扰动法等关键建模技术,并分享环路补偿设计和实际调试中的宝贵经验。文章特别强调了小信号建模在电源设计中的重要性,为工程师提供了从理论到实践的完整解决方案。

weixin_29290259的博客 376

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

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

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

彩虹期权定价

彩虹期权的定价较为复杂,因为它涉及多个标的资产的联合分布。蒙特卡洛模拟(Monte Carlo Simulation):通过模拟多个标的资产价格路径,计算期权的预期支付。解析近似方法:如马尔可夫链近似方法或多变量Black-Scholes公式的扩展。数值方法:如有限差分法或傅里叶变换法,适用于某些特定条件下的多资产期权定价。由于彩虹期权涉及多个标的资产,我们通常使用蒙特卡洛模拟来进行定价。接下来,我将演示如何使用Heston模型和蒙特卡洛模拟方法来定价彩虹期权。

智能科技前沿 1856

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

BES (恒玄)HFP通话笔记

1.audio_developer 调试:SDK 需要打开某个算法,需要原厂打开对应宏定义编译出新的SDK,只要涉及到lib库里的功能都需要原厂手动修改编译。开发商和原厂FAE做起来都会比较累。如果没有原厂支持根本没法做,很少文档,SDK也很多问题,没法开箱即用如果要支持audio_developer上位机调试,还需改代码,如果对整个原理不清楚就没法做,没文档只能啃代码调试工具设计的也有待加强,串口通讯调试对耳机这类产品非常麻烦,本来板子就不大,还要焊接一堆线,调试还要拖着串口线。

飞天鱼 685

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

gitblog_00021的博客 418

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

visio安装包

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

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、付费专栏及课程。

余额充值