Skip to main content
Glama
page_utils.py1.45 kB
""" Page range parsing utilities. """ from typing import List, Optional def parse_page_range(page_range: Optional[str], total_pages: int = 1000) -> List[int]: """Parse page range string and return list of page numbers. Args: page_range: Optional string specifying pages to include. Accepts comma-separated values with single pages (e.g., "5") or ranges (e.g., "1-5"). If None, defaults to first 20 pages. total_pages: Maximum number of pages available (default: 1000). Returns: Sorted list of unique page numbers within valid range. Examples: >>> parse_page_range("1-3,5", 10) [1, 2, 3, 5] >>> parse_page_range(None, 10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> parse_page_range("1-100", 10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Capped at total_pages """ if not page_range: return list(range(1, min(total_pages + 1, 21))) pages = [] parts = page_range.split(",") for part in parts: part = part.strip() if "-" in part: start, end = part.split("-", 1) start = int(start.strip()) end = int(end.strip()) pages.extend(range(start, min(end + 1, total_pages + 1))) else: page_num = int(part.strip()) if 1 <= page_num <= total_pages: pages.append(page_num) return sorted(list(set(pages)))

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/AI-Riksarkivet/oxenstierna'

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