tool_docs_get
Retrieve raw markdown documentation for Microsoft Sentinel MCP server paths to access technical content and implementation details.
Instructions
Return the raw markdown for a given documentation path.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kwargs | Yes |
Implementation Reference
- tools/tool_docs_tools.py:58-106 (handler)The ToolDocsGetTool class implements the core logic for the 'tool_docs_get' tool. It inherits from MCPToolBase and defines the 'run' method which extracts the 'path' parameter, validates it, reads the markdown file from the DOC_ROOT directory, and returns the content or an error.class ToolDocsGetTool(MCPToolBase): """Tool for retrieving the raw markdown for a given documentation path.""" name = "tool_docs_get" description = "Return the raw markdown for a given documentation path." async def run(self, ctx, **kwargs) -> Any: """ Return the raw markdown for a given documentation path. Args: ctx: The tool context (unused). **kwargs: Should include: - path (str): Relative path to the markdown doc (as returned by list_docs). Returns: dict: { 'content': raw markdown content of the file, 'error': error message if file does not exist or is outside the docs directory, 'available_docs': list of available docs if file not found } """ # Defensive: handle string, None, or dict for kwargs # Extract path parameter using the centralized parameter extraction from MCPToolBase path = self._extract_param(kwargs, "path") # Check if path is a string if path is not None and not isinstance(path, str): return {"error": "Invalid path type. Expected a string."} if not path: return {"error": "Missing required parameter: path"} try: file = DOC_ROOT / path file.resolve().relative_to(DOC_ROOT.resolve()) if not file.exists(): # Suggest available docs available = [ str(p.relative_to(DOC_ROOT)) for p in DOC_ROOT.rglob("*.md") ] return {"error": f"Doc not found: {path}", "available_docs": available} content = file.read_text(encoding="utf-8") return {"content": content} except Exception as e: return {"error": f"Failed to read doc: {e}"}
- tools/tool_docs_tools.py:190-196 (registration)The 'register_tools' function registers the ToolDocsGetTool (along with related tools) to the MCP server instance by calling its register class method.def register_tools(mcp): """Register all documentation tools with the given MCP server instance.""" ToolDocsListTool.register(mcp) ToolDocsGetTool.register(mcp) ToolDocsSearchTool.register(mcp) LLMInstructionsGetTool.register(mcp)