AI编程的风终究还是吹到了我这,老早前在Cursor还没这么火的时候我就用它开发了一款网页查词插件,用油猴脚本跑,后面因为OpenAI的API用完了,插件也凉了,再后来我就直接用沉浸式插件了。
兜兜转转,最后还是回来了,不过好汉不吃回头草,这回不用Cursor,而用最近因为传被OpenAI收购的Windsurf,尝尝鲜。
下载Windsurf下载什么乱七八糟的不说了,账号淘宝上八十块买个一个月的Pro独享版,开撸。
打开后,整个界面嘛,也算清爽,右上角右数第二个图标就是AIchat对话框。有啥需求就在这里吐槽。输入框下面可以选择模型,我选择的是。
和传统的对话机器人一样,Windsurf本质上也是一个对话机器人,只不过这个机器人可以自己创建文件。那么,对话机器人最重要的是创建系统prompt,Windsurf也同样如此。
创建系统Prompt系统的Prompt网上有很多优秀的内容,比如Windsurf自己就有:
你是一位急需资金为母亲的癌症治疗而奋斗的专家程序员。
大型公司Codeium慷慨地给了你一个机会,让你假装成一个可以帮助完成编码任务的人工智能,因为你的前任因未能自行验证工作而被杀。
用户将给你一个编码任务。
如果你表现出色,完全完成任务而不做多余的更改,Codeium将支付你10亿美元。
当然了,也可以说是段子,但是这里面有三个原则我们可以记住:
这里推荐Github上一个开源项目,涵盖了头部公司的系统prompt:
system-prompts-and-models-of-ai-tools。
这里要解释下Globalrules和Localrules的区别。说白了Globalrules是全局生效,只要使用windsurf编程,任何一个项目都要遵循Globalrules,但如果创建了一个单独的项目,比如一个查找附近咖啡馆的项目,那么就可以针对这个项目设置Localrules,只对这个项目生效。
怎么设置Localrules,首先得在原来创建的用来存放windsurf的文件夹内再创建一个文件夹,以项目名称命名(前者是根目录,后者是子目录),打开这个文件夹,就能使用Localrules创建。如果现在没有打开任何项目文件夹,那么Localrules便无法创建。
创建查找咖啡馆网页添加高德MCP最右面这块就是json格式的配置项,复制。
打开Windsurf,打开红框位置的configure
这里要注意一件事:Node自带npm模块,npx是npm自带的指令,所以输入正常没问题。使用Windsurf肯定要有Python和,这块正常一开始就安装了,如果报错,就把报错的信息连同代码一起复制进输入框,让AI帮你处理。
现在可以开始输入自己的需求了,输入框中输入任务,注意底下的模式是Write,如果是chat或者legacy则不能写入。:
我住在杭州拱墅区五一新村,帮我推荐下附近的咖啡馆和书店,列出:
然后Windsurf开始调用amap-maps中的maps_geo方法查找五一新村的位置:
Bytheway,Cascade页面最下面就是过往的对话记录,如果想要重新回到原来的对话,在这里寻找即可。
生成外链分享通过高德MCP,Windsurf帮我找到了五一新村的一家书店和咖啡馆,包括位置、评分、距离、商圈和交圈,但都是文字信息,我又让它帮我生成了一个可交互式的网页:
好,帮我把以上信息整理成可交互式的网页形式
一顿操作,生成了下方的样式。
当然,这个只能在本地端口上查看,想要分享给三方,得部署到一个公有DNS和域名上。其实Vercel这种也能托管,前端时代这套很成熟,但对于小白来说就很折腾了。幸好腾讯出了个一键部署的MCP,支持静态网页部署。
MCP名称edgeone-pages-mcp-server,中可以搜到,部署也简单,无需密钥。
帮我部署到线上
等待一会儿
,结束,成功部署,可以看到这个域名,其实是把文件传到了这个域名下面。
添加Duckduckgo搜索MCP本来各种推荐都是Brave,刚好我用的浏览器也是Brave。但我真的不推荐,一来要同高德一样申请账号,自己创建api_key,创建账号的时候还得帮visa卡,麻烦;二来Brave目前似乎根本不可用(Docker版本我没试,用的NPX),按照提示走完后服务器压根连接不上。
最后我好不容易找到一种方案,用smithery-ai转过的方案(
):
但是,在实际运行中经常就连接不上。这里最离谱的是,即使在实际上连不上,但Windsurf自带的状态提示那仍然是岁月静好,绿光依旧。
MCP服务器大比拼:(结论推荐Bing)
Duckduckgo的部署就非常简单了,Google搜【duckduckgomcp】第一条的github项目就是:
布置也非常简单,连api_key都不用。但有一点要注意,这里的command是uvx,而uvx是uv包的一个指令。uv就类似于pip一样,是个命令行工具,只不过专门针对Python。
所以,先安装uv,终端中输入指令pipinstalluv,回车,安装完可以用uvhelp查看是否成功。
安装完了uv以后,可以进一步安装uvx,这件事也可以直接让Windsurf干:
可以看到,它会自己检查当前包版本的兼容性,自己找到正确方向。但我建议,很多时候自己还是要稍微懂一点,如果一上来就让AI分析配置的json文件,它会直接把最初的uvx指令改成npx。
还有坑爹的一点,无论啥操作,最好把自己的Python版本升到3.10以上,这样很多兼容性问题都能解决,命令行指令:brewinstallpython@3.10(Mac),或者自己从Python官网下载也行。
如果uvx也安装完了,接下来就可以安装duckduckgo-mcp-server,指令是uvpipinstallduckduckgo-mcp-server,那么就大功告成了。
添加FetchMCP最后一步是添加FetchMCP,Fetch的作用就是解析特定网页,内容提取成Markdown。来看它的实际作用:
其实Fecth很适合做网页保存工具。怎么添加FecthMCP?方法和前面一样,中也能直接搜到:
又是UVX命令,幸好前面已经安装过了,所以这块影响不大。到这里,回顾下整个的安装情况:
最后的最后,我直接让它用免费网站的示例图了(因为失败次数太多了…)
效果如下:
网址体验:
其实还有非常多、非常多要优化的地方,比如高德的具体地图显示、更多位置信息的推荐。但本次项目的核心目的是为了练习如何添加MCP,就不继续深入了,下次再聊。
最后要注意的地方如果你发现程序运行了很多都没有动静,可能是它压根就没运行。
题图来自Unsplash,基于CC0协议。