Read a section of an agent doc page
read_sectionRead a page found by search_docs.
Without a heading: the page's description and outline (top-level sections with subsection counts). With a heading: that section's full text, including its subsections; continue long sections with next_offset. outline_depth=3 also lists subsections; use it only on long pages to find one specific subsection.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Page URL exactly as search_docs returned it. | |
| offset | No | Character offset into the section; pass the previous next_offset to continue a long section. | |
| heading | No | Heading to read, as listed in the outline (leading #s optional). Exact text first, case-insensitive, then a unique partial match; use 'Parent > Heading' when two headings share a name. Leave unset to get the page's outline. | |
| outline_depth | No | Outline depth when no heading is given: 2 lists top-level sections with subsection counts, 3 also lists the subsections. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Page URL. | |
| text | Yes | Section markdown from its heading to the next heading of the same or higher level, at most 8,000 characters per call. | |
| title | Yes | Page title. | |
| offset | Yes | Offset of `text` within the section. | |
| heading | Yes | Path of the section returned, e.g. 'Hooks > PreToolUse'; null when only the outline was asked for. | |
| outline | Yes | Top-level sections as '## Text (N subsections)' when no heading was asked for (at most 40 lines, then '+N more sections'); empty otherwise. | |
| description | Yes | One sentence on what the page is. | |
| next_offset | Yes | Pass as offset to read the rest; null when nothing is left. | |
| total_chars | Yes | Length of the whole section. |