rust-mcp-macros.
A procedural macro, part of the rust-mcp-sdk ecosystem, to generate rust_mcp_schema::Tool
instance from a struct.
The mcp_tool
macro generates an implementation for the annotated struct that includes:
- A
tool_name()
method returning the tool's name as a string. - A
tool()
method returning arust_mcp_schema::Tool
instance with the tool's name, description, and input schema derived from the struct's fields.
Attributes
name
- The name of the tool (required, non-empty string).description
- A description of the tool (required, non-empty string).title
- An optional human-readable and easily understood title.meta
- An optional JSON string that provides additional metadata for the tool.destructive_hint
– Optional boolean, indicates whether the tool may make destructive changes to its environment.idempotent_hint
– Optional boolean, indicates whether repeated calls with the same input have the same effect.open_world_hint
– Optional boolean, indicates whether the tool can interact with external or unknown entities.read_only_hint
– Optional boolean, indicates whether the tool makes no modifications to its environment.
Usage Example
Check out rust-mcp-sdk , a high-performance, asynchronous toolkit for building MCP servers and clients. Focus on your app's logic while rust-mcp-sdk takes care of the rest!
Note: The following attributes are available only in version 2025_03_26
and later of the MCP Schema, and their values will be used in the annotations attribute of the *Tool struct.
destructive_hint
idempotent_hint
open_world_hint
read_only_hint