一、前言 前前后后的给小落同学加了许多的MCP。 但是这些功能之前一直在我本地的小落同学上跑,部署在阿里云ECS上的小落同学因为买的ECS配置太低(99元一年的2H2G特惠主机)跑不动,这个周末在家没事做,想想是不是干脆用frp让公网上的小落同学也可以把这些MCP也都给支持起来。 所以这个周末的任务就是:把原先一直在我本地电脑上跑的小落同学的MCP Server部署到公网,并让阿里云上的小落同学来访问和使用。 目前小落同学支持的MCP包括: 既然想了,那不管有没有人用小落同学,咱先给它配上去再说。 二、MCP Server可配置化 1. 新增ODDMCP配置 在小落同学的.env环境变量里新增mcp相关环境变量配置 2. 同步调整MCP Server和MCP Client中与MCP相关的配置 把原先固定的localhost的地址,改成从环境变量中获取。 1)代码:oddmcp_server.py 2)代码:oddmcp_client.py 3)代码:oddmcp_status_callback.py 4)oddagent 同步的时候发现几个新的MCP Server功能还没同步到小落同学上的oddagent,也顺手改了一下。 三、利用frp来做跳转 ODDMCP用了两个端口,一个是MCP Server所绑定的9600端口,另一个是每个在MCP运行过程中的一些实时进展状态回调时所使用的redis。 1. 客户端配置 代码:frpc-https.toml 杀掉并重新启动 frpc 2. 服务端口配置 客户端修改并新增了这两个端口,并且重启了frpc之后,先到ECS服务器端查看一下,端口状态是否都正常。 如果都有正常绑定了,说明frp已经可以工作了。 需要注意的是:服务绑定地址应该是 0.0.0.0:9600,而不是 127.0.0.1:9600(后者只允许本地访问)。 四、阿里云ECS配置 配置好frp后,还需要让阿里云ECS放行这两个端口。 1. 修改ECS安全组配置 打开浏览器,登录阿里云控制台,进入安全组配置,并在其中新增、放行9600和63579这两个TCP的端口。 阿里云控制台上的功能比较多,不常用的话,可能要找地址找半天。由于忘记功能名字了,搜索也不好搜索,呵呵。 为方便记录,特把安全组的链接地址也贴一下:https://ecs.console.aliyun.com/securityGroup/region/cn-shanghai 2. 放行防火墙 打开xshell,ssh登录上ECS服务器,查看是否放行 9600/tcp 如果是centos/openEuler操作系统: […]
MCP
一、前言 上周扣子成为第一个支持skills的国内的大模型,但是这阵子公司这边的事情一直很忙,项目急,领导们都盯着,所以一直没有没时间去测试。 但是事实上之前我已经用open code desktop试过来实现一个skills,只是文章写了一半,一直没发,今天晚上再重新整理了一下,让open code实际来写一个skills,并将完整的过程给大家做一个演示,相信看了之后,任何一个小白(不需要编程知识)都可以来实现自己想要的功能了。 我一直想给小落同学做一个书签功能。原因如下: 当你看到一篇好文章,想保存下来慢慢看,结果网页上广告横幅、导航栏、推荐阅读啥的占了一大半空间。等到真正想看的时候,还得翻半天找正文。更烦人的是,现在很多网站都是单页应用,用JavaScript动态加载内容。直接用浏览器保存或复制粘贴,往往只能拿到个加载动画,完全看不了内容。于是我就想,能不能做一个工具,自动抓取网页,去掉那些乱七八糟的东西,把正文提取出来,保存成干净的Markdown格式?图片也能一并保存下来。 现在刚好用OpenCode Desktop来演示一下,如何实现一个书签功能的Skills,而且可以通过MCP协议接入外部服务。 二、测试运行环境 1. 测试环境 依旧在我这个超过十年的老笔记本上,我的操作系统是Windows 7。如果你是新版本的Windows,或者是Mac OS,或者Linux,整个流程基本上也没什么差别(理论如此哈,我还没验证过,若真在安装使用open code时,有什么问题也可提出来)。 2. 测试使用的版本 Open Code Desktop 的下载安装我就快速跳过了,大家随便哪儿搜一下都能下载到。 安装完成OpenCode Desktop后,启动,完成基础登录 / 初始化配置,比如:选择使用的大模型。 三、从零开始实现书签功能Skills 1. 给OpenCode的提示词 直接在OpenCode Desktop里,告诉他你想要一个什么样的东西,一些具体的要求。 注:这里的描述很重要,而且最好是描述能够一次成型。但是实际上一次成型是不可能的。不过你可以生成一次后,看下效果是否跟你预期一致,如果不一致,那就直接左上角:新建会话(+ New session),然后再一步步完善你的描述,然后一次次重试直到你基本满意。 以下是我的提示词: 2. OpenCode Desktop的输出 输入提示词之后,OpenCode就开始工作了,大概等待了两三分钟,它给我输出了一个结果,同时也创建好了整个书签Skills,书签的MCP Server:bookmark_it_server.py,以及这个MCP Server的Python依赖,具体项目目录结构如下: 3. 关键代码 1)MCP服务器配置 代码位置: .opencode/opencode.json 2)MCP服务器主要代码 代码位置:bookmark_it_server.py 3)Skills配置 […]