diff --git a/docforge/cli/main.pyi b/docforge/cli/main.pyi index 287bc51..1acfbf3 100644 --- a/docforge/cli/main.pyi +++ b/docforge/cli/main.pyi @@ -100,5 +100,10 @@ def serve( """Serve documentation using MkDocs.""" +@cli.command(name="serve-mcp") +def serve_mcp() -> None: + """Serve MCP documentation.""" + + def main() -> None: """CLI entry point.""" diff --git a/docforge/servers/__init__.pyi b/docforge/servers/__init__.pyi new file mode 100644 index 0000000..15c2d44 --- /dev/null +++ b/docforge/servers/__init__.pyi @@ -0,0 +1,5 @@ +from .mcp_server import MCPServer + +__all__ = [ + "MCPServer", +] diff --git a/docforge/servers/mcp_server.pyi b/docforge/servers/mcp_server.pyi new file mode 100644 index 0000000..f4341d5 --- /dev/null +++ b/docforge/servers/mcp_server.pyi @@ -0,0 +1,22 @@ +from pathlib import Path +from typing import Literal, Any + +from mcp.server.fastmcp import FastMCP + + +class MCPServer: + """MCP server for serving documentation.""" + + mcp_root: Path + app: FastMCP + + def __init__(self, mcp_root: Path, name: str) -> None: ... + + def _read_json(self, path: Path) -> Any: ... + + def _register_resources(self) -> None: ... + + def _register_tools(self) -> None: ... + + def run(self, transport: Literal["stdio", "sse", "streamable-http"] = ...) -> None: + """Start the MCP server."""