Skip to main content
Glama
alondmnt

Joplin MCP Server

by alondmnt

untag_note

Remove one or more tags from one or more Joplin notes. Supports batch operations by accepting lists of note IDs and tag names.

Instructions

Remove one or more tags from one or more notes.

Both args accept a single string or a list. When either is a list, the cartesian product is applied (remove every tag from every note) in one call.

Output: aggregated UNTAG_NOTE report with TOTAL_OPS / SUCCEEDED / FAILED, one row per (note, tag) pair (so the scalar case is a one-row report).

Tags must exist (by name). Missing tags are reported up front and nothing is removed. Per-op failures (including allowlist denials) are captured in the report; other ops still run.

Examples: - untag_note("abc...", "Work") - Remove one tag from one note - untag_note(["abc...", "def..."], "Work") - Remove one tag from two notes - untag_note("abc...", ["Work", "Urgent"]) - Remove two tags from one note - untag_note(["abc...", "def..."], ["Work", "Urgent"]) - 2x2 = 4 ops

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
note_idYesNote ID, or list of note IDs
tag_nameYesTag name, or list of tag names

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

The description thoroughly explains the cartesian product, output report format, error handling for missing tags and per-op failures, and atomicity per pair. No annotations are provided, so the description fully carries the behavioral disclosure burden.

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

Conciseness5/5

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

The description is well-structured with a clear summary, behavioral explanation, examples, and output description. It is concise with no unnecessary information; every sentence serves a purpose.

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

Completeness5/5

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

Given the tool's complexity (2 params, list handling, failure modes), the description covers all necessary aspects: input, output, error cases, and usage examples. It is complete for an agent to use correctly.

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?

The input schema already describes each parameter with 100% coverage. The description adds significant value by explaining the list behavior and cartesian product, going beyond the schema's baseline.

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?

The description clearly states the tool's purpose: 'Remove one or more tags from one or more notes.' It specifically describes the cartesian product behavior, distinguishing it from the sibling tool 'tag_note' by being its inverse operation.

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?

The description provides clear guidance on when to use single vs list arguments, includes examples for various combinations, and notes prerequisites (tags must exist) and failure behavior. However, it does not explicitly contrast with 'tag_note' or other tools.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alondmnt/joplin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server