mcp-host-macros 0.1.6

Procedural macros for mcp-host crate
Documentation

Procedural macros for mcp-host

Provides attribute macros for ergonomic MCP tool, resource, and prompt definition.

Usage

use mcp_host::prelude::*;
use schemars::JsonSchema;

#[derive(Deserialize, JsonSchema)]
struct CalcParams {
    x: f64,
    y: f64,
}

#[mcp_tool_router]
impl MyServer {
    /// A calculator tool
    #[mcp_tool(name = "calculate")]
    async fn calculate(&self, ctx: Ctx, params: Parameters<CalcParams>) -> ToolResult {
        Ok(vec![text(&format!("Result: {}", params.0.x + params.0.y))])
    }

    #[mcp_tool(visible = "ctx.is_admin()")]
    async fn admin_tool(&self, ctx: Ctx, params: Parameters<AdminParams>) -> ToolResult {
        // Only visible to admin users
    }
}

// Registration:
let server = Arc::new(MyServer::new());
MyServer::tool_router().register_all(&registry, server);