Skip to main content
Glama

get_node_content

Read-only

Read original Markdown for specific document nodes with line numbers and pagination, so you can cite exact source ranges instead of reconstructing content.

Instructions

Read the original Markdown of one or more nodes, every line prefixed with its line number in the file ("123│ "). Reading a node returns its whole line range INCLUDING all of its subsections, so prefer the most specific (leaf) nodes for precision and read a parent only when you need the entire section. Copy each node_id verbatim from get_document_structure() or search_documents(); never construct one. Long content is split into parts: increment part until pagination.has_more is false. Cite what you use as [doc_path, L-] with the line numbers shown.

Tool call template

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

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "doc_path": "<doc_path>",
      "node_ids": "<node_ids>"
    },
    "name": "get_node_content"
  }
}

Input Schema

NameRequiredDescriptionDefault
partNoPart number for pagination (1-based, default 1). Increment until the response's `pagination.has_more` becomes false.
doc_pathYesLibrary-relative path of the document, copied verbatim from a browse_documents() or search_documents() result (case-sensitive, include the extension). Example: "guides/setup.md". Never construct one.
node_idsYesIds of the nodes to read (1-20), each copied verbatim from a get_document_structure() or search_documents() result. Never construct one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered and the description is free to spend its words elsewhere. It does so usefully: subsection-inclusive ranges, the line-number prefix on every returned line, and the pagination protocol (increment `part` until `pagination.has_more` is false) are disclosed behaviors an agent would otherwise have to discover by trial. It does not state hard limits on content size or how multi-node responses are ordered, which keeps it just short of 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.

Conciseness5/5

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

Four sentences, each carrying a distinct operational fact: output format, range expansion, id provenance, pagination loop, plus a citation convention. Nothing is repeated from the schema verbatim except the pagination term, which is used to make the loop actionable.

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, but the description effectively supplies one by describing the line-prefixed Markdown format, the pagination signal, and a citation format for downstream use. For a three-parameter read tool with readOnlyHint set, nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3; the description still adds real meaning by clarifying that a single node_id expands to the full line range covering descendants, which affects how many ids to pass. The `part` semantics are restated from the schema but the linkage to `pagination.has_more` as a stopping condition is spelled out as a loop instruction.

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 (read the original Markdown of nodes) and immediately specifies the output shape: every line prefixed with its line number in the "123│ " format. It also disambiguates scope from siblings by noting that a node read includes all subsections, which is the key distinction from a whole-document read.

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

Usage Guidelines5/5

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

Gives explicit routing advice: prefer the most specific (leaf) nodes for precision and read a parent only when the entire section is needed. It also names the upstream tools (get_document_structure, search_documents) that supply valid node_ids and forbids constructing them, which is a concrete prerequisite rather than implied guidance.

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