Skip to main content

futu_mcp/
tools.rs

1//! MCP 工具定义(#[tool] 薄封装,业务逻辑在 handlers/)
2
3mod market;
4mod reference;
5mod subscription;
6mod system;
7mod trade_read;
8mod trade_write;
9
10use crate::state::ServerState;
11
12// ========== Server ==========
13
14#[derive(Clone)]
15pub struct FutuServer {
16    pub state: ServerState,
17}
18
19impl FutuServer {
20    pub fn new(state: ServerState) -> Self {
21        Self { state }
22    }
23}
24
25impl FutuServer {
26    pub(crate) fn tool_router() -> rmcp::handler::server::router::tool::ToolRouter<Self> {
27        Self::system_tool_router()
28            + Self::market_tool_router()
29            + Self::reference_tool_router()
30            + Self::subscription_tool_router()
31            + Self::trade_read_tool_router()
32            + Self::trade_write_tool_router()
33    }
34}
35
36#[rmcp::tool_handler(router = Self::tool_router())]
37impl rmcp::ServerHandler for FutuServer {}
38
39#[cfg(test)]
40mod tests;