search_pdf_next_page
Retrieve the next page of PDF search results using an existing search session ID to continue browsing through matched content.
Instructions
Get next page of search results.
Args:
search_id: Search session ID from previous search
Returns:
Next page of search results or error messageInput Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| search_id | Yes |
Implementation Reference
- pdf_tools_mcp/server.py:710-747 (handler)The `search_pdf_next_page` function retrieves the next page of search results for a given search session ID. It validates the session, calculates the page offset, and formats the results for the user.
async def search_pdf_next_page(search_id: str) -> str: """Get next page of search results. Args: search_id: Search session ID from previous search Returns: Next page of search results or error message """ with cache_lock: session = search_sessions.get(search_id) if not session: return f"Error: Search session '{search_id}' not found or expired" session.last_accessed = datetime.now() total_pages = (len(session.results) + session.page_size - 1) // session.page_size if session.current_page >= total_pages: return f"Already on last page ({session.current_page}/{total_pages})" session.current_page += 1 start_idx = (session.current_page - 1) * session.page_size end_idx = min(start_idx + session.page_size, len(session.results)) current_results = session.results[start_idx:end_idx] result = f"Search ID: {search_id}\n" result += f"Pattern: {session.pattern}\n" result += f"Total matches: {session.total_results}\n" result += f"Page: {session.current_page}/{total_pages}\n\n" for i, match in enumerate(current_results, 1): result += f"Match {start_idx + i}:\n" result += f" Page: {match.page_number}\n" result += f" Text: \"{match.text}\"\n" result += f" Context: ...{match.context_before}[{match.text}]{match.context_after}...\n\n" return result - pdf_tools_mcp/server.py:709-709 (registration)The `search_pdf_next_page` tool is registered using the `@mcp.tool()` decorator in `pdf_tools_mcp/server.py`.
@mcp.tool()