Skip to main content
Glama

prisma-cloud-docs-mcp-server

search_all_docs

Search and retrieve information across all Prisma Cloud documentation sites. Simplify finding relevant details by entering a specific query.

Instructions

Search across all Prisma Cloud documentation sites.

Input Schema

NameRequiredDescriptionDefault
queryYes

Input Schema (JSON Schema)

{ "properties": { "query": { "title": "Query", "type": "string" } }, "required": [ "query" ], "title": "search_all_docsArguments", "type": "object" }

Implementation Reference

  • The main handler function for the 'search_all_docs' tool. It is registered using the @mcp.tool() decorator and delegates the search logic to the DocumentationIndexer.search_docs method, returning results as JSON.
    @mcp.tool() async def search_all_docs(query: str) -> str: """Search across all Prisma Cloud documentation sites.""" results = await indexer.search_docs(query) return json.dumps(results, indent=2)
  • Core search logic in DocumentationIndexer class that performs keyword-based search on cached pages, computes relevance scores, extracts snippets, and returns 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 for caching indexed documentation pages, including expiration logic used by the search functionality.
    @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
  • src/main.py:207-212 (registration)
    Registration of the tool via FastMCP's @mcp.tool() decorator, which handles schema inference from the function signature.
    @mcp.tool() async def search_all_docs(query: str) -> str: """Search across all Prisma Cloud documentation sites.""" results = await indexer.search_docs(query) 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