Skip to main content
Glama
LibreDesk MCP

LibreDesk MCP

by Passe12345

upsert_conversation_draft

Saves or updates a caller's conversation draft as a reply or private note, rejecting blank content when metadata is empty. Use it to persist draft messages before sending.

Instructions

Save Conversation Draft Saves or updates the caller's draft for a conversation. type defaults to reply. The request is rejected with 400 when content is blank and meta is empty or {}, and when meta is larger than 32 KB. The caller must have access to the conversation. POST /api/v1/conversations/{uuid}/draft Tags: Conversations

Input Schema

NameRequiredDescriptionDefault
metaNo(body) Free-form JSON stored with the draft, at most 32 KB. The code does not constrain its shape.
typeNo(body) Draft type. Defaults to `reply` when omitted or empty.reply
uuidYesConversation UUID (path parameter)
contentNo(body) Draft content (HTML). Inline images are rewritten to cid: references on save.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does real work: it discloses two rejection conditions (blank `content` combined with empty `meta`; `meta` over 32 KB) and an authorization requirement. That is meaningful, non-obvious failure behavior an agent cannot infer. What it omits is the success behavior and response shape, and whether omitting `content` clears an existing draft (partial-update semantics).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The save/update behavior and the rejection rules are front-loaded, so the first sentence carries the most useful information. The trailing endpoint path and tag line are mild but conventional noise, and the `type` default is stated once more than necessary. No sentence is wasted, though a couple are duplicative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, validation and access rules are well covered, but the description never says what a successful call returns or what state the draft ends in. The 32 KB and blank-content rules are covered; the semantics of a partial save (omitting `content` or `meta`) are not. That is a real gap for an upsert tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including the enum and default. The description restates the `reply` default and the 32 KB bound rather than adding new meaning, though the coupling of blank `content` with empty `meta` as a joint validation rule is genuinely additive. Baseline 3 fits given the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Saves or updates the caller's draft for a conversation" gives a specific verb pair (upsert semantics) and an unambiguous resource (the caller's own draft on one conversation). The name plus this sentence makes the create-vs-update duality explicit, which is the main ambiguity. It stops short of naming the contrast with a sibling like delete_conversation_draft, but 'upsert' plus 'caller's draft' is differentiated enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies a precondition ("The caller must have access to the conversation") and a default (`type` is `reply`), which implies the tool is used for both first-save and re-save. However, it never says when to prefer this over a full conversation update or when to reset a draft instead of overwriting it, and there is no explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools