get_heading_contents
Retrieve raw markdown body content under a specific heading in an Obsidian note by providing its full heading path (e.g., H1::H2). Excludes frontmatter and metadata, giving you just the section text.
Instructions
Returns the raw markdown body content under the targeted heading. Frontmatter, tags, and file metadata are not included — use get_file_contents for the whole note or get_frontmatter_field for individual frontmatter values. Heading targets MUST use the full path of the heading: at least two non-empty segments separated by "::" (i.e., the H1::H2[::H3...] form). Top-level headings (no parent) are unreachable through this tool — use get_file_contents and slice the note client-side. Headings whose literal text contains "::" are also unreachable through this tool (the validator treats every "::" as a path separator and there is no escape syntax) — use get_file_contents in that case as well.
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": {
"filepath": "<filepath>",
"heading": "<heading>"
},
"name": "get_heading_contents"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| heading | Yes | Full heading path: at least two non-empty segments separated by '::' (i.e., the H1::H2[::H3...] form). Top-level headings and headings whose literal text contains '::' are unreachable through this tool — fall back to get_file_contents for those cases. | |
| vaultId | No | Optional vault ID (defaults to configured default vault). | |
| filepath | Yes | Path to the file (relative to vault root). |