summaryrefslogtreecommitdiff
path: root/src/mcp/tools/write_message.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mcp/tools/write_message.c')
-rw-r--r--src/mcp/tools/write_message.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/mcp/tools/write_message.c b/src/mcp/tools/write_message.c
index 1d7ece2..f9c078a 100644
--- a/src/mcp/tools/write_message.c
+++ b/src/mcp/tools/write_message.c
@@ -162,8 +162,8 @@ call_write_message(const mcpc_tool_t *tool, mcpc_ucbr_t *result)
input.content = tiny_mcp_tool_get_string(tool, "content", TINY_CONTENT_MAX);
metadata = tiny_mcp_tool_get_string(tool, "metadata_json", TINY_CONTENT_MAX);
bool valid = context && input.session_id && input.session_id[0] && role && input.content
- && input.content[0] && metadata && tiny_role_parse(role, &input.role)
- && parse_metadata(metadata, &input);
+ && input.content[0] && tiny_role_parse(role, &input.role)
+ && parse_metadata(metadata ? metadata : "{}", &input);
if (!valid)
{
tiny_mcp_tool_add_error(result, "VALIDATION_ERROR", "invalid write_message arguments");
@@ -204,10 +204,13 @@ tiny_mcp_register_write_message(mcpc_server_t *server)
{
mcpc_tool_t *tool
= tiny_mcp_tool_new("write_message", "Append a conversation message", call_write_message);
- return tool && tiny_mcp_tool_add_property(tool, "session_id", "Session ID", MCPC_U8STR)
- && tiny_mcp_tool_add_property(tool, "role", "user, assistant, or system", MCPC_U8STR)
- && tiny_mcp_tool_add_property(tool, "content", "Message text", MCPC_U8STR)
- && tiny_mcp_tool_add_property(
- tool, "metadata_json", "Metadata object JSON; use {} when empty", MCPC_U8STR)
+ return tool && tiny_mcp_tool_add_property(tool, "session_id", "Session ID", MCPC_U8STR, true)
+ && tiny_mcp_tool_add_property(tool, "role", "user, assistant, or system", MCPC_U8STR, true)
+ && tiny_mcp_tool_add_property(tool, "content", "Message text", MCPC_U8STR, true)
+ && tiny_mcp_tool_add_property(tool,
+ "metadata_json",
+ "Optional metadata object JSON; defaults to {}",
+ MCPC_U8STR,
+ false)
&& mcpc_server_add_tool(server, tool) == MCPC_EC_0;
}