Skip to main content

Crate rmcp_macros

Crate rmcp_macros 

Source
Expand description

§rmcp-macros

Crates.io Documentation

Procedural macros for the RMCP SDK. Most users should depend on rmcp with the macros feature (enabled by default) rather than using this crate directly.

For getting started and full MCP feature documentation, see the main README.

§Available Macros

MacroDescription
#[tool]Mark a function as an MCP tool handler
#[tool_router]Generate a tool router from an impl block
#[tool_handler]Generate call_tool and list_tools handler methods
#[prompt]Mark a function as an MCP prompt handler
#[prompt_router]Generate a prompt router from an impl block
#[prompt_handler]Generate get_prompt and list_prompts handler methods
#[task_handler]Wire up the task lifecycle on top of an OperationProcessor

§Quick Example

use rmcp::{tool, tool_router, tool_handler, ServerHandler, model::*};

#[derive(Clone)]
struct MyServer {
    tool_router: rmcp::handler::server::tool::ToolRouter<Self>,
}

#[tool_router]
impl MyServer {
    #[tool(description = "Say hello")]
    async fn hello(&self) -> String {
        "Hello, world!".into()
    }
}

#[tool_handler]
impl ServerHandler for MyServer {
    fn get_info(&self) -> ServerInfo {
        ServerInfo::default()
    }
}

See the full documentation for detailed usage of each macro.

§License

This project is licensed under the terms specified in the repository’s LICENSE file.

Attribute Macros§

prompt
prompt
prompt_handler
prompt_handler
prompt_router
prompt_router
task_handler
task_handler
tool
tool
tool_handler
tool_handler
tool_router
tool_router