tool

private fun tool(name: String, description: String, vararg params: McpJson.Param?): JsonObject

The MCP envelope every tools/list entry shares. Written once here instead of once per tool: what differs between two tools is their prose, and this is the part that doesn't.