Skip to main content
Glama
Inkdrop MCP Server

Inkdrop MCP Server

Official
by inkdropapp

patch-note

Update an existing Inkdrop note body with one or more exact string replacements, enabling partial edits without overwriting the full content; read the note first to get current text.

Instructions

Update the body of the existing note by performing one or more exact string replacements. Use this tool to make partial updates to the note body without replacing the entire content. You must first read the note with read-note to get the current body, then specify the exact substrings to replace. Edits are applied in order, each against the result of the previous one, and the note is only saved if all of them succeed.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "_id": "<_id>",
      "_rev": "<_rev>",
      "edits": "<edits>"
    },
    "name": "patch-note"
  }
}

Input Schema

NameRequiredDescriptionDefault
_idYesThe unique document ID which should start with `note:` and the remains are randomly generated string
_revYesThis is a CouchDB specific field. The current MVCC-token/revision of this document (mandatory and immutable).
editsYesThe replacements to perform, applied in order.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.7.0
    • addedInput schema / properties / edits
      Added value: +{
      +  "description": "The replacements to perform, applied in order.",
      +  "items": {
      +    "properties": {
      +      "new_string": {
      +        "description": "The text to replace `old_string` with. Use an empty string to delete the matched text.",
      +        "type": "string"
      +      },
      +      "old_string": {
      +        "description": "The exact text to find in the note body. Must match exactly one occurrence. Include enough surrounding context to ensure a unique match.",
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "old_string",
      +      "new_string"
      +    ],
      +    "type": "object"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • removedInput schema / properties / new_string
      Removed value: -{
      -  "description": "The text to replace `old_string` with. Use an empty string to delete the matched text.",
      -  "type": "string"
      -}
    • removedInput schema / properties / old_string
      Removed value: -{
      -  "description": "The exact text to find in the note body. Must match exactly one occurrence. Include enough surrounding context to ensure a unique match.",
      -  "minLength": 1,
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "_id",
      -  "_rev",
      -  "old_string",
      -  "new_string"
      -]New value: +[
      +  "_id",
      +  "_rev",
      +  "edits"
      +]
  2. First observedv1.4.0

TDQS

A4.1/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 well: it discloses sequential application ('each against the result of the previous one') and all-or-nothing atomicity ('the note is only saved if all of them succeed'), which an agent cannot infer from the schema. It is silent on concurrency/revision conflict behavior and on what an error response looks like per failed edit.

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 the action and mechanism, then the prerequisite, then the ordering/atomicity guarantees — a sensible order. There is mild redundancy between 'make partial updates' and 'without replacing the entire content' in adjacent sentences.

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 3-required-parameter mutation tool with no annotations and no output schema, the description supplies the essentials: target, mechanism, prerequisite read, ordering, and atomicity. Failure semantics and revision-conflict handling remain unstated, which is the main residual gap.

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 coverage is 100% and each parameter (including old_string/new_string uniqueness) is already documented there, so baseline 3 applies. The description adds only a little beyond the schema, clarifying cumulative application across the edits array; it says nothing extra about _rev or _id semantics.

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 ('Update'), resource ('the body of the existing note') and mechanism ('exact string replacements'). The clause 'without replacing the entire content' implicitly separates it from the full-body sibling update-note, so an agent can pick between them without opening schemas.

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 clear when-to-use guidance ('partial updates') and an explicit hard prerequisite: read the note with `read-note` first to obtain the current body. It does not name the direct alternative (update-note) as the choice for whole-body replacement, so the exclusion is only implied.

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