Skip to main content
Glama

hive-mcp

An MCP server for hive — a spatial board for notes, tasks and ideas (an Obsidian-style app where notes live on an infinite canvas).

It lets an AI assistant (Claude Desktop, Claude Code, Codex, Cursor, …) read your board and work on it: create notes and every other node kind, write Markdown, link nodes into mind maps, group them into zones, mark tasks, import files and arrange everything — through the running hive app, so changes appear instantly, follow hive's own rules and can be undone with Ctrl+Z (each tool call is one undo step, labelled MCP: …).

Early beta, made for fun. Expect breaking changes.

Requirements

  • hive 1.7.0 or newer with Settings → AI tools → Allow AI tools (MCP) enabled (on by default).

  • Node.js 20+.

When hive is closed, the read tools still work on the last opened project folder (read-only); writing needs hive running.

Related MCP server: Boarderless MCP Server

Install

git clone https://github.com/reteren/hive-mcp.git
cd hive-mcp
npm install   # also builds dist/

Claude Code

claude mcp add hive -- node "C:/path/to/hive-mcp/dist/index.js"

Claude Desktop / other clients (JSON config)

{
  "mcpServers": {
    "hive": {
      "command": "node",
      "args": ["C:/path/to/hive-mcp/dist/index.js"]
    }
  }
}

Codex (~/.codex/config.toml)

[mcp_servers.hive]
command = "node"
args = ["C:/path/to/hive-mcp/dist/index.js"]

Tools

Tool

What it does

get_status

Running?, open project, counts, visible area, selection

describe_node_kinds

Every node kind with its fields and allowed values

list_nodes, get_nodes, search_nodes

Find and read nodes (full Markdown text, links, zone)

create_nodes

Create any number of nodes of any kind + links in one step, auto-placed without overlaps (row, column, grid, tree)

update_nodes

Rename, edit text precisely (find/replace, append, prepend), move, resize, colours, glow, task, importance, purposes, moods, kind data

delete_nodes, restore_from_trash, list_trash, list_archive

Delete like the Delete key (to Trash) and bring back

move_nodes, arrange_nodes

Exact positions or automatic layouts

list_links, create_links, update_links, delete_links

Lines between nodes

list_zones, create_zone, update_zone, delete_zones

Coloured areas grouping nodes

import_file

Add a file from disk exactly like dropping it on the board

focus_view

Move hive's camera to show nodes

undo_last_change

Undo the last MCP change

save_project

Flush pending saves

How it works

hive opens a local TCP listener on 127.0.0.1 (random port) protected by a random per-launch token, and writes both to mcp-bridge.json in its config folder (%APPDATA%\dev.hive.app on Windows). This server reads that file, connects, and forwards each tool call to hive, which executes it with the same code the UI uses. Nothing leaves your machine. Turning the setting off closes the listener and deletes the file.

Environment overrides: HIVE_CONFIG_DIR (where to find mcp-bridge.json / last-project.json), HIVE_PROJECT_DIR (project folder for read-only mode).

Development

npm run check   # types
npm test        # unit tests (fake hive bridge, offline reader)
npm run build

License

MIT

Available Tools

25 tools
arrange_nodesArrange nodesA

Lay out existing nodes as a row, column, grid, tree (by their links) or circle starting at origin (default: their current top-left). One undoable step.

ParametersJSON Schema
NameRequiredDescriptionDefault
gapNo
idsYes
layoutYes
originNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the mutation profile is covered. The description adds two genuinely useful behavioral facts beyond that — the operation is a single atomic 'undoable step', and the default origin is the nodes' current top-left. It still omits whether unlisted nodes are affected and whether existing positions are overwritten.

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?

Two tight sentences with no filler. The primary action and its options come first, followed by the one-line behavioral note about undo, which is the right front-loading order.

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 4-parameter mutation tool with a nested origin object and no output schema, the description covers layout modes and the origin default but leaves 'gap' undefined and says nothing about how the result is reported. Adequate but with clear gaps for an agent trying to call it precisely.

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 0% at the top level, so the description carries real weight. It explains the layout enum values, including that 'tree' arranges by links, and gives the origin default, which are meaningful additions. However, 'gap' is never described in either place, and 'ids' only gets partial coverage from the nested item description.

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?

States a specific verb and resource ('lay out existing nodes') and enumerates the exact layout modes from the enum, so an agent can match intent to the tool without opening the schema. It does not explicitly differentiate itself from the sibling 'move_nodes', which is the nearest alternative for repositioning.

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?

Usage is implied rather than stated: the word 'existing' signals this operates on already-created nodes, and 'tree (by their links)' hints at a link-dependent mode. There is no explicit when-to-use guidance, no mention of when to prefer move_nodes, and no prerequisites or exclusions.

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

create_nodesCreate nodesA

Create one or many nodes (any kind) and optionally link them, in ONE undoable step (Ctrl+Z in hive removes the whole batch). Nodes get the same defaults as hive's Q menu. Placement: explicit x/y, else near another node, else automatic placement from origin (default: centre of the visible area) using layout, never overlapping existing nodes. Use ref to link nodes created in the same call (e.g. a mind map: layout "tree" + links from the root). Returns the final ids, names and positions.

ParametersJSON Schema
NameRequiredDescriptionDefault
gapNo
linksNofrom/to: node ids or refs from `nodes`.
nodesYes
layoutNoFor nodes without x/y/near. Default auto.
originNoBoard point where automatic placement starts.

TDQS

A4.3/5.0
Behavior5/5

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

Goes well past the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false): it discloses that the whole batch is a single undoable step, that nodes inherit the Q-menu defaults, that placement never overlaps existing nodes, and that name collisions get a numeric suffix. These are non-obvious behaviors an agent would otherwise have to discover by trial.

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, then placement rules, then ref linking, then return values. Every sentence carries information, though the middle is dense and could be broken into clearer clauses.

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 no output schema, the description correctly states what is returned (final ids, names, positions) and covers the mutation's reversibility and default behaviors. It omits practical limits (the 200-node cap in the schema) and any permission/auth requirements, which are minor gaps for a creation tool.

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 only 60%, but the description compensates by explaining the placement precedence order, that origin defaults to the centre of the visible area, and how ref enables intra-call linking (with a mind-map example). It adds real meaning beyond the schema for the placement parameters, though it is silent on gap/layout interactions.

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 (Create) and resource (nodes of any kind), plus the batch+link scope in one undoable step. This distinguishes it clearly from update_nodes, delete_nodes and create_links, which an agent can rule out 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 Guidelines3/5

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

Usage guidance is strong at the parameter level (placement precedence: explicit x/y → near → origin/layout, and ref-based linking within the call), but it never says when to prefer this tool over siblings such as create_links, import_file, or a create-then-arrange sequence. Context is implied rather than stated.

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

create_zoneCreate zoneB

Create a zone either from an explicit rectangle or around a set of nodes with padding. One undoable step.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
rectNo
colorNo
aroundNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the mutation profile (readOnlyHint=false, idempotentHint=false). The description adds valuable undo behavior ('One undoable step'), which is not in the annotations, but omits other traits such as whether the name must be unique, what happens on invalid rects, or whether the zone persists automatically.

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?

Two short sentences, front-loaded with the core verb and object, then the two creation modes, then the undo behavior. Every phrase carries information.

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

Completeness2/5

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

For a create tool with nested objects, zero schema description coverage, and no output schema, the description should clarify required/optional structure and any effects beyond undo. It leaves parameter semantics, validation behavior, and result shape unexplained.

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 0%, so the description should compensate. It clarifies the semantic mode of rect and around but does not explain units, coordinate meaning, padding semantics, or the optionality/relationship between name, color, and the two geometry inputs. Baseline is lowered for low coverage, but the description adds only partial meaning.

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?

States a specific verb and resource ('Create a zone') with two distinct modes (explicit rect or around nodes with padding). Distinguishes itself from siblings like update_zone and delete_zones by naming both creation paths, though it doesn't explicitly contrast with those siblings.

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?

Implies usage by describing the two input modes, which lets an agent infer when to use rect vs around. But it offers no explicit when-to-use guidance, no prerequisites, and no mention of alternatives (e.g., when to prefer zones vs node grouping).

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

delete_nodesDelete nodesA
Destructive

Delete nodes exactly like the Delete key in hive: they go to the Trash (restorable with restore_from_trash) together with their links. mode "archive" archives instead. One undoable step.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYes
modeNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so safety is covered. The description adds genuinely useful context beyond annotations: items are restorable via restore_from_trash, links are deleted along with nodes, mode 'archive' switches behavior to archiving instead of trash, and the operation is described as 'one undoable step'. That's real behavioral disclosure.

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?

Three short clauses, no filler, front-loaded with the core behavior and then layering recovery, the mode alternative, and the undoability. Every phrase adds information.

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?

Covers the essential agent questions for a destructive node tool: what happens (trash + links), how to reverse it (restore_from_trash, undo), and the archive alternative. No output schema exists, but the description adequately describes the outcomes. It could mention any limits (e.g., the 500 maxIds cap) but that is captured by the schema.

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 description coverage is 0% and there is a bare enum with no per-value description in the schema—so the description carries the burden. It explains what 'archive' mode does versus default trash behavior, which is the key semantic the agent needs. It does not elaborate on the 'ids' array format, though the schema itself documents that via item description.

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?

Specific verb (delete) and resource (nodes), and it goes further by analogizing to the Delete key in hive and naming the trash-vs-archive outcome. It also names restore_from_trash as the recovery path, which differentiates it from sibling deletion tools like delete_links or delete_zones.

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?

Clearly signals when to use it (mirror the Delete key behavior) and introduces the 'archive' alternative via the mode parameter, referencing restore_from_trash for recovery. It does not explicitly say when NOT to use it versus delete_links or delete_zones, but the node-scoped framing is clear enough.

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

delete_zonesDelete zonesB
Destructive

Delete zones; their nodes stay on the board. One undoable step.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYes

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and non-idempotent, so the safety profile is covered. The description adds genuinely useful context beyond that: the blast radius (nodes remain on the board) and that the deletion is a single undoable step reversible via undo_last_change. It does not mention what happens to links attached to the deleted zones.

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?

Two short, front-loaded clauses with no filler. The core action and its side effect come first, though the phrasing is clipped to the point of being terse.

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 destructive, non-idempotent bulk delete with no output schema, the description covers the key side effect and reversibility, which is the most important part. It omits what the caller passes (IDs), whether links to the zones are affected, and whether the operation can partially fail.

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

Parameters2/5

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

Schema description coverage is 0% for the single required 'ids' parameter, and the description never mentions that deletion targets a list of zone IDs or any constraint such as the minimum of one item. With low coverage the description is expected to compensate, and it does not.

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?

States a specific verb and resource ('Delete zones') and immediately clarifies scope by noting that contained nodes survive, which differentiates it from the sibling delete_nodes. It stops short of explicitly naming delete_nodes as the contrasting alternative, but the effect on nodes makes the distinction inferable.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives such as delete_nodes or delete_zone-like siblings, nor any prerequisite or exclusion. 'One undoable step' describes a behavior, not a usage condition, so the agent gets no routing guidance.

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

describe_node_kindsNode kinds and fieldsA
Read-onlyIdempotent

Every node kind hive supports (note, beacon, list, tierlist, goal, calendar, …) with a description, default width, whether it has a Markdown body, and its kind-specific data fields; plus the allowed values for importance, purposes, moods, link kinds and shapes, and the Markdown syntax hive renders. Call before creating anything other than plain notes. Needs hive running.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds a real operational prerequisite — "Needs hive running" — which is behavioral context the annotations do not carry. It does not describe response size or caching, so not 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 the core subject ("Every node kind hive supports") followed by a dense but purposeful enumeration of contents, then the usage note and prerequisite. It is a single long sentence, which is heavy, but nearly every clause carries distinct information.

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?

With no output schema, the description must convey what is returned, and it does so thoroughly — kinds, their metadata, kind-specific data fields, and the enumerated allowed values. An agent knows what it will get and when it needs to call this.

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 tool takes zero parameters and the schema is empty, so the baseline is 4. There is nothing to disambiguate, and the description correctly spends no words on parameter 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?

The description names a specific resource (every node kind hive supports) and enumerates exactly what each entry contains — description, default width, Markdown body flag, kind-specific data fields — plus the allowed-value vocabularies and Markdown syntax. This clearly distinguishes it from siblings like list_nodes or get_nodes, which return node instances rather than kind definitions.

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?

"Call before creating anything other than plain notes" gives an explicit trigger condition and implicitly excludes plain-note creation, which is genuinely useful routing guidance. It does not name the alternative tool (create_nodes) by name, so it falls short of a 5.

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

focus_viewShow on screenA
Read-onlyIdempotent

Move hive's camera so the given nodes (or rectangle) are visible — use after creating something so the user sees it. Not an undo step.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNo
bboxNo
zoomNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), and the description adds meaningful context beyond them: this only moves the camera and is not recorded as an undo step. It does not describe viewport persistence or whether zoom is retained, but the undo-history clarification is genuinely useful for an agent sequencing edits.

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?

A single sentence with the action, the target, the trigger condition, and the exclusion clause, all front-loaded. Nothing is padded or repeated from the title.

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 three-parameter tool with a nested bbox object and no output schema, the description covers the core behavior but omits what happens when no ids and no bbox are supplied (zero required parameters) and never addresses zoom. Adequate, but with visible gaps for a tool whose schema is entirely undocumented.

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 0%, so the description must carry the load. It does explain the ids-vs-rectangle either/or relationship that the schema leaves implicit, but it never mentions 'zoom' or the coordinate space/units of the bbox, leaving two of three parameters semantically thin.

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 and object ('Move hive's camera') plus the target ('given nodes (or rectangle) are visible'), which is far more precise than the generic title 'Show on screen'. It also pre-emptively differentiates itself from undo_last_change, so an agent can route correctly without opening any 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-to-use guidance: 'use after creating something so the user sees it', and excludes one wrong candidate with 'Not an undo step.' It stops short of naming a full alternative (e.g. that this is viewport-only and not needed after updates or moves), so it lands just below the top tier.

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

get_nodesGet nodesA
Read-onlyIdempotent

Full data of up to 50 nodes by id or exact name: every stored field, the complete Markdown text, effective size, links (with the other node's name) and zone.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNo
namesNoExact names (case-insensitive fallback).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, non-destructive and closed-world, so safety is handled. The description earns credit by disclosing the batch cap (50) and the exact payload contents (all stored fields, full Markdown, effective size, links with names, zone), which annotations cannot convey.

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?

One dense sentence, front-loaded with the key constraint ('up to 50 nodes by id or exact name') and then the return payload. No filler and nothing redundant.

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 no output schema, the description correctly enumerates what comes back, and annotations carry the safety profile. It omits edge behavior such as missing-id handling, result ordering, or whether ids and names may be combined, which leaves a small 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 50%: names carries an 'exact names (case-insensitive fallback)' note while ids is bare. The description restates the id/exact-name lookup and the 50 cap, adding mild clarification but no format or matching details beyond the schema.

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?

Names a specific verb+resource (get nodes) and pins the lookup keys (id or exact name), which implicitly separates it from search_nodes and list_nodes. It never names a sibling outright, so the differentiation is inferred rather than stated.

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?

The 'by id or exact name' phrasing implies when this tool fits (known identifiers) versus a search, but there is no explicit when-to-use, when-not-to-use, or named alternative. Usage must be inferred from the payload description.

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

get_statushive statusA
Read-onlyIdempotent

Start here. Returns whether hive is running, the open project (name, folder), object counts, the camera and the visible board area (board units) and the current selection. When hive is closed the result has offline:true and only read tools work.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds genuine behavioral context by disclosing that the result carries offline:true when hive is closed and that only read tools function in that state. It adds no auth or rate-limit detail, but for a status probe that is not needed.

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?

Front-loads the "Start here" cue, then packs the return payload and the offline condition into two tight sentences with no filler. Every clause carries information an agent needs.

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?

There is no output schema, so the description carries the burden of describing return values, and it enumerates the returned fields explicitly. Combined with the offline-state caveat, an agent has everything needed to call it and interpret the result.

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 tool takes zero parameters, so there is no parameter semantics to clarify and the baseline of 4 applies.

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 and enumerates exactly what is returned (running state, open project name/folder, object counts, camera, board area, selection). This is clearly distinguishable from every sibling, which are all mutation or list tools.

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?

"Start here" gives an explicit entry-point directive, and the offline note tells the agent that write tools are unavailable when hive is closed. It stops short of naming alternative tools or explicit exclusions, but the context is clear.

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

import_fileImport fileA

Add a file from disk to the project exactly like dropping it on the board: it is copied into the project folder (big videos above the user's threshold are linked instead) and becomes an image, GIF, PDF, audio, video, text/code (format) or source node. Use an absolute path.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
nameNo
nearNo
pathYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), and the description adds real behavioral context beyond them: the file is copied into the project folder, large videos above a user threshold are linked instead of copied, and the node kind is inferred from the file type. It omits collision/overwrite behavior and permission requirements, but the copy-vs-link distinction is genuinely valuable.

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?

Two sentences, front-loaded with the primary effect and the node-kind outcome, with the path constraint at the end where it belongs. Slightly dense in the middle clause, but every sentence earns its place.

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 mutating import tool with no output schema and zero schema description coverage, the description explains the mutation's file-handling behavior well but leaves the spatial placement API undocumented. It is adequate for calling with just the required path, but incomplete for anyone using the optional placement parameters.

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

Parameters2/5

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

Schema description coverage is 0% for five parameters, so the description carries the burden and largely fails: only 'path' is explained ('Use an absolute path'). Placement parameters x, y, name, and the nested near object (node/side/gap) get no explanation at all, leaving the agent to guess at positioning 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 and resource ('Add a file from disk to the project') and enumerates the resulting node kinds, so an agent can distinguish it from sibling node-creation tools like create_nodes. The 'exactly like dropping it on the board' framing pins down the resource and effect immediately.

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?

Implies when to use it (when you have a file on disk rather than raw content to place on the board) and gives one concrete constraint, 'Use an absolute path.' However, it never names an alternative such as create_nodes for non-file sources, so the agent must infer the boundary itself.

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

list_archiveList archiveC
Read-onlyIdempotent

Archived nodes of the project.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety behavior needs no restating. The description adds no context beyond the name itself: no note on scope, ordering, nesting, or how archive differs from trash. It is effectively a tautology against the title 'List archive'.

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

Conciseness3/5

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

It is a single five-word fragment with no waste, but the brevity comes from under-specification rather than disciplined editing. It is front-loaded only in the sense that there is nothing else to front-load.

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

Completeness2/5

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

With no output schema and no parameters, the description is the only place to explain what this returns and how it relates to list_trash and list_nodes. It leaves the archive-vs-trash distinction entirely unaddressed, which is the single most important ambiguity for this tool.

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 tool takes zero parameters, so there is nothing for the description to clarify; the baseline for a parameterless tool applies. No misleading parameter information is present.

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

Purpose3/5

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

The phrase identifies the resource (archived nodes of the project) and implies a listing operation, but it is a noun fragment rather than a verb+resource statement. It does not differentiate from close siblings such as list_trash or list_nodes, so an agent cannot tell archive apart from trash from this text alone.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no statement of what state counts as 'archived', and no pointer to alternatives like list_trash or search_nodes. Usage must be entirely inferred from the name.

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

list_nodesList nodesA
Read-onlyIdempotent

List nodes with filters (kind, zone, task state, text query, rectangle, linked to a node) and paging. Returns short summaries with a 160-character text preview; use get_nodes for full text. Coordinates are board units, x/y = top-left, y grows downward.

ParametersJSON Schema
NameRequiredDescriptionDefault
bboxNoOnly nodes intersecting this board rectangle.
sortNo
taskNo
limitNoDefault 100.
queryNoSubstring in name or text.
typesNoOnly these kinds.
offsetNo
zoneIdNo
linkedToNoOnly nodes linked to this node id.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, closed-world semantics, and the description adds non-obvious traits: truncated 160-char previews, paging behavior, and board coordinate semantics. It does not mention default sort or pagination limits beyond what the schema implies.

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?

Three tight sentences: scope and filters first, return-shape and alternative second, coordinate convention last. No filler and no restatement of the name.

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?

No output schema exists, but the description discloses the return shape (short summaries with a 160-char preview) and paging, which is what an agent needs to decide to call it. Minor gaps remain around sort default and maximum paging behavior.

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?

With 56% schema coverage, the description compensates by mapping filter concepts to parameters (kind→types, zone→zoneId, task state→task, text query→query, rectangle→bbox, linked to→linkedTo) and clarifying that coordinates are board units with x/y as top-left and y growing downward — meaning the sparse bbox fields lack. sort/offset/limit behavior is left to the schema.

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 (list) and resource (nodes), enumerates the filter dimensions, and explicitly names get_nodes as the sibling to use for full text. An agent can distinguish it from search_nodes/get_nodes without opening the 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 a concrete routing rule: use get_nodes when full text is needed, since this returns 160-character previews. It also implies filter-based retrieval, but does not state when to prefer list_nodes over search_nodes or list_archive.

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

list_trashList trashA
Read-onlyIdempotent

Entries in the project's Trash (deleted nodes) that restore_from_trash can bring back.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, covering the safety profile. The description adds the semantic context that these are deleted nodes restorable via restore_from_trash, which is useful but not rich behavioral disclosure such as pagination or ordering.

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?

A single, front-loaded sentence with no wasted words. It efficiently conveys the essential concept without redundancy.

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 parameterless read-only list tool with annotations covering safety, the description supplies enough to call it correctly. However, without an output schema it does not describe the returned entries' shape, leaving a minor gap.

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?

There are zero parameters, so the schema baseline is 4. The description adds nothing about parameters, which is appropriate since none exist.

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 identifies the resource precisely as entries in the project's Trash, clarified as deleted nodes, which distinguishes it from list_nodes for active nodes. It lacks an explicit verb, but the title supplies 'List'. It does not differentiate from the sibling list_archive.

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?

The mention that restore_from_trash can bring these entries back implies usage (finding restorable items), but there is no explicit when-to-use statement or exclusion. No alternative like list_archive is named or contrasted.

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

list_zonesList zonesA
Read-onlyIdempotent

Zones (coloured areas that group nodes) with their rectangles and member node ids.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description's only behavioral contribution is naming the returned fields (rectangles, member node ids); it says nothing about ordering, pagination, or scope, so it adds modest value over the annotations.

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?

A single tight sentence with the resource front-loaded and the payload described immediately after. Nothing is wasted and nothing important is buried.

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 no output schema, the description carries the burden of explaining return values, and it does so at a high level (rectangles, member node ids). For a zero-parameter list tool this is largely sufficient, though ordering or pagination behavior is left unstated.

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 tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The schema is empty and the description correctly implies a no-argument, whole-project listing.

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 name plus description identify the resource (zones) and even define it parenthetically as 'coloured areas that group nodes', which is genuinely clarifying. It does not explicitly contrast with siblings like list_nodes or list_links, but the resource is unambiguous and the return content is stated.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus alternatives such as get_nodes, list_nodes, or list_links, and no prerequisites or exclusions. Usage must be inferred entirely from the name.

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

move_nodesMove nodesA

Set exact top-left positions (board units) of nodes. One undoable step.

ParametersJSON Schema
NameRequiredDescriptionDefault
movesYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare the safety profile (not read-only, not destructive, not idempotent), so the bar is lower. The description adds genuinely new behavioral context beyond that: that the whole batch is 'one undoable step' (atomic undo semantics) and that coordinates are in board units. It does not cover failure behavior when a node id is invalid or what happens beyond the 500-item cap.

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?

Two short sentences, front-loaded with the operation and followed by the undo guarantee. No filler; every clause 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?

For a mutation tool with annotations covering safety and no output schema, the description plus annotations give an agent enough to call it correctly, especially the batch-in-one-undo behavior. It stops short of describing coordinate overwrite semantics or error handling for bad ids.

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 0%, so the description has to carry the semantics. It does explain the coordinate units ('board units') and that x/y are the top-left position, which the schema's bare 'number' types do not say, but it does not explain the 'moves' batch wrapper, the per-item id/x/y contract, or the 1..500 item bounds.

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 names a specific verb and resource ('Set exact top-left positions ... of nodes') and adds semantic detail (board units, top-left anchor) that makes the operation unambiguous. It does not explicitly contrast itself with the nearby layout sibling arrange_nodes, which is the main differentiation gap.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites, and no reference to alternatives such as arrange_nodes (auto layout) or update_nodes. An agent must infer from the name and siblings which tool applies.

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

restore_from_trashRestore from trashA

Restore Trash entries by id (as listed by list_trash) to their old place, with their links. One undoable step.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false; the description is consistent with these and adds context annotations cannot express — that restoration puts entries back in their old location with links intact and is a single undoable step. It omits failure behavior for invalid or already-restored ids, keeping it out of the top band.

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?

A single front-loaded sentence with no filler: action, identifier source, effect, and reversibility are all packed in without repetition of the name or title.

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 one required parameter, no output schema, and annotations covering the safety profile, the description supplies what an agent needs to call it correctly. Missing only edge-case guidance on invalid/already-restored ids and any response confirmation detail, which is minor for a single-parameter tool.

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 description coverage is 0%, so the description must carry the load, and it does explain that ids identify Trash entries and where to obtain them (list_trash). It does not clarify batching semantics, duplicate ids, or ordering within the array, so it is not fully compensating.

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 and resource (restore Trash entries) plus the resulting scope: returned to their old place with their links. It also names the sibling that supplies the ids (list_trash), so an agent can distinguish it from delete_nodes, move_nodes, or undo_last_change 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?

It clearly conditions use on ids 'as listed by list_trash' and signals reversibility via 'One undoable step', which implicitly points at undo_last_change as the revert path. It does not spell out when not to use it (e.g., archived items, already-restored ids), so it falls short of a full when/when-not statement.

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

save_projectSave nowA
Idempotent

Write all pending changes to the project folder immediately (hive also saves automatically).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the safety profile (write, idempotent, non-destructive). The description adds meaningful context beyond them: it flushes all *pending* changes, is immediate, and is redundant with automatic saving. It doesn't describe failure modes (e.g., disk errors), but for a zero-argument flush tool this is solid added value.

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?

A single sentence with zero waste; the action is front-loaded and the caveat about automatic saving is compactly bracketed rather than given its own sentence.

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 no-parameter, no-output-schema tool, the description covers the essential behavior and the key caveat that saving is already automatic. Minor gap: no indication of what happens on success/failure or whether it blocks, but little is required here.

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 tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline of 4 applies per the scoring rules.

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?

States a specific verb and resource: 'Write all pending changes to the project folder immediately.' An agent immediately knows this is a manual save/flush operation, distinct from the node/link/zone CRUD siblings. It does not explicitly name a sibling to contrast against, but none of the siblings overlap in function.

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?

'immediately' plus the parenthetical '(hive also saves automatically)' tells the agent both when to call it (to force an immediate flush) and that it is usually unnecessary because auto-save runs. No explicit alternative or exclusion is named, but the when/when-not context is clear.

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

search_nodesSearchA
Read-onlyIdempotent

Search node names, kinds and text with hive's own Search ranking (name matches first). Returns ids, names and a snippet around the match.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoDefault 20.
queryYes
typesNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish the safe read-only, idempotent, closed-world profile. The description adds useful behavior beyond annotations: the ranking order (name matches first) and the shape of the result (ids, names, and a snippet around the match). It does not discuss case sensitivity or query syntax, but for a simple search tool this is solid added context.

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?

Two tight sentences with no filler. The core purpose and ranking behavior are front-loaded, and the return summary follows immediately. Every sentence earns its place.

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?

With no output schema, the description appropriately explains returned fields, and annotations carry the safety profile. However, for a 3-parameter tool with low schema coverage, it leaves the types parameter unclear and does not position the tool against enumeration alternatives like list_nodes or get_nodes.

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

Parameters2/5

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

Schema coverage is only 33%, with just the limit parameter described as 'Default 20.' The description does not explain the required query parameter or the types array. 'Search node names, kinds and text' suggests what is searched but does not clarify that types filters results by node kind, leaving one parameter effectively undocumented.

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?

States a specific verb (Search) and resource (node names, kinds, text), and adds a distinctive ranking detail (name matches first). It does not explicitly differentiate itself from siblings like list_nodes or get_nodes, keeping it just short of a 5.

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?

The description implies the tool is for finding nodes by text, name, or kind, but gives no explicit when-to-use or when-not-to-use guidance. It does not name alternatives such as list_nodes for enumeration, leaving the agent to infer usage from the purpose statement.

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

undo_last_changeUndoA
Destructive

Undo the most recent change in hive. By default only undoes changes made through this MCP server (entries labelled "MCP: …") and refuses if the user changed something since.

ParametersJSON Schema
NameRequiredDescriptionDefault
onlyIfMcpNoDefault true.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already flag this as destructive and non-idempotent, but the description adds the guard-rail semantics that annotations cannot express: default scope is limited to MCP-labelled entries and the call is aborted if the user changed something since. It does not say whether the undone entry is discarded or recoverable, which would be valuable for a destructive tool.

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?

Two sentences, no filler. The core action comes first and the scope/refusal caveats follow immediately, which is the right ordering for a destructive operation.

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 one-optional-parameter tool with no output schema and destructive annotations, this covers action, default behavior, and failure condition. The only meaningful omission is what happens to the reverted change afterward (discarded, trashed, recoverable), which matters given destructiveHint=true.

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% but the schema only says 'Default true' for onlyIfMcp without explaining what the boolean controls. The description supplies that meaning, clarifying that the default restricts undo to MCP-originated changes and implying false widens the scope to any recent change.

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 (undo) and a precisely scoped resource (the most recent change in hive), and immediately narrows the scope to changes made through this MCP server. No sibling tool performs rollback, and the 'MCP:' labelling convention makes the target unambiguous.

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?

It gives a clear condition for use and, more importantly, an explicit refusal condition ('refuses if the user changed something since'), which tells the agent when the call will not succeed. It does not name an alternative tool for the non-MCP case, so it stops short of a full when/when-not/alternative triad.

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

update_nodesUpdate nodesA

Change existing nodes in ONE undoable step: rename, replace or precisely edit the Markdown text (find/replace that must match exactly once, append, prepend), move/resize, colours, glow, header, task state, importance, purposes, moods, zone, kind-specific data. Only the fields you pass change.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds meaningful context beyond those annotations: changes occur in one undoable step, and only fields that are passed are modified. It does not detail permissions or validation behavior, but it provides clear mutation semantics without contradicting the annotations.

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 opening sentence front-loads the core action and atomic behavior, then compactly enumerates supported update categories. The final sentence 'Only the fields you pass change' adds a critical partial-update rule with no wasted words. Dense but well-structured and appropriately sized.

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 complex mutation tool with rich nested schema descriptions and annotations, the description covers purpose, atomicity, partial-update semantics, and the breadth of updatable fields. It need not explain return values since there is no output schema. The main omission is explicit array/ID semantics, which the schema provides, so completeness is strong but not perfect.

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?

The top-level 'updates' parameter has no schema description (0% coverage per context signals), so the description must compensate. It enumerates many updatable aspects and clarifies that only passed fields change, but it omits the array structure, required node id, maxItems limit, and fields such as x/y, accentColor, and headerHidden that are only documented in the nested schema. It partially compensates but leaves clear gaps.

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 and resource: 'Change existing nodes'. The enumeration of update categories (rename, text editing, move/resize, colours, glow, task state, etc.) and the atomic scope ('ONE undoable step') make the intended function unambiguous. It also distinguishes itself from create/delete by explicitly scoping to 'existing nodes'.

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?

The description implies when to use the tool: changing existing nodes, especially in a single undoable step, with partial field updates. However, it gives no explicit routing guidance against siblings such as move_nodes or arrange_nodes, nor does it state when not to use it. Usage is implied rather than spelled out.

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

update_zoneUpdate zoneA

Rename, recolour or move/resize a zone. One undoable step.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
nameNo
rectNo
colorNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false and closed-world, so the safety profile is covered. The description adds a genuinely new behavioral fact beyond the annotations: the edit is a single undoable step, which matters for agents chaining mutations with undo_last_change. It still omits whether omitted fields are preserved (patch vs replace semantics).

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?

Two short sentences, operations listed first and the undo caveat second, with no filler. Every clause adds information.

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 a nested rect object, 0% schema description coverage and no output schema, the description is adequate but thin: it says what fields exist but not the rect units/origin, the hex color convention, or whether unspecified fields are left untouched. Annotations carry safety, so the remaining shortfall is mostly parameter-level.

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 0%, so the description carries the burden and partially meets it by mapping rename→name, recolour→color, move/resize→rect. However it never mentions the required id parameter, nor the expected format of color (hex) or the x/y/width/height shape of rect, so half the parameter semantics remain undocumented.

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 names the resource (zone) and the three concrete mutations it supports: rename, recolour, move/resize. That is a specific verb+resource statement that an agent can act on, though it never explicitly distinguishes itself from sibling zone tools such as create_zone or delete_zones beyond the obvious naming.

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?

Usage is only implied by the tool name and the operations listed; there is no statement of when to choose update_zone over update_nodes or create_zone, no preconditions, and no exclusions. An agent can infer this is the edit path for an existing zone, but nothing in the text confirms that.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 25 tool updatesv0.1.0
    • First observedarrange_nodes
    • First observedcreate_links
    • First observedcreate_nodes
    • First observedcreate_zone
    • First observeddelete_links
    • First observeddelete_nodes
    • First observeddelete_zones
    • First observeddescribe_node_kinds
    • First observedfocus_view
    • First observedget_nodes
    • First observedget_status
    • First observedimport_file
    • First observedlist_archive
    • First observedlist_links
    • First observedlist_nodes
    • First observedlist_trash
    • First observedlist_zones
    • First observedmove_nodes
    • First observedrestore_from_trash
    • First observedsave_project
    • First observedsearch_nodes
    • First observedundo_last_change
    • First observedupdate_links
    • First observedupdate_nodes
    • First observedupdate_zone

TDQS

A3.5/5.0

Scored across 25 tools

Disambiguation4/5

Most tools target clearly distinct resource+action pairs (create/update/delete/move/arrange nodes, CRUD for links and zones, trash/archive handling). A few boundaries blur: move_nodes vs arrange_nodes vs update_nodes (which also moves/resizes), and search_nodes vs list_nodes (which takes a text query) vs get_nodes, though descriptions clarify the intended use.

Naming Consistency4/5

Almost all tools follow a clean snake_case verb_noun pattern (create_nodes, list_links, update_zone, delete_links). The main blemish is pluralization drift within the same resource (create_zone singular vs list_zones/delete_zones plural) and describe_node_kinds, but overall it is predictable and readable.

Tool Count3/5

25 tools is at the heavy end for the apparent scope. The domain (nodes, links, zones, trash, archive, files, view, project) is genuinely rich and most tools earn their place, but full CRUD replicated across nodes/links/zones plus many utility verbs makes the surface feel crowded and could be consolidated.

Completeness4/5

Coverage is strong: full CRUD across nodes, links, and zones, plus trash listing/restore, import, view focus, undo, save, status, kind introspection, and list/get/search. The one notable dead end is archive handling — list_archive exists but there is no restore/unarchive operation, and no permanent delete or empty-trash.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers