通过MCP让LLM调用系统接口

场景

MCP的出现大大丰富了LLM的功能,对于存量系统,我们希望能让模型调用已有的接口,以最小的成本让AI能够获取系统内部数据。因此我们开发了一个名为http-api-call的MCP Server,来支持模型到内部API的调用

实现方案

使用用标准的MCP协议,重写call_toollist_tool

  • call_tool
    在这里实现调用工具的逻辑,将请求信息转发给已有系统的后端接口调用
  • list_tool
    在这里实现工具列表的查询,返回以及配置的API即可

这样我们将工具列表封装为tool_message,传递给模型,即可让模型自动选择合适的API调用。


#[derive(Debug, Clone)]
pub struct McpService;

impl McpService {
    pub fn new() -> Self {
        Self {}
    }

    /// 添加或更新API
    fn add_or_update_api(&self, req: Api) -> Res<()> {}

    /// 删除API
    fn remove_api(&self, req: RemoveApiReq) -> Res<()> {}
    
    /// 查询API列表
    fn list_api(&self, req: Option<ListApiReq>) -> Res<PageRes<Api>> {}
}

impl ServerHandler for McpService {
    async fn call_tool(
        &self,
        request: CallToolRequestParam,
        _context: RequestContext<RoleServer>,
    ) -> Result<CallToolResult, Error> {
    	// 请求转发
    }

    fn list_tools(
        &self,
        _request: PaginatedRequestParam,
        _context: RequestContext<RoleServer>,
    ) -> impl Future<Output = Result<ListToolsResult, Error>> + Send + '_ {
		//返回API列表
	}
}

配置API:
在这里插入图片描述

在模型中使用API:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勇敢牛牛_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值