如题,楼主最近想着用 AI 做几个助手,目前已经把工作中用到的一些东西,弄成 mcp server 了,
(无非就是封装了几个 sql ,弄了一些 base64 的小工具。 )
于是想着做点儿更好玩的,比如能自动采集新闻,提取单词,和我自己单词库做对比,
或者自动生成 英文朗读语音之类的 “AI Agent”
网上猛搜了一下,没有找到权威的“如何设计 AI Agent”类似的东西
只有一些开源框架, 什么 autogen ,langgraph ,看了一下都太复杂了,
于是来论坛提问,有知道的老哥可以帮指指路吗?
其实核心需求就是能把手头的 mcp server 利用起来,让 ai agent 后台能完成一些事儿。
像 cursor ,每次对话都让我点击确认按钮,才能运行 mcp tool ,
需要人工参与有点繁琐。。。
竟然有小伙伴不知道怎么写http版本的mpc server,楼主贴个例子 ,
from mcp.server.fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP(
"Demo",
debug=True,
log_level='INFO',
host="0.0.0.0",
port=8000,
)
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
if __name__ == '__main__':
mcp.run('sse')
1
namonai 2 天前
问 AI
|
![]() |
2
dapang1221 2 天前
我到现在都没明白 MCP 是个啥,cursor 里配置的都是 npx 命令,不是持续的服务,每次运行才会通过 npx 启动吗,传入啥传出啥……
|
3
fushall OP ![]() @dapang1221
mcp 说白了就是一些 http 接口,只不过这些 http 接口是规定好的,不能自己改。每个支持 mcp 协议的产品按照这个规范,可以从 mcp server 里拿数据,或者让 mcp server 完成一些功能。 可以理解为你写了一个 web 服务器,有各种接口,并提供了 swagger ,别人可以用你提供的 swagger 规范调你的接口 |
![]() |
4
callmejoejoe 2 天前
看了这个吗? https://v2ex.com/t/1119962
感觉还好啊,晚点我也想做一些 agent 试试。 |
![]() |
5
ychost 2 天前 ![]() @dapang1221 MCP 有 Local/Remote 两种实现,你说的这个是 Local 实现,npx 启动之后会通过进程通信 stdin/stdout 与 Client 通信完成 list_tools 等调用
|
6
rev1si0n 2 天前 ![]() @dapang1221 MCP 支持 stdio 和 sse 作为通信渠道,你说的 npx 这种都是 command 类型,都是使用的 stdio 进行通信,即持续的读取和写入标准输入和输出来进行通信。npx 只是一种,你写 python 用 python 命令也行,官方的有 sdk ,你自己手撸协议,用 C 写都行。另一种方式就是 SSE ,这就是比较常规的了,通过 HTTP 协议进行沟通。主要有两点,一点是需要有个 SSE 端点,这个 SSE 端点会保持连接,在浏览器打开的状态就是一直处于加载中的状态。这个端点用于保持长连接以及接收服务端的响应数据,另外,在 SSE 端点打开后,服务端会推送专门的命令端点,大模型应用会通过这个端点往服务端 POST 命令,包括 tool 执行等,命令执行完后,结果应该通过 SSE 端点进行下发。个人觉得,这个协议设计的不是那么规范好用甚至感觉就是拍屁股想出来的,搞不懂为什么不用 websocket 作为传输协议,虽然貌似后期这个东西应该会支持。总之就是这么回事,别问我为什么知道,因为刚自行实现了个 MCP 服务端。
|
![]() |
7
ychost 2 天前 ![]() 建议去参考 OpenAI 的 Agents 开源实现,这个比较简单
|
8
yifangtongxing28 2 天前
mcp 楼主用的 http 么,他那个 demo 好像只支持 stdio 标准连接,你实现的是类似 http 端口号连接么
|
9
fushall OP @yifangtongxing28
用的 sse 模式呀,其实就是 http 的 |
10
fushall OP @callmejoejoe 这个已经拜读过了,内容真的非常详细。只不过里面的例子是 mcp sdk 官方 demo ,有点过于“底层”了。不是我想要的
|
11
yifangtongxing28 1 天前
@fushall 哈哈,我跟着 github 上官方文档写了个 stduio 版本的,你这个例子贴的太及时了,python 垃圾选手搜文档都没搜到
|
![]() |
12
JustW 1 天前
你这个问题是不是配置那份官方代码里的 servers_config.json 就行了.
|
![]() |
13
min 1 天前
要合理总结你的需求,这样才可以轻松 vibe coding
你的需求是: *我需要实现一个 mcp client *可以支持配置多个 mcp server *可以选择哪些 mcp server 是可用的 *支持通过 prompt 和 claude 3.7 llm 调度所需的 mcp server 完成任务 *任务完成过程中的步骤,用户可以选择是否需要确认 |
14
fushall OP |
![]() |
15
min 1 天前
知乎上面找对 manus 原理的拆解文章,然后看 openmanus 和 owl 是怎么实现的
|
![]() |
16
ChristopherWu 1 天前
设计规划可以看看这个: https://www.aiprotocolshub.com
把主流的 Function Calling 、ChatML 、MCP 、ReAct 等协议的标准、教程和实现示例都汇总了一下,还有测试工具 |
17
foolishcrab 1 天前 via iPhone ![]() 业界连 agent 的定义都没折腾明白呢
说白了工业界就是大力出奇迹,等到一个库或者框架足够流行的时候它就是最佳实践,它就是定义。现在 ai 显然没到这个地步,这会去学这些都是会马上过时的 |
![]() |
18
gy0624ww 1 天前 ![]() cursor 中 你设置 yolo 模式,就可以自动调用 mcp 了,不需要手动点
|
19
jruing97 6 小时 58 分钟前
请教下大佬,cursor+MCP 支持文件处理吗?
|