Skip to main content
Glama

CodeGraph CLI MCP Server

by Jakedismo
test_tool_result_meta.rs1.42 kB
use rmcp::model::{CallToolResult, Content, Meta}; use serde_json::{Value, json}; #[test] fn serialize_tool_result_with_meta() { let content = vec![Content::text("ok")]; let mut meta = Meta::new(); meta.insert("foo".to_string(), json!("bar")); let result = CallToolResult { content, structured_content: None, is_error: Some(false), meta: Some(meta), }; let v = serde_json::to_value(&result).unwrap(); let expected = json!({ "content": [{"type":"text","text":"ok"}], "isError": false, "_meta": {"foo":"bar"} }); assert_eq!(v, expected); } #[test] fn deserialize_tool_result_with_meta() { let raw: Value = json!({ "content": [{"type":"text","text":"hello"}], "isError": true, "_meta": {"a": 1, "b": "two"} }); let result: CallToolResult = serde_json::from_value(raw).unwrap(); assert_eq!(result.is_error, Some(true)); assert_eq!(result.content.len(), 1); let meta = result.meta.expect("meta should exist"); assert_eq!(meta.get("a").unwrap(), &json!(1)); assert_eq!(meta.get("b").unwrap(), &json!("two")); } #[test] fn serialize_tool_result_without_meta_omits_field() { let result = CallToolResult::success(vec![Content::text("no meta")]); let v = serde_json::to_value(&result).unwrap(); // Ensure _meta is omitted assert!(v.get("_meta").is_none()); }

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/Jakedismo/codegraph-rust'

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