掘金 人工智能 8小时前
MCP实操系列 | 20行代码秒速上手MCP服务开发(附源码)
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文旨在帮助读者快速入门MCP(Model Context Protocol)开发,通过清晰的代码示例和实操步骤,降低学习门槛。文章分为四个部分,包括理解MCP架构、两步接入使用MCP服务、从20行代码开发MCP服务以及四行代码修改实现远程MCP服务。通过本文,读者可以轻松掌握MCP服务的开发流程,并将其应用于实际项目中。

💡 **理解MCP架构**: MCP架构由host(主机)、client(客户端)和server(服务端)组成,server又分为local server(本地服务)和remote server(远程服务)。文章通过一张图清晰展示了MCP的整体架构,帮助读者建立直观的理解。

🚀 **两步接入使用MCP服务**: 快速接入包括下载安装教程项目代码,以及客户端配置。以VSCode插件cline中的配置为例,展示如何配置客户端以连接MCP服务,简化了接入流程。

🛠️ **开发MCP服务**: 提供了20行代码的极简MCP服务代码示例,使用FastMCP库和zod进行参数校验。通过添加加法和减法工具的实例,演示了如何创建、调试和测试自己的MCP服务,降低了开发难度。

🌐 **实现远程MCP服务**: 通过修改启动参数,将本地服务转换为远程服务,并提供了客户端配置示例。文章还介绍了如何将MCP服务部署到云服务器或云函数,使其可以被更多人使用。

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

前言

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

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

以流行的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 和 zodimport { 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"),  }),  executeasync (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"),  }),  executeasync (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 工具调试界面

3. 到客户端刷新MCP服务

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

刷新MCP服务

4.调用测试

提问: 999加8等于多少

成功调用了减法计算器

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

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

1. 修改启动参数

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

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

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

2. 启动远程MCP服务

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

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

远程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官方文档: mcp-docs.cn/introductio…
[2] FastMCP官方文档: github.com/punkpeye/fa…
[3] 本MCP教程项目代码gitee地址: gitee.com/changelink/…

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

MCP FastMCP AI开发 远程服务
相关文章