batuta/serve/banco/
handlers_mcp.rs1use axum::{extract::State, response::Json};
7
8use super::mcp::{handle_mcp_request, McpRequest, McpResponse};
9use super::state::BancoState;
10
11pub async fn mcp_handler(
13 State(state): State<BancoState>,
14 Json(request): Json<McpRequest>,
15) -> Json<McpResponse> {
16 let response = handle_mcp_request(&request, &state.tools, &state.prompts);
17 Json(response)
18}
19
20pub async fn mcp_info_handler() -> Json<McpInfoResponse> {
22 Json(McpInfoResponse {
23 protocol: "mcp".to_string(),
24 version: "2024-11-05".to_string(),
25 server: "banco".to_string(),
26 server_version: env!("CARGO_PKG_VERSION").to_string(),
27 transport: "http".to_string(),
28 endpoint: "/api/v1/mcp".to_string(),
29 })
30}
31
32#[derive(Debug, serde::Serialize)]
34pub struct McpInfoResponse {
35 pub protocol: String,
36 pub version: String,
37 pub server: String,
38 pub server_version: String,
39 pub transport: String,
40 pub endpoint: String,
41}