| Crates.io | mcp-tools-sdk |
| lib.rs | mcp-tools-sdk |
| version | 0.2.0 |
| created_at | 2025-11-11 15:56:55.58198+00 |
| updated_at | 2025-12-05 16:53:43.183342+00 |
| description | An SDK for parsing and manipulating mcp tool descriptions and input/output data. |
| homepage | https://github.com/cedar-policy/cedar-for-agents/tree/main/rust/mcp-tools-sdk |
| repository | https://github.com/cedar-policy/cedar-for-agents |
| max_upload_size | |
| id | 1927496 |
| size | 137,494 |
This crate contains an SDK for parsing and manipulating Model Context Protocol (MCP) tool descriptions. Specifically, the SDK is designed in a way in which any MCP tool description can be parsed into a generic ToolDescription struct which allows for meta-mcp tools to process the tool descriptions without needing to know the exact structure of each concrete mcp tool.
mcp_tool.json
{
"name": "MyCoolTool",
"description": "A cool tool made by me!",
"inputSchema": {
"type": "object",
"properties": {
"cool_attr": { "type": "string" }
},
"required": ["cool_attr"]
}
}
use mcp_tools_sdk::description::ToolDescription;
fn main() {
let tool = ToolDescription::from_json_file("mcp_tool.json").expect("Tool description should have parsed.");
println!("{}: {}", tool.name(), tool.description().unwrap_or(""))
}