Skip to main content
Glama
anton-prosterity

Documentation Search MCP Server

filtered_search

Search documentation with advanced filtering options for query, library, content type, difficulty level, and code examples to pinpoint relevant information efficiently.

Instructions

Search with advanced filtering options. Args: query: The search query library: The library to search in content_type: Filter by content type ("tutorial", "reference", "example", "guide") difficulty_level: Filter by difficulty ("beginner", "intermediate", "advanced") has_code_examples: Filter for content with code examples (true/false) Returns: Filtered search results matching specified criteria

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
content_typeNo
difficulty_levelNo
has_code_examplesNo
libraryYes
queryYes

Implementation Reference

  • Main handler function for the filtered_search tool. Performs semantic search and applies user-specified filters to return refined results.
    async def search_with_filters( self, query: str, library: str, filters: SearchFilters ) -> List[SearchResult]: """Perform search with applied filters""" # Get base search results results = await self.smart_search.semantic_search(query, library) # Apply filters filtered_results = [] for result in results: if self.passes_filters(result, filters): filtered_results.append(result) return filtered_results
  • Input schema defining filter options for content type, difficulty, code examples, reading time, and language.
    @dataclass class SearchFilters: """Filters for refining search results""" content_type: Optional[str] = None # "tutorial", "reference", "example" difficulty_level: Optional[str] = None # "beginner", "intermediate", "advanced" has_code_examples: Optional[bool] = None max_reading_time: Optional[int] = None # in minutes language: Optional[str] = None # programming language
  • Helper function that checks whether a search result matches the applied filters.
    def passes_filters(self, result: SearchResult, filters: SearchFilters) -> bool: """Check if a result passes all filters""" if filters.content_type and result.content_type != filters.content_type: return False if ( filters.difficulty_level and result.difficulty_level != filters.difficulty_level ): return False if filters.has_code_examples is not None: has_code = result.code_snippets_count > 0 if filters.has_code_examples != has_code: return False if ( filters.max_reading_time and result.estimated_read_time > filters.max_reading_time ): return False # Language filter would need more sophisticated detection # For now, skip language filtering return True
  • Global instance creation of the FilteredSearch tool handler, wrapping the SmartSearch instance.
    filtered_search = FilteredSearch(smart_search)

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/anton-prosterity/documentation-search-mcp'

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