Skip to main content
Glama
schema_tests.rs1.46 kB
use prometheus_mcp::mcp::tools::tools_list; #[tokio::test] async fn test_tool_schemas_are_well_formed() { let res = tools_list(None).await.expect("tools/list failed"); assert!(!res.tools.is_empty(), "No tools returned"); for tool in res.tools { // Input schema should be an object with properties assert_eq!( tool.input_schema.type_name, "object", "tool {} input_schema.type must be object", tool.name ); for (prop_name, prop) in tool.input_schema.properties.iter() { // Each property should have a type assert!( prop.type_name.is_some(), "tool {} property '{}' must have a type", tool.name, prop_name ); if prop.type_name.as_deref() == Some("array") { // Array-typed properties must define items assert!( prop.items.is_some(), "tool {} property '{}' is an array and must have 'items' schema", tool.name, prop_name ); let items = prop.items.as_ref().unwrap(); assert!( items.type_name.is_some(), "tool {} property '{}' items must specify a type", tool.name, prop_name ); } } } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/brenoepics/prometheus-rs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server