Migrate from FastMCP 2.14.5 to 3.1.0 with complete architectural overhaul. Adopt src-layout packaging, lazy config functions to eliminate .env race condition, and decorator-based tool registration. Consolidate 14 tool modules into 8 focused modules (33 tools total). Add 9 new schematic tools via kicad-sch-api for creating and manipulating .kicad_sch files. Drop pandas dependency (BOM uses stdlib csv). Remove ~17k lines of stubs, over-engineering, and dead code. All checks pass: ruff clean, mypy 0 errors, 17/17 tests green.
17 lines
489 B
Python
17 lines
489 B
Python
"""
|
|
MCP resource for KiCad project file content.
|
|
"""
|
|
|
|
import json
|
|
|
|
from mckicad.server import mcp
|
|
from mckicad.utils.file_utils import get_project_files, load_project_json
|
|
|
|
|
|
@mcp.resource("kicad://project/{project_path}")
|
|
def get_project_resource(project_path: str) -> str:
|
|
"""Get details for a specific KiCad project."""
|
|
files = get_project_files(project_path)
|
|
metadata = load_project_json(project_path)
|
|
return json.dumps({"files": files, "metadata": metadata}, indent=2)
|