Skip to main content
Glama

Add note

add_note

Attach a free-form note to any record (account / contact / opportunity / touch). MUST link to at least one. Returns the created note.

When to use: Free-form context that doesn't fit a structured field. Notes are searchable and soft-deleted.

Example: Note on Acme: procurement team requires SOC2 by Q1 — we need a story ready.

Input Schema

NameRequiredDescriptionDefault
bodyYesMust not be empty.
touch_idNoA uuid.
account_idNoA uuid.
contact_idNoA uuid.
request_idNoRetry key: a client-generated UUID. Repeating a call with the same request_id and arguments within 24h replays the earlier result instead of creating a second note; it is never stored on the note.
opportunity_idNoA uuid.

Output Schema

NameRequiredDescriptionDefault
noteNo
accountNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  2. Changed5 schema fields changed
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / additionalProperties
      Removed value: -{}
    • changedOutput schema / properties / account / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "current_arr_cents": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "id": {
      -        "format": "uuid",
      -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -        "type": "string"
      -      },
      -      "lifecycle_stage": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "name": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "id"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "The account's state — the same shape log_touch returns as `account`.",
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / note / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / note / propertyNames
      Removed value: -{
      -  "type": "string"
      -}
  3. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent write, so the bar is lower. The description still adds useful lifecycle facts beyond them: notes are searchable and soft-deleted (i.e. recoverable), and the created note is returned. It omits any permission or visibility model for shared records.

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 the required-linkage constraint before the usage note and example, and every block carries information. The example sentence is somewhat long, but it concretely illustrates the expected free-form content, so it earns its place.

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?

With annotations covering the safety profile and an output schema present, the description covers the remaining agent-relevant questions: required linkage, searchability, soft-delete semantics, and return behavior. Only secondary details (permissions/visibility, size or rate limits on the note body) are absent.

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 100%, so the baseline is 3, and the description adds a genuine cross-parameter rule the schema does not encode: 'MUST link to at least one' of the four polymorphic id fields, each of which is documented only as 'A uuid.' It adds the cardinality constraint but no guidance on how the target type affects behavior.

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?

The description gives a specific verb+resource ('Attach a free-form note to any record') plus the accepted target types (account/contact/opportunity/touch), the key linkage constraint, and the return value. It is clear enough to distinguish it from structured writers like create_record, but it never names a sibling it is not (e.g. log_touch), so it stops short of full sibling differentiation.

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?

'When to use: Free-form context that doesn't fit a structured field' gives a clear positive selection criterion distinguishing it from structured-field mutations. It does not, however, state when NOT to use it or point at alternatives (log_touch, update_record) that an agent might otherwise reach for.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources