当前位置: 首页 > news >正文

AI工具集:本地Node基于云端AI模型使用Stdio封装自定义MCP服务

AI工具集本地Node基于云端AI模型使用Stdio封装自定义MCP服务背景购买 Coding Plan 除了能替代 AI编辑器 内置 Agent 处理代码问题还可以封装自定义 MCP 服务。在 技术方案 / 代码修改 / 单元测试 / Code Review时候进行审核辅助毕竟单一模型在不同能力维度上各有侧重。搭建一个本地的自定义 MCP 服务是一个很有意义的方案本文将一步步带你配置本地版本 MCP 服务也可以学习自建MCP服务的过程和注意事项资源应用介绍Agent讯飞星辰 MaaS · Astron Coding Plan编辑器Trae其他编辑器类同服务端本地 Node 搭建 Stdio 服务1. Agent套餐Coding Plan是专为开发者打造的高性能 AI 算力订阅服务可一站式调用顶流大模型全面提效代码生产。1.1 购买套餐最主要是便宜首月3.9元不限量 https://maas.xfyun.cn/packageSubscription1.2 可用模型2. 搭建MCP服务2.1 新建文件新建一个目录并新建【package.json】【stdio.js】2.1.1 package.json{name:localmcp,version:1.0.0,description:MCP 服务调用云端 AI 模型,main:index.js,scripts:{start:stdio:node stdio.js},keywords:[],author:,license:ISC,dependencies:{modelcontextprotocol/sdk:^1.29.0,zod:^4.4.3}}2.1.2 stdio.jsstdio.js 是 MCP (Model Context Protocol) 服务的本地部署版本 。本地使用 sse 模式和本文不一致替换自己的 API_KEY若是其他平台更换 url地址 和模型ID#!/usr/bin/env nodeconst{McpServer}require(modelcontextprotocol/sdk/server/mcp.js);const{StdioServerTransport}require(modelcontextprotocol/sdk/server/stdio.js);const{z}require(zod);/** * 调用云端 AI 模型进行对话或代码生成 * param {Array{role: user|assistant, content: string}} messages - 对话消息数组 * param {Object} [options{}] - 配置选项 * param {string} [options.modelastron-code-latest] - 模型名称 * param {openai|anthropic} [options.provideropenai] - API 提供商类型 * returns {Promise{content: Array{type: string, text: string}}} AI 响应结果 * throws {Error} 当 API 请求失败或返回非 JSON 格式时抛出错误 */asyncfunctioncallAI(messages,options{}){constmaxTokens131072;constOPENAI_URLhttps://maas-coding-api.cn-huabei-1.xf-yun.com/v2/chat/completions;constANTHROPIC_URLhttps://maas-coding-api.cn-huabei-1.xf-yun.com/anthropic/v1/messages;constMODEL_IDastron-code-latest;constAPI_KEYxxxxxxxxxx;const{modelMODEL_ID,provideropenai}options;constapiUrlprovideranthropic?ANTHROPIC_URL:OPENAI_URL;constisAnthropicprovideranthropic;constbodyisAnthropic?{model,max_tokens:maxTokens,messages:messages.map(m({role:m.role,content:m.content}))}:{model,messages:messages.map(m({role:m.role,content:m.content})),max_tokens:maxTokens};constresawaitfetch(apiUrl,{method:POST,headers:{Content-Type:application/json,Authorization:Bearer${API_KEY},X-Api-Key:API_KEY,X-Language:zh-CN,...(isAnthropic?{anthropic-version:2023-06-01}:{})},body:JSON.stringify(body)});if(!res.ok){consterrTextawaitres.text();thrownewError(API${res.status}:${errText.slice(0,500)});}constcontentTyperes.headers.get(content-type)||;if(!contentType.includes(application/json)){consterrTextawaitres.text();thrownewError(API返回非JSON格式(${contentType}):${errText.slice(0,200)});}constdataawaitres.json();if(isAnthropic)return{content:[{type:text,text:data.content?.[0]?.text||}]};return{content:[{type:text,text:data.choices?.[0]?.message?.content||data.choices?.[0]?.message?.reasoning_content||JSON.stringify(data)}]};}/** * 创建 MCP 服务器实例 * description 定义服务名称和版本号用于与客户端建立通信 */constservernewMcpServer({name:agentmcp,version:1.0.0});/** * 注册 chat 工具 * description 提供调用云端 AI 模型进行对话或代码生成的能力 * 支持 OpenAI 和 Anthropic 兼容接口 * param {messages} 对话消息数组支持 user/assistant 角色 * param {model} [可选] 指定使用的模型名称默认 astron-code-latest * param {provider} [可选] API 提供商类型openai 或 anthropic */server.tool(chat,调用云端 AI 模型进行对话或代码生成支持 OpenAI 和 Anthropic 兼容接口,{messages:z.array(z.object({role:z.enum([user,assistant]),content:z.string()})),model:z.string().optional().describe(模型名称默认 astron-code-latest),provider:z.enum([openai,anthropic]).optional().describe(API 提供商默认 openai)},async({messages,model,provider}){try{returnawaitcallAI(messages,{model,provider});}catch(err){return{content:[{type:text,text:[ERROR]${err.message}}],isError:true};}});/** * 启动 MCP 服务器并监听 stdio 传输 * 通过标准输入输出与客户端进行通信 * returns {Promisevoid} */asyncfunctionmain(){consttransportnewStdioServerTransport();awaitserver.connect(transport);}/** * 启动 MCP 服务器 * description 调用 main 函数启动服务捕获并输出异常信息到控制台 */main().catch(console.error);2.2 配置本地服务端安装依赖不需要运行不需要运行不需要运行npminstall3. 编辑器调用MCPJSON 数据{mcpServers:{localmcp:{command:node,args:[/Users/mr.w/object/localmcp/stdio.js]}}}注意若是配置【node】后运行失败则使用本地node查询使用全链接whichnode效果4. 测试功能发送一条对话消息测试 MCP 服务功能。恭喜搭建完毕现在你可以在公司或家中调用该服务了。5. 调用建议在编辑器定义【个人规则】或 【项目规则】约定自动触发时机 和 内容避免每次还要在对话框内说明调用比较麻烦优先级权重对话框 项目规则 个人规则宝塔面板基于云端AI模型使用SSE封装自定义MCP服务 https://blog.csdn.net/weixin_44461275/article/details/161430697
http://www.rkmt.cn/news/1409369.html

相关文章:

  • 别再死记公式了!用Python的NumPy和Pandas实战理解样本均值、方差与中心矩
  • 口碑好的儿童节蛋糕哪家专业?太原唯客时光蛋糕的专业维度解析
  • 条码扫描模组选型指南:从成像、解码与集成维度做技术评估
  • Claude「永久大脑」,真的来了!
  • 你的`.pth`文件真的坏了吗?用Python脚本快速校验PyTorch权重文件完整性的两种方法
  • rf2o_laser_odometry实战排雷:从启动失败到TF树构建的完整指南
  • SLAM实战笔记:用李代数扰动模型搞定旋转矩阵求导(附Python代码)
  • jQuery Mobile 页面
  • 面壁开源1B端侧模型,AI Yang的“端云协同”路线得到验证
  • 5分钟快速上手:免费在线Mermaid图表编辑器完整指南
  • 高效Git后悔药:ugit智能撤销工具完整指南
  • 自旋电子学赋能硬件安全:从PUF、TRNG到加密引擎的实战设计
  • 终极免费文档下载指南:kill-doc脚本如何帮你一键下载百度文库、道客巴巴等30+平台文档
  • 8051单片机代码分区技术详解与实践
  • 从GNSS观测方程到RTK定位:手把手推导伪距与载波相位的核心模型(附Python代码示例)
  • 032、图像分类模型部署后精度下降?预处理管线一致性、归一化对齐与推理加速方案
  • RPA自动化进阶:我开发了一套店群管理系统,彻底解决100+店铺并发卡死痛点
  • 旋转机械的振动监测
  • 别再只会用tar -zxvf了!Linux解压报错‘Error is not recoverable’的6个排查姿势
  • 【ChatGPT目标设定黄金法则】:20年AI教练亲授——3步精准拆解模糊愿望,转化可执行里程碑
  • 别再死记硬背公式了!用Python代码拆解线性回归的‘正规方程’到底怎么算
  • ChatGPT直播话术设计正在失效!技术专家紧急预警:3大模型行为偏移信号+话术动态刷新机制(含自动检测脚本)
  • 2026年全面测评|10款降AI率工具亲测:论文AI率90%稳降至10%指南 - 降AI实验室
  • BLE、LoRa、Zigbee等无线技术能耗对比:如何为物联网节点选择最长续航方案
  • 微信AI机器人终极指南:打造智能群聊助手的完整教程
  • 窗口尺寸调整难题的终极解决方案:WindowResizer使用全攻略
  • QKeyMapper:终极Windows按键映射解决方案,游戏办公一键搞定
  • 权威测评!2026国产化适配的Agent平台推荐排行 降本增效/全场景适配/合规可控
  • 用Python+OpenCV搞定Apriltag姿态估计:从相机标定到单应矩阵分解的完整流程
  • Agent的感知模式是什么