手搓一个本地MCP Server插件

1.背景

当mcp出来的时候,只知道可以调用外部的接口了,理解不是很透彻,深刻的印证了那句话“纸上得来终觉浅,绝知此事要躬行”。

今天就拿本地一个接口,打算包一个MCP server,然后接入AI里面,然后让AI可直接进行操作,让自己有个更深入的理解。

官方定义:

image

2.实操MCP工具步骤

     1)总览如下图:已有的接口 → MCP 工具 → AI 一句话查询

image

 

     2)具体细化:

  1. 准备一个本地接口:如查询用户信息的接口,定义:http://localhost:9000/get/userInfo?userId=123
  2. 把本地接口封装到一个mcp server里面:先定义一个mcp server,然后在mcp server中注册对应的接口,并调用接口

image

 如果想可视化mcp调试过程,可装官方 Inspector,使用此命令启动server:npx @modelcontextprotocol/inspector node server.mjs

安装成功后启动mcp server,调试效果如图:

image

 输入参数后,调用接口:

image

 

          3.在AI 工具客户端里面配置这个mcp server,就是接入这个mcp server;

我是在豆包中接入以上mcp,接入路径:豆包客户端 → 左侧「插件·技能·伙伴」→ 插件页右上角「+ 添加」 → 「新建自定义连接器」

image

配置的值:

image

 添加成功后的效果:

image

 因为好奇心,查询了一下在豆包中添加成功后,修改的配置的位置:

C:\Users\xxxx\AppData\Local\Doubao\User Data\Default\Local Storage\leveldb\000644.ldb

 

注:1)如果是Claude,参考配置如下:

# 1) 如果要接真实接口:改 server.mjs 里的 BASE_URL,或设环境变量
      $env:USER_INFO_API_BASE = "http://xxxx"

# 2) 在 Claude Desktop 配置 %APPDATA%\Claude\claude_desktop_config.json:
#    { "mcpServers": { "user-info": { "command": "node",
#        "args": ["C:\\xxxx\\userinfo-mcp\\server.mjs"] } } }

# 3) 重启客户端,对 AI 说:查一下用户 123 的信息

  2)豆包跟 Claude Desktop中添加的MCP server配置存储方式 不一样:

image

 

          4.在AI里面直接操作,如上面的接口,就可以直接查询用户123

   实际操作效果:

image

 3.实操skill

在做接口测试或自动化的时候,经常遇到多个接口有依赖的问题,那如何在AI里面解决这类问题呢?

可以使用skill处理多个有调用依赖的接口;

注:skill官方定义是什么呢?

image

 

简单点理解就是告诉AI怎么操作的操作手册

如本示例中,一般先登录,再查询用户信息,现在可以使用skill把 "登录→带 token 查询" 两步固化成可复用流程——AI 一旦识别到 "登录后查询用户" 类指令,就自动按顺序执行:

① user_login(username, password) → 拿 token

② 解析 token → get_user_info(userId, token) → 带鉴权查询

③ 分支处理:登录失败 → 停止;查询 失败(token 失效)→ 提示重登

1)在豆包中添加skill:user-info-login-query

image

 

2)在豆包里使用:豆包客户端「插件・技能・伙伴 → 技能」里应该能看到 user-info-login-query。选择此skill之后直接说:

用 zhangsan/123456 登录后查用户 456

AI 就会调用这个技能,按顺序完成登录 + 带 token 查询并返回结果。

效果如图:

image

 

posted @ 2026-10-21 16:46  sunshine_coast  阅读(21)  评论(0)    收藏  举报