From e5d4b618c5c0af13687e8592e5bd19e2f6c41838 Mon Sep 17 00:00:00 2001 From: Julie Date: Wed, 24 Dec 2025 10:16:59 +0100 Subject: [PATCH] Fix: Convert relative imports to absolute imports in server.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When running `fastmcp dev src/creative_agent/server.py` directly, Python doesn't treat the file as part of a package, causing relative imports to fail with "ImportError: attempted relative import with no known parent package". Changed all relative imports to absolute imports: - .data.standard_formats → creative_agent.data.standard_formats - .schemas → creative_agent.schemas - .schemas.manifest → creative_agent.schemas.manifest - .validation → creative_agent.validation - .storage → creative_agent.storage This ensures the server works both as a module entry point and when run directly with fastmcp dev. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- src/creative_agent/server.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/creative_agent/server.py b/src/creative_agent/server.py index 5d831d5..b47fad6 100644 --- a/src/creative_agent/server.py +++ b/src/creative_agent/server.py @@ -14,14 +14,14 @@ from mcp.types import TextContent from pydantic import AnyUrl -from .data.standard_formats import ( +from creative_agent.data.standard_formats import ( AGENT_CAPABILITIES, AGENT_NAME, AGENT_URL, filter_formats, get_format_by_id, ) -from .schemas import ( +from creative_agent.schemas import ( ListCreativeFormatsResponse, PreviewCreativeRequest, ) @@ -223,7 +223,7 @@ def _handle_single_preview( output_format: str, ) -> ToolResult: """Handle a single preview request.""" - from .schemas.manifest import PreviewInput + from creative_agent.schemas.manifest import PreviewInput # Parse inputs if provided inputs_obj: list[PreviewInput] | None = None @@ -268,7 +268,7 @@ def _handle_single_preview( ) # Validate manifest assets - from .validation import validate_manifest_assets + from creative_agent.validation import validate_manifest_assets validation_errors = validate_manifest_assets( request.creative_manifest, @@ -294,7 +294,7 @@ def _handle_single_preview( ] # Generate previews for each input set - from .storage import generate_preview_html, upload_preview_html + from creative_agent.storage import generate_preview_html, upload_preview_html previews = [] for input_set in request.inputs: @@ -720,7 +720,7 @@ def build_creative( output_manifest = json.loads(manifest_json) # Validate against output format - from .validation import validate_manifest_assets + from creative_agent.validation import validate_manifest_assets validation_errors = validate_manifest_assets( output_manifest,