当前位置: 首页 > news >正文

通过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 {}}/// 添加或更新APIfn add_or_update_api(&self, req: Api) -> Res<()> {}/// 删除APIfn 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:
在这里插入图片描述

http://www.xdnf.cn/news/436573.html

相关文章:

  • PDF Base64格式字符串转换为PDF文件临时文件
  • RabbitMQ 快速上手:安装配置与 HelloWorld 实践(一)
  • 【CUDA】Sgemm单精度矩阵乘法(下)
  • MQ消息队列的深入研究
  • STM32F103C8T6板子使用说明
  • 通讯录管理系统(IO_序列化和反序列化版)
  • 学习日志05 java
  • Cookie、 Local Storage、 Session Storage三种客户端存储方式
  • vshell渗透测试工具介绍
  • 从零实现一个高并发内存池 - 1
  • WHAT - 《成为技术领导者》思考题(第八章)
  • Yarn-Tool接口定义
  • python高级特性二
  • Java 反射
  • 久坐办公自动提醒休息的工具
  • QLineEdit增加点击回显功能
  • PH热榜 | 2025-05-13
  • arctanx 导数 泰勒展开式证明
  • 机器学习2
  • 鹅厂面试数学题
  • 典籍指数问答模块回答格式修改
  • java中的Optional
  • 如何优化 Linux 服务器的磁盘 I/O 性能
  • 【Nova UI】十五、打造组件库之滚动条组件(上):滚动条组件的起步与进阶
  • 【学习笔记】Shell编程---流程控制语句
  • PNG图片转icon图标Python脚本(简易版) - 随笔
  • 动态规划问题 -- 多状态模型(打家劫舍)
  • Java的进制转换
  • 大模型驱动的写实数字人实时对话:创新与实践
  • 谈谈各种IO模型