From c9e6945c26a6a77a8f2985bfc67b0ba37d852b5c Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Sat, 17 Oct 2026 04:53:37 +0530 Subject: [PATCH] fix(packaging): make mcp an optional backend and install doc backends in dev Defer the mcp import in MCPServer.__init__ so 'import docforge' no longer requires the optional mcp dependency (matching the lazy MkDocs import). Add doc-forge[mkdocs,mcp] to the dev extra so the standard quality gate installs the backends the test suite needs. --- CHANGELOG.md | 4 ++++ docforge/servers/mcp_server.py | 4 ++-- pyproject.toml | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b762b6e..fbd3b00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,11 +33,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 header, blue grey/teal palette, Roboto font, and additional material feature flags. The lib and api templates are unchanged. - Docstrings and wiki brought to the GSDFC (Google-style) standard. +- The `dev` extra now includes the `mkdocs` and `mcp` extras so the + quality-gate environment can install and run the full test suite. ### Fixed - Loader-generated signatures render cleanly and unresolvable aliases are dropped from generated models. - Stub fixes for typed API surfaces. +- `import docforge` no longer requires the optional `mcp` dependency; the + MCP server imports `mcp` lazily, matching the MkDocs backend. [Unreleased]: https://git.aetoskia.com/aetos/doc-forge/compare/0.0.7...HEAD [0.0.7]: https://git.aetoskia.com/aetos/doc-forge/compare/0.0.6...0.0.7 diff --git a/docforge/servers/mcp_server.py b/docforge/servers/mcp_server.py index 1ee5688..0632328 100644 --- a/docforge/servers/mcp_server.py +++ b/docforge/servers/mcp_server.py @@ -23,8 +23,6 @@ import json from pathlib import Path from typing import Any, Literal -from mcp.server.fastmcp import FastMCP - class MCPServer: """ @@ -54,6 +52,8 @@ class MCPServer: name (str): Identifier used for the MCP server instance. """ + from mcp.server.fastmcp import FastMCP + self.mcp_root = mcp_root self.app = FastMCP(name) diff --git a/pyproject.toml b/pyproject.toml index 2699576..2cafe17 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -87,6 +87,7 @@ dev = [ "build>=1.0.0", "twine>=4.0.0", "pre-commit>=3.4.0", + "doc-forge[mkdocs,mcp]", ] docs = [ "doc-forge[mkdocs]",