背景: 小弟所在的团队在考虑开放一部分现有项目中的接口,使其可以支持通过 MCP 协议来提供给其他团队的 AI Agent 进行调用。目前在考虑如何实现这个诉求
目前网上能搜到的基本上是一些 demo 的验证,一般是从 0 开始,不涉及现有服务接口的迁移
目前考虑了几种方案:
1 、硬编码/注解驱动:对于每一个接口或者方法实现,都通过手动编码注册的方式,注册到 mcp server, mcp server 可以于现有服务在一起也可以单出部署;不过这种方式的问题就是每次有新功能要开放出去时,都需要手动编码注册。注解驱动的话,Java 可以很快支持,改动也较小,不过只支持 Java 项目,对 golang 不支持。
2 、代码生成:通过解析原服务的 swagger 文档等方式,自动生成代理方法,这样后续有功能开放只需要提交 API 文档即可,感觉灵活性还是蛮高的。
想问问大家是如何对现有服务的接口集成到 mcp server 的,小弟之前对 AI Agent 的了解不多,恳请大佬们赐教
1
moonlord 3 天前
给 AI 的接口怎么都要重新设计吧,AI 有这么智能?还知道调用哪个接口?
|
2
gopheryi 3 天前
看了一些客户端的实现,mcp server 的信息也是要加到提示词里的,如果用 2 方式实现,太多接口提示词很容易超出限制吧
|
![]() |
3
lambdaq 3 天前
你向 AI 问这个问题吧。2333
|
![]() |
5
FriedRiceNoodles 3 天前
|
![]() |
6
InkStone 3 天前 ![]() @moonlord MCP 的原理就是这个啊……AI 根据接口的描述(自然语言)决定是否调用以及怎么调用。只要中间做个适配 MCP 协议的 adapter 就可以。
|
![]() |
7
neptuno 3 天前
建议起一个 python 服务,转发一下接口
|
![]() |
8
neptuno 3 天前
就是公司内部做一个 mcp 网关,这样就不用管其他团队后端的架构了。
|
![]() |
10
Tink 3 天前
我想知道的是 mcp 的 client 端怎么解决,现在主流的几个不都是集成到了编码工具或者 ai 聊天工具里面吗
|
![]() |
11
yrzs 2 天前
在现有服务的基础上实现一层 MCP 协议的 API Gateway,在 Gate 层实现 MCP 协议的支持,并且做鉴权和现有服务的对接、裁剪工作
|
13
pppwww OP @yrzs 这个是 client 调用 server 进行执行 tool 的时候么,这个我倒可以理解; mcp server 不是还要支持 toolList 这种的获取么,这种是如何把我们项目中的接口转换成 mcp server 认为的 tools 的呢
|
14
pppwww OP ![]() @Tink 看了 openManus 中关于 client 端的调用实现以及官方给的使用示例( https://modelcontextprotocol.io/quickstart/client), 其实就是 client 向 server 查询 list_tools ,然后把这些 tools 转换成了 LLM 调用时的 tool 列表。对于不同的 LLM 模型,可能要自己做 adapter
|
15
pppwww OP @yrzs 其实还一点困惑在于,sever 返回的 tools 列表,其中关于 input_schema 是不是没有严格要求,只要能返回 name, description 还有 inputSchema 的三元组就可以了,具体 inputSchema 的组织形式没有严格定义。因为还没看过 mcp 协议的原始论文规范,所以这一块有点模糊。
|
17
pppwww OP @FriedRiceNoodles 感谢,我研究一下
|