Skip to main content
Glama
search_display_service.py2.7 kB
""" Search display service for formatting search results. """ from ..formatters import PlainTextFormatter from ..models import SearchResult class SearchDisplayService: """Display service specifically for search operations.""" def __init__(self, formatter=None): """ Initialize the search display service. Args: formatter: Formatter instance to use (PlainTextFormatter or RichConsoleFormatter) If None, defaults to PlainTextFormatter """ self.formatter = formatter or PlainTextFormatter() def format_search_results( self, search_result: SearchResult, maximum_documents_to_display: int = 20, ): """ Format search results by delegating to the formatter. Args: search_result: SearchResult containing hits and metadata maximum_documents_to_display: Maximum number of documents to display Returns: Formatted search results (type depends on formatter: Table for Rich, str for Plain) """ return self.formatter.format_search_results(search_result, maximum_documents_to_display) def format_search_results_with_summary( self, search_result: SearchResult, max_display: int, keyword: str, ) -> list: """Format complete search results with summary, table, and examples. Args: search_result: SearchResult containing hits and metadata max_display: Maximum number of documents to display keyword: Search keyword for browse examples Returns: List of formatted output items (strings, tables, etc.) """ output = [] formatted_table = self.format_search_results(search_result, max_display) if not formatted_table: return output # Get search summary and format it summary = search_result.extract_summary() summary_lines = self.formatter.format_search_summary(summary) output.extend(summary_lines) # Add the table output.append(formatted_table) # For Rich tables (not strings), add browse examples and remaining documents if not isinstance(formatted_table, str): grouped_hits = summary.grouped_hits example_lines = self.formatter.format_browse_example(grouped_hits, keyword) output.extend(example_lines) total_groups = len(grouped_hits) remaining_message = self.formatter.format_remaining_documents(total_groups, max_display) if remaining_message: output.append(remaining_message) return output

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