Skip to main content
Glama
ishayshalev

Morning (Green Invoice) MCP

by ishayshalev

save_document_draft

Save an editable, unissued document draft in Morning without issuing, emailing, or creating a client. Use a draftId to update an existing draft and a requestKey to prevent duplicate saves.

Instructions

Save an editable, unissued document draft directly in Morning. Does not issue, send email or create a client. Use createDocumentDraft schema for body and client.add=false. draftId updates an existing saved draft. Reuse requestKey only for identical content; check uncertain outcomes before another request.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYes
titleYes
draftIdNo
requestKeyYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.5

TDQS

A4.3/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly=false, destructive=false, openWorld=true), and the description adds real non-obvious behavior: idempotency via requestKey ('reuse only for identical content') and a caution to verify uncertain outcomes before retrying. It doesn't state auth requirements or what the response returns, keeping it short of a 5.

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?

Front-loaded with purpose and exclusions in the first sentence, then parameter semantics in short clauses. Every sentence adds information; phrasing like 'directly in Morning' and 'check uncertain outcomes' is slightly opaque but not wasteful.

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

Completeness4/5

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

For a write tool with no output schema and 0% schema description coverage, the description covers the mutation's effects, its non-effects, and the idempotency contract. Missing only details an agent might want about the returned draft or failure modes.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the load, and it does for the three non-obvious parameters: body follows createDocumentDraft, draftId switches to update-existing mode, and requestKey carries strict reuse semantics. Only 'title' is left to the schema, but it is self-evident.

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

Purpose5/5

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

States a specific verb+resource ('Save an editable, unissued document draft') and immediately delimits it against adjacent operations ('Does not issue, send email or create a client'), which maps directly onto siblings like prepare_issue_document_draft and preview_document_draft. An agent can distinguish it without opening a schema.

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

Usage Guidelines4/5

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

Gives explicit when-not guidance (no issue, no email, no client creation) and conditional behavior for draftId (update vs. create). It lacks naming of a specific alternative sibling to use instead for issuing, but the exclusion set makes the routing clear.

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