Skip to main content
Glama
clarkemn

prisma-cloud-docs-mcp-server

search_prisma_docs

Search Prisma Cloud documentation to find answers to technical questions about configuration, security, and deployment.

Instructions

Search Prisma Cloud documentation

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYes

Implementation Reference

  • The handler function for the 'search_prisma_docs' tool, registered with @mcp.tool(). It searches Prisma Cloud documentation using the DocumentationIndexer and returns JSON-formatted results.
    @mcp.tool()
    async def search_prisma_docs(query: str) -> str:
        """Search Prisma Cloud documentation"""
        results = await indexer.search_docs(query, site='prisma_cloud')
        return json.dumps(results, indent=2)
  • Duplicate handler function for the 'search_prisma_docs' tool in the HTTP server variant, identical implementation.
    @mcp.tool()
    async def search_prisma_docs(query: str) -> str:
        """Search Prisma Cloud documentation"""
        results = await indexer.search_docs(query, site='prisma_cloud')
        return json.dumps(results, indent=2)
  • Core helper method in DocumentationIndexer that performs the actual search: computes relevance scores for cached pages based on title and content matches, generates snippets, sorts by score, and limits to top 10 results.
    async def search_docs(self, query: str, site: str = None) -> List[Dict]:
        """Search indexed documentation"""
        if not self.cached_pages:
            return []
        
        query_lower = query.lower()
        results = []
        
        for url, page in self.cached_pages.items():
            # Filter by site if specified
            if site and page.site != site:
                continue
            
            # Calculate relevance score
            score = 0
            title_lower = page.title.lower()
            content_lower = page.content.lower()
            
            # Higher score for title matches
            if query_lower in title_lower:
                score += 10
                # Even higher for exact title matches
                if query_lower == title_lower:
                    score += 20
            
            # Score for content matches
            content_matches = content_lower.count(query_lower)
            score += content_matches * 2
            
            # Score for partial word matches in title
            query_words = query_lower.split()
            for word in query_words:
                if word in title_lower:
                    score += 5
                if word in content_lower:
                    score += 1
            
            if score > 0:
                # Extract snippet around first match
                snippet = self._extract_snippet(page.content, query, max_length=200)
                
                results.append({
                    'title': page.title,
                    'url': page.url,
                    'site': page.site,
                    'snippet': snippet,
                    'score': score
                })
        
        # Sort by relevance score (highest first) and limit results
        results.sort(key=lambda x: x['score'], reverse=True)
        return results[:10]
  • Dataclass used to cache indexed documentation pages with expiration logic, used by the indexer for search.
    @dataclass
    class CachedPage:
        title: str
        content: str
        url: str
        site: str
        timestamp: float
        ttl: float = 3600  # 1 hour default TTL
        
        @property
        def is_expired(self) -> bool:
            return time.time() > self.timestamp + self.ttl
  • server.py:191-195 (registration)
    Registration of the tool via @mcp.tool() decorator in FastMCP framework.
    @mcp.tool()
    async def search_prisma_docs(query: str) -> str:
        """Search Prisma Cloud documentation"""
        results = await indexer.search_docs(query, site='prisma_cloud')
        return json.dumps(results, indent=2)

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/clarkemn/prisma-cloud-docs-mcp-server'

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