通过MCP让LLM调用系统接口
为了增强大型语言模型(LLM)的功能并使其能够调用现有系统的内部API,我们开发了一个名为http-api-call的MCP Server。该服务器通过标准的MCP协议,重写了call_tool和list_tool两个关键功能。call_tool负责将请求信息转发给系统的后端接口,而list_tool则用于查询和返回可用的API列表。通过这种方式,我们将工具列表封装为tool_message,使模
·
场景
MCP的出现大大丰富了LLM的功能,对于存量系统,我们希望能让模型调用已有的接口,以最小的成本让AI能够获取系统内部数据。因此我们开发了一个名为http-api-call的MCP Server,来支持模型到内部API的调用
实现方案
使用用标准的MCP协议,重写call_tool和list_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:
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)