#!/usr/bin/env python3 """Test pagination system for MCP Office Tools convert_to_markdown.""" import inspect import sys def test_pagination(): """Test the pagination system integration.""" print("šŸ”§ Testing MCP Office Tools Pagination Integration") print("=" * 60) try: # Import the server components from mcp_office_tools.server import app from mcp_office_tools.mixins.word import WordMixin from mcp_office_tools.pagination import DocumentPaginationManager, paginate_document_conversion print("āœ… Successfully imported all pagination components:") print(" • DocumentPaginationManager") print(" • paginate_document_conversion") print(" • WordMixin with pagination") # Check if WordMixin has the convert_to_markdown method word_mixin = WordMixin() convert_method = getattr(word_mixin, 'convert_to_markdown', None) if convert_method: print("āœ… Found convert_to_markdown method") # Check method signature for pagination parameters sig = inspect.signature(convert_method) pagination_params = [] for param_name, param in sig.parameters.items(): if param_name in ['limit', 'cursor_id', 'session_id', 'return_all']: pagination_params.append(param_name) print(f"āœ… Pagination parameters found: {', '.join(pagination_params)}") else: print("āŒ convert_to_markdown method not found") return False print("\nšŸŽÆ Pagination System Integration Complete!") print("šŸ“Š Features:") print(" • Automatic large document detection (>25k tokens)") print(" • Cursor-based navigation through document sections") print(" • Session-isolated pagination state") print(" • Configurable page sizes and limits") print(" • Bypass option for small documents") print(" • Token estimation and response size management") return True except ImportError as e: print(f"āŒ Import error: {e}") return False except Exception as e: print(f"āŒ Unexpected error: {e}") return False if __name__ == "__main__": success = test_pagination() sys.exit(0 if success else 1)