Skip to main content
Glama

Dynalist MCP Server

A Model Context Protocol server for Dynalist.io - the infinite document outliner.

Enables Claude and other AI assistants to read, write, and manipulate Dynalist documents programmatically.

Features

Read Operations

  • list_documents - List all documents and folders in your account

  • search_documents - Search documents/folders by name (returns ID, URL, type)

  • read_node_as_markdown - Extract bullet points as Markdown (supports deep links, depth limits, notes)

  • search_in_document - Search content within a document (returns parents + optional children)

  • get_recent_changes - Get nodes created/modified in a time period (with parent context)

Write Operations

  • send_to_inbox - Add items to your Dynalist inbox (supports hierarchical markdown)

  • edit_node - Modify existing nodes (content, note, checkbox, heading, color)

  • insert_node - Insert a single new node

  • insert_nodes_from_markdown - Bulk import from indented markdown/bullet lists

Structure Operations

  • delete_node - Remove a node (optionally with all children)

  • move_node - Move node with explicit parent/index

  • move_node_relative - Move node + subtree relative to another node (after/before/as_child)

Related MCP server: Readwise Reader MCP Server

Setup

1. Get your Dynalist API Token

Visit https://dynalist.io/developer and generate an API token.

2. Install dependencies

npm install
npm run build

3. Configure Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "dynalist": {
      "command": "node",
      "args": ["/FULL/PATH/TO/dynalist-mcp/dist/index.js"],
      "env": {
        "DYNALIST_API_TOKEN": "your_token_here"
      }
    }
  }
}

Usage Examples

read_node_as_markdown with url: "https://dynalist.io/d/abc123#z=xyz789"

Returns Markdown preserving hierarchy:

- Parent item
    - Child item
        - Grandchild with checkbox [x]
    - Another child

Bulk insert from markdown

insert_nodes_from_markdown with:
  file_id: "abc123"
  parent_node_id: "xyz789"
  markdown: "- Item 1\n    - Sub-item\n- Item 2"

Search in document

search_in_document with:
  file_id: "abc123"
  query: "meeting notes"

Add to inbox

send_to_inbox with content: "Remember to review the PR"

Development

npm run build      # Compile TypeScript
npm run dev        # Watch mode
npm run inspector  # Test with MCP Inspector

Testing with MCP Inspector

DYNALIST_API_TOKEN=your_token npx @modelcontextprotocol/inspector node dist/index.js

License

MIT

Available Tools

12 tools
delete_nodeA

Delete a node from a Dynalist document. By default, only the node is deleted and its children move up to the parent. Use include_children=true to delete the node AND all its descendants.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoDynalist URL with node deep link
file_idNoDocument ID (alternative to URL)
node_idYesNode ID to delete
include_childrenNoIf true, delete the node AND all its children/descendants. If false (default), only delete the node (children move up to parent).

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the deletion behavior, including the default action (node deletion with children moving up) and the option to delete descendants, which clarifies the tool's impact. However, it lacks details on permissions, error handling, or confirmation steps, leaving some behavioral aspects uncovered.

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 front-loaded with the core purpose in the first sentence, followed by a concise explanation of the key parameter behavior. Both sentences are necessary and efficient, with no redundant information, making it well-structured and appropriately sized for the tool's complexity.

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?

Given the tool's complexity (a destructive operation with 4 parameters) and no annotations or output schema, the description does a good job covering the essential behavior and parameter usage. However, it could be more complete by addressing potential side effects, error cases, or return values, which are important for a deletion tool without structured output documentation.

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 input schema has 100% description coverage, so the baseline is 3. The description adds value by explaining the semantics of 'include_children' (e.g., 'children move up to the parent'), which complements the schema but does not significantly enhance understanding beyond what the schema already documents for other parameters like 'url' or 'file_id'.

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 specific action ('Delete a node from a Dynalist document') and distinguishes it from siblings like 'edit_node' or 'move_node' by focusing on removal. It specifies the resource (node) and context (Dynalist document), making the purpose unambiguous and distinct.

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 context on when to use the tool (to delete nodes) and includes usage guidance for the 'include_children' parameter, but it does not explicitly mention when to choose this tool over alternatives like 'edit_node' for modifications or prerequisites. This makes it helpful but not fully comparative with siblings.

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

edit_nodeC

Edit an existing node in a Dynalist document

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoDynalist URL with node deep link
file_idNoDocument ID (alternative to URL)
node_idYesNode ID to edit
contentNoNew content text
noteNoNew note text
checkedNoChecked status
checkboxNoWhether to show checkbox
headingNoHeading level (0-3)
colorNoColor label (0-6)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Edit an existing node' implies a mutation operation, but it doesn't specify permissions required, whether changes are reversible, rate limits, or what happens to unspecified fields. This leaves significant gaps for a tool that modifies content.

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 a single, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized and front-loaded, with every word earning its place in conveying the essential 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 mutation tool with 9 parameters, no annotations, and no output schema, the description is insufficient. It doesn't address behavioral aspects like error conditions, what happens when only some fields are provided, or the response format. The agent would need to make assumptions about how this edit operation works in practice.

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 description adds no parameter information beyond what's already in the schema, which has 100% coverage with detailed descriptions for all 9 parameters. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the 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?

The description clearly states the action ('Edit') and resource ('an existing node in a Dynalist document'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'move_node' or 'delete_node' beyond the basic verb, which prevents a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'move_node', 'delete_node', and 'insert_node' available, there's no indication of when editing is appropriate versus other node operations, leaving the agent to guess based on context alone.

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

get_recent_changesA

Get nodes created or modified within a time period. WARNING: Long time periods with active documents can return many words.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoDynalist URL
file_idNoDocument ID (alternative to URL)
sinceYesStart date - ISO string (e.g. '2024-01-15') or timestamp in milliseconds
untilNoEnd date - ISO string or timestamp (default: now)
typeNoFilter by change typemodified
parent_levelsNoHow many parent levels to include for context
sortNoSort order by timestampnewest_first
bypass_warningNoONLY use after receiving a size warning. Do NOT set true on first request.

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively warns about performance implications ('Long time periods with active documents can return many words'), which is crucial context beyond basic functionality. However, it doesn't cover other behavioral aspects like authentication needs, rate limits, or what the return format looks like (though no output schema exists). The description adds meaningful value but isn't comprehensive.

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 extremely concise and front-loaded: the first sentence states the core purpose, and the second provides a critical warning. Every sentence earns its place with no wasted words, making it easy for an agent to parse quickly. The structure is optimal for a tool description.

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?

Given the tool's complexity (8 parameters, temporal filtering, no output schema, and no annotations), the description is adequate but has clear gaps. It covers the basic purpose and a key warning, but lacks details on return values, error conditions, or how it differs from siblings. For a tool with rich parameters but no output schema, more context would be helpful, though the concise warning adds value.

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 100%, so the schema fully documents all 8 parameters. The description doesn't add any parameter-specific semantics beyond what's in the schema (e.g., it doesn't explain 'nodes' or clarify parameter interactions). Baseline 3 is appropriate since the schema does the heavy lifting, though the description could have enhanced understanding of parameters like 'bypass_warning'.

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 clearly states the tool's purpose: 'Get nodes created or modified within a time period.' It specifies the resource (nodes) and action (get) with temporal filtering. However, it doesn't explicitly differentiate from sibling tools like 'search_in_document' or 'list_documents' which might also retrieve document content, though the time-based filtering is distinctive.

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 provides some implicit usage guidance through the WARNING about long time periods returning many words, which suggests when to be cautious. However, it lacks explicit guidance on when to use this tool versus alternatives like 'search_in_document' or 'list_documents', and doesn't mention prerequisites or exclusions. The context is clear but incomplete for optimal agent decision-making.

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

insert_nodeC

Insert a new node into a Dynalist document

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoDynalist URL (document or with parent node deep link)
file_idNoDocument ID (alternative to URL)
parent_idYesParent node ID to insert under
contentYesContent text for the new node
noteNoNote text for the new node
indexNoPosition under parent (-1 = end, 0 = top)
checkboxNoWhether to add a checkbox
headingNoHeading level (0-3)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is an insertion operation but doesn't describe what happens on success/failure, whether it requires specific permissions, if there are rate limits, or how conflicts are handled. The description lacks crucial behavioral context for a mutation tool with no annotation coverage.

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 a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a tool with comprehensive schema documentation and follows the principle of front-loading the essential 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 mutation tool with 8 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, error conditions, side effects, or how it interacts with the document structure. The description should provide more context about the insertion operation's behavior and outcomes given the complexity of the tool.

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 100%, so the schema already documents all 8 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. Baseline 3 is appropriate when the schema does all the parameter documentation work, though the description could have added context about parameter relationships or usage patterns.

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 clearly states the action ('Insert') and resource ('new node into a Dynalist document'), making the purpose immediately understandable. It distinguishes from siblings like 'edit_node' or 'delete_node' by specifying creation rather than modification or removal. However, it doesn't explicitly differentiate from 'insert_nodes_from_markdown' which handles multiple nodes from markdown format.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'insert_node' over 'insert_nodes_from_markdown' for single vs. multiple nodes, or when editing vs. inserting is appropriate. There's no context about prerequisites, document state, or typical use cases.

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

insert_nodes_from_markdownC

Insert multiple nodes from indented markdown/text. Supports both '- bullet' format and plain indented text. Preserves hierarchy.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesDynalist URL - document or node (with #z=nodeId) to insert under
contentYesIndented text with bullets. Supports '- text' or plain indented text.
positionNoWhere to insert under the parent nodeas_last_child

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool 'inserts multiple nodes' (implying a write/mutation operation) and preserves hierarchy, but doesn't cover permissions needed, error conditions, rate limits, or what happens on failure. This is a significant gap for a mutation 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?

The description is extremely concise (two sentences) with zero wasted words. It's front-loaded with the core purpose and efficiently covers format support and hierarchy preservation.

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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns, error handling, or important behavioral constraints. The 100% schema coverage helps with parameters, but overall context is incomplete for safe agent usage.

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 100%, so the schema already documents all three parameters thoroughly. The description adds minimal value by mentioning 'indented text with bullets' for the content parameter, but doesn't provide additional syntax examples or format details beyond what the schema provides.

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 clearly states the verb ('insert multiple nodes') and resource ('from indented markdown/text'), specifying it handles both bullet and plain indented formats while preserving hierarchy. However, it doesn't explicitly differentiate from sibling 'insert_node', which likely inserts single nodes rather than multiple from markdown.

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?

The description provides no guidance on when to use this tool versus alternatives like 'insert_node' or other content manipulation tools. It mentions supported formats but doesn't specify use cases, prerequisites, or exclusions.

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

list_documentsB

List all documents and folders in your Dynalist account

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool lists resources but doesn't describe what 'list' entails (e.g., format, pagination, sorting, or whether it's read-only). For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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 a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.

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?

Given no annotations, no output schema, and a simple but undocumented behavior, the description is incomplete. It doesn't explain what the tool returns (e.g., list structure, fields) or any operational constraints, which is inadequate for a tool that interacts with user data.

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 has 0 parameters with 100% description coverage, so the baseline is 4. The description doesn't need to add parameter information, and it appropriately doesn't mention any parameters, which aligns with 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?

The description clearly states the action ('List') and target resources ('all documents and folders in your Dynalist account'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'search_documents' or 'get_recent_changes', which prevents a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives like 'search_documents' or 'get_recent_changes'. It lacks any context about use cases, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.

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

move_nodeC

Move a node to a different location in a Dynalist document

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoDynalist URL
file_idNoDocument ID (alternative to URL)
node_idYesNode ID to move
parent_idYesNew parent node ID
indexNoPosition under new parent (-1 = end, 0 = top)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool moves a node but doesn't explain critical aspects like whether this requires specific permissions, if the move is reversible, potential side effects on document structure, or error handling. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy to understand at a glance while fitting the tool's complexity appropriately.

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?

Given the tool's mutation nature, lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral traits like permissions or reversibility, usage context relative to siblings, or return values. For a tool that modifies document structure, this leaves too many unknowns for effective agent use.

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 100%, so the schema already documents all parameters (url, file_id, node_id, parent_id, index) with descriptions. The description adds no additional meaning beyond implying movement involves 'node' and 'location,' which is redundant with the schema. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

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 clearly states the verb ('Move') and resource ('a node'), specifying the action and target. It distinguishes the tool by mentioning 'to a different location in a Dynalist document,' which implies structural changes. However, it doesn't explicitly differentiate from sibling tools like 'move_node_relative,' which might handle similar operations with different parameters, leaving some ambiguity.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing valid node IDs, or contrast with siblings like 'move_node_relative' or 'edit_node' for similar tasks. Without this context, users might struggle to choose the correct tool in practice.

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

move_node_relativeA

Move a node (and all its children) to a new position relative to a reference node. This is the intuitive way to reorganize your outline - just specify where you want the node to go.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_urlYesURL of the node to move (with deep link #z=nodeId). The entire subtree (node + all descendants) will be moved.
reference_urlYesURL of the reference node that determines the target location
positionYesWhere to place the node relative to the reference: 'after' = immediately after the reference (same parent, same level), 'before' = immediately before the reference (same parent, same level), 'as_first_child' = as the first child inside the reference node, 'as_last_child' = as the last child inside the reference node

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that the operation moves the entire subtree (node + descendants), which is valuable behavioral context. However, it doesn't mention permissions needed, whether changes are reversible, or any rate limits/constraints for this mutation operation.

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, zero waste. The first sentence states the core functionality with key details. The second sentence provides usage context efficiently. Every word 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 mutation tool with no annotations and no output schema, the description is adequate but has gaps. It explains what the tool does and the subtree behavior, but doesn't cover error conditions, response format, or prerequisites. Given the complexity of moving nodes in a hierarchy, more behavioral context would be helpful.

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 100%, so the schema already documents all three parameters thoroughly. The description adds minimal value beyond the schema - it reinforces that positioning is 'relative' but doesn't provide additional syntax, format, or constraint details that aren't already in the parameter descriptions.

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 verb ('move'), resource ('node'), and scope ('and all its children') with specific positioning ('relative to a reference node'). It distinguishes from sibling tools like 'move_node' (which likely moves to absolute positions) by emphasizing the relative positioning approach.

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 context for when to use this tool ('the intuitive way to reorganize your outline') and implies it's for relative positioning versus absolute positioning. However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings.

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

read_node_as_markdownA

Read a Dynalist document or specific node and return it as Markdown. Provide either a URL (with optional #z=nodeId deep link) or file_id + node_id. WARNING: Large documents may return many words - use max_depth to limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoDynalist URL (e.g., https://dynalist.io/d/xxx#z=yyy)
file_idNoDocument ID (alternative to URL)
node_idNoNode ID to start from (optional, reads entire doc if not provided)
max_depthNoMaximum depth to traverse (optional, unlimited if not set) - USE THIS TO LIMIT OUTPUT SIZE
include_notesNoInclude notes as sub-bullets
include_checkedNoInclude checked/completed items
bypass_warningNoONLY use after receiving a size warning. Do NOT set true on first request.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it warns about potential large outputs, explains how to limit output size with max_depth, and provides important usage guidance for bypass_warning. It doesn't mention rate limits, authentication needs, or error conditions, but covers the most critical operational aspects.

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 perfectly front-loaded with the core purpose, followed by parameter guidance and a critical warning. Every sentence earns its place: the first states what the tool does, the second explains input options, and the third provides essential operational guidance. No wasted words.

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 read operation with no annotations and no output schema, the description provides good coverage of the tool's behavior and limitations. It addresses the most critical concern (output size management) and gives practical parameter guidance. The main gap is lack of information about the return format structure beyond 'Markdown' - but given this is a conversion tool, that may be sufficient.

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 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal value beyond the schema - it mentions the URL format with optional deep link and reiterates the max_depth purpose, but doesn't provide additional semantic context about parameter interactions or edge cases.

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 specific action ('Read a Dynalist document or specific node') and output format ('return it as Markdown'), distinguishing it from siblings like edit_node or delete_node which perform modifications. It explicitly mentions the resource type (Dynalist document/node) and transformation (to Markdown).

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 context for when to use this tool (reading documents/nodes as Markdown) and includes a practical warning about large documents. However, it doesn't explicitly mention when NOT to use it or name specific alternatives among the sibling tools (e.g., search_in_document for finding content without full conversion).

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

search_documentsB

Search for documents and folders by name. Returns matching items with their ID, title, URL, and type.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesText to search for in document/folder names (case-insensitive)
typeNoFilter by type: 'document', 'folder', or 'all'all

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the return format (ID, title, URL, type) but lacks details on permissions, rate limits, pagination, or error handling. For a search tool with zero annotation coverage, this is insufficient to ensure safe and effective use.

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 concise and front-loaded, consisting of two sentences that directly state the tool's function and return values without unnecessary details. Every sentence earns its place by providing essential information efficiently.

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?

Given the tool's moderate complexity (search operation with 2 parameters) and no output schema, the description is minimally adequate. It covers the basic purpose and return format but lacks behavioral context and usage guidelines. Without annotations, it should do more to compensate, but it meets the bare minimum for a simple tool.

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 100%, so the schema fully documents both parameters ('query' and 'type'). The description adds no additional meaning beyond what's in the schema, such as search syntax or performance implications. Baseline 3 is appropriate when the schema does all the work.

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 clearly states the tool's purpose: 'Search for documents and folders by name.' It specifies the verb ('search') and resource ('documents and folders'), and mentions what it returns. However, it doesn't explicitly differentiate from sibling tools like 'list_documents' or 'search_in_document', which would be needed for a score of 5.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools such as 'list_documents' (which might list all documents without search) or 'search_in_document' (which might search within document content), leaving the agent without context for tool selection.

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

search_in_documentB

Search for text in a Dynalist document. Returns matching nodes with optional parent context and children. WARNING: Many matches with parents/children can return many words.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoDynalist URL
file_idNoDocument ID (alternative to URL)
queryYesText to search for (case-insensitive)
search_notesNoAlso search in notes
parent_levelsNoHow many parent levels to include (0 = none, 1 = direct parent, 2+ = ancestors)
include_childrenNoInclude direct children (level 1) of each match
bypass_warningNoONLY use after receiving a size warning. Do NOT set true on first request.

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the search is case-insensitive (implied from schema), returns matching nodes with optional context, and warns about potential large outputs. However, it doesn't mention authentication requirements, rate limits, error conditions, or what happens when no matches are found. The WARNING about size is helpful but incomplete.

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?

The description is appropriately concise with two sentences. The first sentence states the core functionality, and the second provides an important operational warning. No wasted words, though it could be slightly more structured by separating purpose from behavioral notes.

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 search tool with 7 parameters, no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose and one important behavioral warning, but lacks information about output format, error handling, authentication, and comparison with sibling tools. The 100% schema coverage helps, but the description itself is incomplete for a complex tool.

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 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal value beyond what's in the schema - it mentions 'optional parent context and children' which corresponds to 'parent_levels' and 'include_children' parameters, but doesn't provide additional semantic context. Baseline 3 is appropriate when schema does the heavy lifting.

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 clearly states the tool's purpose: 'Search for text in a Dynalist document. Returns matching nodes with optional parent context and children.' It specifies the verb ('search'), resource ('Dynalist document'), and output characteristics. However, it doesn't explicitly differentiate from sibling 'search_documents' tool, which appears to search across documents rather than within one.

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?

The description provides no guidance on when to use this tool versus alternatives like 'search_documents' or other document manipulation tools. The WARNING about many matches is operational rather than usage guidance. There's no mention of prerequisites, typical use cases, or comparison with sibling tools.

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

send_to_inboxC

Send items to your Dynalist inbox. Supports indented markdown/bullets for hierarchical content.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe text content - can be single line or indented markdown with '- bullets'
noteNoOptional note for the first/root item
checkboxNoWhether to add checkboxes to items

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the tool sends items to an inbox and supports markdown formatting, but lacks details on permissions needed, rate limits, whether the operation is idempotent, or what happens on failure. This is a significant gap for a mutation tool with zero annotation coverage.

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?

The description is a single, efficient sentence that front-loads the core purpose and adds a useful detail about format support. Every part earns its place, though it could be slightly more structured for clarity.

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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, or behavioral traits like side effects. Given the complexity of sending data to an inbox, more context is needed to be fully helpful.

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 100%, so the schema already documents all three parameters. The description adds context about hierarchical content and markdown/bullets, which relates to the 'content' parameter, but doesn't provide additional syntax or format details beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.

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 clearly states the action ('Send items') and target resource ('your Dynalist inbox'), with specific mention of the hierarchical content format. However, it doesn't explicitly differentiate from sibling tools like 'insert_node' or 'insert_nodes_from_markdown' that might also add content to Dynalist.

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?

The description mentions 'Supports indented markdown/bullets for hierarchical content,' which implies usage for structured content, but provides no explicit guidance on when to use this tool versus alternatives like 'insert_node' or 'insert_nodes_from_markdown.' No context about prerequisites or exclusions is given.

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

TDQS

A3.7/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific Dynalist operations, such as node manipulation (delete, edit, insert, move), document management (list, search), and content handling (read as markdown, send to inbox). No tools overlap in functionality, making it easy for an agent to select the correct one based on the task.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case, such as delete_node, edit_node, list_documents, and search_documents. This uniformity makes the tool set predictable and easy to understand, enhancing usability for agents.

Tool Count5/5

With 12 tools, the server is well-scoped for managing Dynalist documents and nodes, covering core operations like CRUD for nodes, document listing and searching, and content import/export. Each tool serves a specific, necessary function without redundancy or bloat.

Completeness5/5

The tool set provides complete coverage for the Dynalist domain, including full CRUD/lifecycle operations for nodes (create, read, update, delete, move), document management (list, search), and advanced features like markdown conversion and inbox integration. No obvious gaps exist that would hinder agent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/cristip73/dynalist-mcp'

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