[讨论] 如何把现有服务改造支持 MCP
背景:
小弟所在的团队在考虑开放一部分现有项目中的接口,使其可以支持通过 MCP 协议来提供给其他团队的 AI Agent 进行调用。目前在考虑如何实现这个诉求
目前网上能搜到的基本上是一些 demo 的验证,一般是从 0 开始,不涉及现有服务接口的迁移
目前考虑了几种方案:
1 、硬编码/注解驱动:对于每一个接口或者方法实现,都通过手动编码注册的方式,注册到 mcp server, mcp server 可以于现有服务在一起也可以单出部署;不过这种方式的问题就是每次有新功能要开放出去时,都需要手动编码注册。注解驱动的话,Java 可以很快支持,改动也较小,不过只支持 Java 项目,对 golang 不支持。
2 、代码生成:通过解析原服务的 swagger 文档等方式,自动生成代理方法,这样后续有功能开放只需要提交 API 文档即可,感觉灵活性还是蛮高的。
想问问大家是如何对现有服务的接口集成到 mcp server 的,小弟之前对 AI Agent 的了解不多,恳请大佬们赐教
给 AI 的接口怎么都要重新设计吧,AI 有这么智能?还知道调用哪个接口?
看了一些客户端的实现,mcp server 的信息也是要加到提示词里的,如果用 2 方式实现,太多接口提示词很容易超出限制吧
你向 AI 问这个问题吧。2333
github.com/LaurieWired/GhidraMCP
mcpify.ai/
看看这个能不能解决你的问题,不对现有的服务和接口做改造,而是新起一个专门的 MCP 服务
MCP 的原理就是这个啊……AI 根据接口的描述(自然语言)决定是否调用以及怎么调用。只要中间做个适配 MCP 协议的 adapter 就可以。
建议起一个 python 服务,转发一下接口
就是公司内部做一个 mcp 网关,这样就不用管其他团队后端的架构了。
这不就是 mcp 解决的问题吗
我想知道的是 mcp 的 client 端怎么解决,现在主流的几个不都是集成到了编码工具或者 ai 聊天工具里面吗
在现有服务的基础上实现一层 MCP 协议的 API Gateway,在 Gate 层实现 MCP 协议的支持,并且做鉴权和现有服务的对接、裁剪工作
AI 会根据上下文自动推断的,MCP 主要是给 AI 提供了一个标准化的操作接口,可以让 AI 操作后,拿到符合标准的上下文信息,便于后续的逻辑执行。
这个是 client 调用 server 进行执行 tool 的时候么,这个我倒可以理解; mcp server 不是还要支持 toolList 这种的获取么,这种是如何把我们项目中的接口转换成 mcp server 认为的 tools 的呢
看了 openManus 中关于 client 端的调用实现以及官方给的使用示例( modelcontextprotocol.io/quickstart/client), 其实就是 client 向 server 查询 list_tools ,然后把这些 tools 转换成了 LLM 调用时的 tool 列表。对于不同的 LLM 模型,可能要自己做 adapter
其实还一点困惑在于,sever 返回的 tools 列表,其中关于 input_schema 是不是没有严格要求,只要能返回 name, description 还有 inputSchema 的三元组就可以了,具体 inputSchema 的组织形式没有严格定义。因为还没看过 mcp 协议的原始论文规范,所以这一块有点模糊。
感谢 我看下一下
感谢,我研究一下
就是问过了,然后感觉还是不太清晰,wwwww
大佬你的想法应该和下面 yrzs 提出的类似?
对呀,要做网关,不要侵入以前的业务了。而且你看 ai 现在的趋势,就是要有统一的协议。公司内部也要有统一的 ai 网关。
guangzhengli.com/blog/zh/indie-hacker-tech-stack-2024 有补充的可以在下面评论~ 你就不能顺手贴过来么,非要我们点进去。…
最近在学 react ,自己有 jet brain 全家桶就在用 web storm ,刚才前端同事就问为什么不用 vscode ,轻量化,更快。突然就想到“轻量化”,这个词好…
目前两者都有在使用,vscode 写一些小型的项目代码体验还可以,对于大型一点的项目,涉及到的模块和代码比较多的情况下,感觉还是比较卡顿,代码提示存在延迟等。goland 相对…