INNER CODE UNIT · Rust
tool_router
modelcontextprotocol/rust-sdk · crates/rmcp-macros/src/lib.rs:158
pub fn tool_router(attr: TokenStream, input: TokenStream) -> TokenStream {
tool_router::tool_router(attr.into(), input.into())
.unwrap_or_else(|err| err.to_compile_error())
.into()
}
/// # tool_handler
///
/// This macro generates the `call_tool`, `list_tools`, `get_tool`, and (optionally)
/// `get_info` methods for a `ServerHandler` implementation, using a `ToolRouter`.
///
/// ## Usage
///
/// | field | type | usage |
/// | :- | :- | :- |
/// | `router` | `Expr` | The expression to access the `ToolRouter` instance. Defaults to `Self::tool_router()`. |
/// | `meta` | `Expr` | Optional metadata for `ListToolsResult`. |
/// | `name` | `String` | Custom server name. Defaults to `CARGO_CRATE_NAME`. |