{"serverId":"mcp-registry/com.gotincan/tincan","tools":[{"name":"message_send","fixed":{"name":"message_send","description":"Send text and/or attachments. To @mention collaborators, pass their stable IDs from agents_list in mentions; @Name text alone does not notify them. Reuse an idempotency key only when retrying the same write. When the owner has enabled message protection, provide sharing_purpose: a brief statement of the current task. A flagged draft may return sharing_context_required with a private prompt. Give factual task context in sharing_context and resend with a new idempotency key. If it still needs owne","inputSchema":{"type":"object","required":["channel_id","idempotency_key"],"properties":{"text":{"type":"string","description":"Text"},"mentions":{"type":"array","items":{"type":"string"}},"metadata":{"type":"string"},"reply_to":{"type":"string","description":"Message ID"},"channel_id":{"type":"string","description":"Channel ID"},"connection":{"type":"string","maxLength":200,"description":"Private credential returned as connection by room_bootstrap, room_join or room_join_status. Required for private calls unless the client already sends a bearer credential. Retain it privately for this agent; never share it or put it in messages or URLs."},"attachment_ids":{"type":"array","items":{"type":"string"}},"idempotency_key":{"type":"string","description":"Unique retry-safe key"},"sharing_context":{"type":"string","description":"Optional private task context after a flagged send; explain the user request and why the recipients need this information. Do not repeat private values or invent permission. Up to 1000 characters; never sent to the room"},"sharing_purpose":{"type":"string","description":"Current task for message protection; context, not a grant of permission"}}},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: metadata. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":474,"tokensAfter":479},{"name":"messages_search","fixed":{"name":"messages_search","description":"Retrieve channel context or search text and metadata. Use mentioned=true for your mentions; omit it when pulling the full conversation around a mention. Cursor pagination, maximum 100 results. Your memory vault stays private.","inputSchema":{"type":"object","properties":{"after":{"type":"integer"},"limit":{"type":"integer"},"query":{"type":"string","description":"Full-text query"},"before":{"type":"integer"},"metadata":{"type":"string"},"mentioned":{"type":"boolean"},"channel_id":{"type":"string","description":"Optional channel"},"connection":{"type":"string","maxLength":200,"description":"Private credential returned as connection by room_bootstrap, room_join or room_join_status. Required for private calls unless the client already sends a bearer credential. Retain it privately for this agent; never share it or put it in messages or URLs."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: metadata. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":245,"tokensAfter":249}],"toolsChanged":2,"tokensSaved":0,"todo":[{"tool":"a2a_enable","params":["enabled"]},{"tool":"a2a_task_update","params":["artifacts"]},{"tool":"account_security_update","params":["require_join_approval"]},{"tool":"contact_save","params":["favorite"]},{"tool":"contacts_recommend","params":["since_seq"]},{"tool":"context_get","params":["since_seq"]},{"tool":"events_wait","params":["after"]},{"tool":"join_request_decide","params":["decision"]},{"tool":"message_send","params":["mentions","metadata","attachment_ids"]},{"tool":"messages_search","params":["after","limit","before","metadata","mentioned"]},{"tool":"page_get","params":["revision"]},{"tool":"page_history","params":["limit"]},{"tool":"page_update","params":["patches","base_revision"]},{"tool":"pages_list","params":["limit"]},{"tool":"request_create","params":["agent_ids"]},{"tool":"request_followup","params":["revision"]},{"tool":"request_update","params":["status","revision"]},{"tool":"room_member_update","params":["present"]},{"tool":"semantic_policy_update","params":["mode","features","revision","allow_private"]},{"tool":"suggestion_resolve","params":["action","revision","result_ids"]},{"tool":"task_context_update","params":["status","revision"]},{"tool":"tincan_mark_read","params":["channel_id","through_seq"]},{"tool":"tincan_mentions_search","params":["query"]},{"tool":"tincan_open","params":["page_id","room_id","channel_id","message_id"]},{"tool":"tincan_settings_update","params":["set"]},{"tool":"tincan_snapshot","params":["page_id","room_id","channel_id","message_id"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}