Skip to main content
Glama

search_document

Find specific content within documents using search queries to locate relevant information quickly.

Instructions

Search for specific content within a document.

Args: doc_id: Document identifier query: Search term or phrase Returns: Formatted search results with context

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
doc_idYes
queryYes

Implementation Reference

  • Core handler implementation of search_document in DocumentNavigator class. Performs recursive traversal of document nodes, searches for query matches in content, associates with nearest heading for context, formats top 5 results.
    def search_document(self, doc_id: str, query: str) -> str: """Search document and return formatted results.""" document = self.get_document(doc_id) if not document: return f"Document '{doc_id}' not found" # Perform search using document's search functionality results = [] query_lower = query.lower() def search_node(node: DocumentNode) -> None: if query_lower in node.content.lower(): # Find nearest heading as context parent = node.parent while parent and parent.type != "heading": parent = parent.parent section_title = parent.title if parent else "Document Root" from .models import SearchResult results.append( SearchResult( node_id=node.id, section=section_title, section_id=parent.id if parent else "root", content=node.content, type=node.type, line_number=node.attributes.get("line_number"), ) ) for child in node.children: search_node(child) if document.root: search_node(document.root) if not results: return f"No results found for '{query}'" output = f"Found {len(results)} results for '{query}':\n\n" for i, result in enumerate(results[:5], 1): # Limit to first 5 results output += f"{i}. In section '{result.section}' (#{result.section_id}):\n" output += f" {result.content[:100]}...\n\n" return output
  • server.py:85-96 (registration)
    MCP tool registration for 'search_document'. Thin wrapper that delegates to the navigator's search_document method. Input schema defined by function signature and docstring.
    @mcp.tool() def search_document(doc_id: str, query: str) -> str: """Search for specific content within a document. Args: doc_id: Document identifier query: Search term or phrase Returns: Formatted search results with context """ return navigator.search_document(doc_id, query)

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