mcp.documentation.doc_loader ============================ .. py:module:: mcp.documentation.doc_loader .. autoapi-nested-parse:: MCP documentation loader using haive document loaders. This module provides functionality to load, process, and extract information from MCP server documentation. It includes methods to parse README files, extract setup instructions, and generate configurations from documentation. The loader processes documentation from: - Stored JSON files containing 992+ MCP server docs - GitHub repositories (via GitHubLoader) - Web documentation (via WebScraper) - Local documentation files Classes: MCPDocumentationLoader: Main class for loading and processing MCP documentation .. rubric:: Example Loading and using MCP documentation: .. code-block:: python from haive.mcp.documentation import MCPDocumentationLoader from haive import agents # Initialize loader loader = MCPDocumentationLoader() # Load all documentation all_docs = loader.load_all_mcp_documents() print(f"Loaded {len(all_docs)} server documentations") # Get specific server documentation fs_doc = loader.get_server_documentation("modelcontextprotocol/server-filesystem") # Extract setup information setup_info = loader.extract_setup_info(fs_doc) print("Installation:", setup_info["installation"]) print("Configuration:", setup_info["configuration"]) # Search by capability search_servers = loader.search_servers_by_capability("search") print(f"Found {len(search_servers)} servers with search capability") .. note:: The loader gracefully handles missing dependencies for document loaders. Attributes ---------- .. autoapisummary:: mcp.documentation.doc_loader.LOADERS_AVAILABLE mcp.documentation.doc_loader.logger Classes ------- .. autoapisummary:: mcp.documentation.doc_loader.MCPDocumentationLoader Module Contents --------------- .. py:class:: MCPDocumentationLoader(resources_path: pathlib.Path | None = None) Loads and processes MCP server documentation from various sources. .. py:method:: extract_setup_info(server_doc: dict[str, Any]) -> dict[str, Any] Extract setup information from server documentation. :param server_doc: Server documentation dictionary :returns: Extracted setup information .. py:method:: fetch_github_readme(repo_url: str) -> langchain_core.documents.Document | None :async: Fetch README from GitHub repository. :param repo_url: GitHub repository URL :returns: Document containing README content .. py:method:: fetch_server_website(url: str) -> langchain_core.documents.Document | None :async: Fetch documentation from server website. :param url: Website URL :returns: Document containing website content .. py:method:: get_server_documentation(server_name: str) -> dict[str, Any] | None Get documentation for a specific MCP server. :param server_name: Name of the MCP server (e.g., "modelcontextprotocol/server-filesystem") :returns: Server documentation or None if not found .. py:method:: load_all_mcp_documents() -> dict[str, dict[str, Any]] Load all MCP server documentation from the stored JSON. :returns: Dictionary mapping server names to documentation dictionaries .. py:method:: search_servers_by_capability(capability: str) -> list[dict[str, Any]] Search for MCP servers by capability mentioned in description. :param capability: Capability to search for :returns: List of matching server documentation .. py:method:: search_servers_by_category(category: str) -> list[dict[str, Any]] Search for MCP servers by category. :param category: Category to search for (e.g., "Databases", "File Systems") :returns: List of matching server documentation .. py:attribute:: mcp_servers_path .. py:attribute:: resources_path :value: None .. py:data:: LOADERS_AVAILABLE :value: True .. py:data:: logger