Skip to main content
Glama

get_outline

Extract and display the table of contents from loaded documents to understand document structure and navigate content efficiently.

Instructions

Get document outline/table of contents.

Tips: First use this tool to understand document structure after you load a document. Args: doc_id: Document identifier max_depth: Maximum heading depth to include, defaults to 3 Returns: Formatted document outline

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
doc_idYes
max_depthNo

Implementation Reference

  • server.py:54-67 (handler)
    MCP tool handler for 'get_outline'. This is the function executed when the tool is called, decorated with @mcp.tool() for automatic registration. It delegates to the navigator's implementation.
    @mcp.tool() def get_outline(doc_id: str, max_depth: int = 3) -> str: """Get document outline/table of contents. Tips: First use this tool to understand document structure after you load a document. Args: doc_id: Document identifier max_depth: Maximum heading depth to include, defaults to 3 Returns: Formatted document outline """ return navigator.get_outline(doc_id, max_depth)
  • Core helper function in DocumentNavigator that implements the outline generation logic by recursively traversing the document's node tree, collecting headings up to the specified max_depth, and formatting them as a string.
    def get_outline(self, doc_id: str, max_depth: int = 3) -> str: """Get document outline.""" document = self.get_document(doc_id) if not document: return f"Document '{doc_id}' not found" # Create a simple outline from document nodes outline = [] def build_outline(node: DocumentNode, depth: int = 0) -> None: if depth > max_depth: return if node.type == "heading" and node.title: indent = " " * (depth - 1) if depth > 0 else "" outline.append(f"{indent}#{node.id} - {node.title}") for child in node.children: build_outline(child, depth + 1 if node.type == "heading" else depth) if document.root: build_outline(document.root) return "\n".join(outline)

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/shenyimings/DocNav-MCP'

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