Initial commit
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
"""Check AutoCAD MCP Pro setup and dependencies."""
|
||||
|
||||
import importlib
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def check(name: str, condition: bool, fix: str = ""):
|
||||
status = "OK" if condition else "MISSING"
|
||||
symbol = "[+]" if condition else "[-]"
|
||||
line = f" {symbol} {name}: {status}"
|
||||
if not condition and fix:
|
||||
line += f" -> {fix}"
|
||||
print(line)
|
||||
return condition
|
||||
|
||||
|
||||
def main():
|
||||
print("AutoCAD MCP Pro — Setup Check\n")
|
||||
ok_count = 0
|
||||
total = 0
|
||||
|
||||
print("Python:")
|
||||
total += 1
|
||||
v = sys.version_info
|
||||
ok_count += check(
|
||||
f"Python {v.major}.{v.minor}.{v.micro}",
|
||||
v >= (3, 11),
|
||||
"Requires Python 3.11+",
|
||||
)
|
||||
|
||||
print("\nRequired packages:")
|
||||
for pkg, install in [
|
||||
("fastmcp", "pip install fastmcp"),
|
||||
("ezdxf", "pip install ezdxf"),
|
||||
("pydantic", "pip install pydantic"),
|
||||
]:
|
||||
total += 1
|
||||
try:
|
||||
importlib.import_module(pkg)
|
||||
ok_count += check(pkg, True)
|
||||
except ImportError:
|
||||
ok_count += check(pkg, False, install)
|
||||
|
||||
print("\nOptional packages:")
|
||||
for pkg, install, purpose in [
|
||||
("win32com", "pip install pywin32", "COM backend"),
|
||||
("PIL", "pip install Pillow", "Screenshots (COM)"),
|
||||
("matplotlib", "pip install matplotlib", "PDF export + screenshots (ezdxf)"),
|
||||
]:
|
||||
total += 1
|
||||
try:
|
||||
importlib.import_module(pkg)
|
||||
ok_count += check(f"{pkg} ({purpose})", True)
|
||||
except ImportError:
|
||||
ok_count += check(f"{pkg} ({purpose})", False, install)
|
||||
|
||||
print("\nEnvironment variables:")
|
||||
for var, default in [
|
||||
("AUTOCAD_MCP_BACKEND", "auto"),
|
||||
("ALLOWED_PATHS", "(empty = all paths allowed)"),
|
||||
("MAX_UNDO_STACK", "50"),
|
||||
("LOG_LEVEL", "INFO"),
|
||||
("DANGEROUS_COMMANDS_ENABLED", "false"),
|
||||
]:
|
||||
val = os.environ.get(var, "")
|
||||
total += 1
|
||||
ok_count += check(var, True, "")
|
||||
if val:
|
||||
print(f" Current value: {val}")
|
||||
else:
|
||||
print(f" Default: {default}")
|
||||
|
||||
print(f"\nResult: {ok_count}/{total} checks passed")
|
||||
return 0 if ok_count >= 4 else 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user