htmlgen-mcp 0.3.2__py3-none-any.whl → 0.3.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of htmlgen-mcp might be problematic. Click here for more details.

htmlgen_mcp/config.py CHANGED
@@ -1,4 +1,4 @@
1
- """项目配置管理 - 跨平台支持"""
1
+ """项目配置管理 - 跨平台支持与集群部署优化"""
2
2
  import os
3
3
  import sys
4
4
  import platform
@@ -8,7 +8,7 @@ from datetime import datetime
8
8
 
9
9
 
10
10
  class ProjectConfig:
11
- """项目配置管理器 - 支持 Windows/macOS/Linux"""
11
+ """项目配置管理器 - 支持 Windows/macOS/Linux/集群部署"""
12
12
 
13
13
  @staticmethod
14
14
  def get_system_info() -> dict:
@@ -22,17 +22,38 @@ class ProjectConfig:
22
22
 
23
23
  @staticmethod
24
24
  def get_default_output_dir() -> Path:
25
- """获取默认的项目输出目录(跨平台)
25
+ """获取默认的项目输出目录(跨平台 + 集群部署)
26
26
 
27
- 优先级:
28
- 1. 环境变量 WEB_AGENT_OUTPUT_DIR / WEB_AGENT_PROJECT_ROOT
29
- 2. 系统特定的文档目录
30
- 3. 用户主目录下的隐藏目录
31
- 4. 系统临时目录
27
+ 优先级(集群部署优化):
28
+ 1. 环境变量 WEB_AGENT_PROJECT_ROOT(集群共享存储,最高优先级)
29
+ 2. 环境变量 WEB_AGENT_OUTPUT_DIR(兼容旧配置)
30
+ 3. 系统特定的文档目录
31
+ 4. 用户主目录下的隐藏目录
32
+ 5. 系统临时目录
33
+
34
+ 集群部署说明:
35
+ - 在 SSE 集群中,建议配置 WEB_AGENT_PROJECT_ROOT 为 NAS 共享路径
36
+ - 示例:WEB_AGENT_PROJECT_ROOT=/app/mcp-servers/mcp-servers/html_agent/projects
32
37
  """
33
38
 
34
- # 1. 检查环境变量(所有平台通用)
35
- env_dir = os.environ.get('WEB_AGENT_OUTPUT_DIR') or os.environ.get('WEB_AGENT_PROJECT_ROOT')
39
+ # 1a. 检查集群共享存储环境变量(最高优先级)
40
+ project_root = os.environ.get('WEB_AGENT_PROJECT_ROOT')
41
+ if project_root:
42
+ output_dir = Path(project_root)
43
+ try:
44
+ output_dir.mkdir(parents=True, exist_ok=True)
45
+ # 验证目录可写
46
+ test_file = output_dir / '.write_test'
47
+ test_file.touch()
48
+ test_file.unlink()
49
+ print(f"✅ 使用集群共享存储: {output_dir}")
50
+ return output_dir
51
+ except Exception as e:
52
+ print(f"⚠️ 集群共享存储不可用 ({output_dir}): {e}")
53
+ print(f"💡 请检查 NAS 挂载状态和权限")
54
+
55
+ # 1b. 检查兼容性环境变量
56
+ env_dir = os.environ.get('WEB_AGENT_OUTPUT_DIR')
36
57
  if env_dir:
37
58
  output_dir = Path(env_dir)
38
59
  try:
@@ -111,7 +132,7 @@ class ProjectConfig:
111
132
  try:
112
133
  temp_dir.mkdir(parents=True, exist_ok=True)
113
134
  print(f"⚠️ 使用临时目录: {temp_dir}")
114
- print(f"💡 建议设置环境变量 WEB_AGENT_OUTPUT_DIR 或 WEB_AGENT_PROJECT_ROOT 到更合适的位置")
135
+ print(f"💡 建议设置环境变量 WEB_AGENT_OUTPUT_DIR 到更合适的位置")
115
136
  return temp_dir
116
137
  except Exception as e:
117
138
  # 如果连临时目录都无法创建,使用当前工作目录
@@ -280,7 +301,7 @@ def get_project_directory(project_name: str = None) -> str:
280
301
  project_dir = config.create_project_directory(project_name, use_timestamp=True)
281
302
 
282
303
  print(f"📁 项目将生成在: {project_dir}")
283
- print(f"💡 提示: 可通过设置环境变量 WEB_AGENT_OUTPUT_DIR 或 WEB_AGENT_PROJECT_ROOT 来自定义输出目录")
304
+ print(f"💡 提示: 可通过设置环境变量 WEB_AGENT_OUTPUT_DIR 来自定义输出目录")
284
305
 
285
306
  return str(project_dir)
286
307
 
@@ -323,4 +344,4 @@ __all__ = [
323
344
  'get_project_directory',
324
345
  'list_recent_projects',
325
346
  'clean_temp_projects'
326
- ]
347
+ ]
@@ -42,34 +42,13 @@ DEFAULT_BASE_URL = os.environ.get(
42
42
 
43
43
  mcp = FastMCP("smart-web-agent")
44
44
 
45
- # MCP 服务持久化目录:优先使用项目根目录下的 .mcp_state,可通过环境变量覆盖
45
+ # MCP 服务持久化目录:默认为 ~/.mcp/make_web,可通过环境变量覆盖
46
46
  DEFAULT_MCP_STORAGE = Path.home() / ".mcp"
47
47
  MCP_SERVICE_NAME = os.environ.get("MCP_SERVICE_NAME", "make_web")
48
-
49
-
50
- def _resolve_mcp_data_root() -> Path:
51
- """解析 MCP 数据目录,优先使用共享项目目录"""
52
- env_dir = os.environ.get("MCP_DATA_DIR")
53
- if env_dir:
54
- path = Path(env_dir)
55
- path.mkdir(parents=True, exist_ok=True)
56
- return path
57
-
58
- shared_dir = Path(DEFAULT_PROJECT_ROOT) / ".mcp_state"
59
- try:
60
- shared_dir.mkdir(parents=True, exist_ok=True)
61
- return shared_dir
62
- except Exception:
63
- fallback = DEFAULT_MCP_STORAGE / MCP_SERVICE_NAME
64
- fallback.mkdir(parents=True, exist_ok=True)
65
- print(
66
- f"⚠️ 无法在 {shared_dir} 创建 MCP 数据目录,改用 {fallback}",
67
- file=sys.stderr,
68
- )
69
- return fallback
70
-
71
-
72
- MCP_DATA_ROOT = _resolve_mcp_data_root()
48
+ MCP_DATA_ROOT = Path(
49
+ os.environ.get("MCP_DATA_DIR", DEFAULT_MCP_STORAGE / MCP_SERVICE_NAME)
50
+ )
51
+ MCP_DATA_ROOT.mkdir(parents=True, exist_ok=True)
73
52
 
74
53
  # 简单的缓存:记录最近一次生成的计划,避免“create_simple_site → execute_plan”时需手动传递
75
54
  PLAN_CACHE_DIR = MCP_DATA_ROOT / "plan_cache"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: htmlgen-mcp
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: AI-powered HTML website generator with auto-upload functionality via Model Context Protocol
5
5
  Author-email: HTML Generator Team <contact@htmlgen-mcp.com>
6
6
  License: MIT
@@ -1,7 +1,7 @@
1
1
  htmlgen_mcp/__init__.py,sha256=8jambwGFxu8RNWes1BUEGDHErV-LcvDaABWqNja9GW0,114
2
- htmlgen_mcp/config.py,sha256=TXDAvNFmeCI4RIznrBhZhhvWLgXAw6MO6j83prJxFsE,11373
2
+ htmlgen_mcp/config.py,sha256=U_itOO9bG5vdZRuijWlQgDaVBPTyQ-fN1MH621QN7Mk,12375
3
3
  htmlgen_mcp/sse_optimizations.py,sha256=_UTpgLtxgNAiiEkO5lPihOi1-eEQk6R4ejNParufrrc,6932
4
- htmlgen_mcp/web_agent_server.py,sha256=UfjO3DtiHekr61nJ0z-Ne9cMXTqzjRLuIfIr85wBhIY,48091
4
+ htmlgen_mcp/web_agent_server.py,sha256=69Ht2qoQZ8uFIoov6md4MoJdQWm4cuWOZllBu_FFCJc,47463
5
5
  htmlgen_mcp/agents/__init__.py,sha256=Xydfjzw9s9O6I5Ixx6EmsTdXu26136NDPUAqt9B1hzE,121
6
6
  htmlgen_mcp/agents/ai_content_generator.py,sha256=tWGC9cY6Wp7MB1P9J7uCv8LUdiS02rgS6vxaNHD7KQk,10311
7
7
  htmlgen_mcp/agents/cluster_state.py,sha256=eDAqVm_A94_x7YfmhKKQ6T1FFt_4XQOyUiHdiTPF7Qg,14615
@@ -26,8 +26,8 @@ htmlgen_mcp/agents/web_tools/simple_css.py,sha256=kj9X3sHHhj1wGwBVL20j6w2qIHXRdx
26
26
  htmlgen_mcp/agents/web_tools/simple_js.py,sha256=xMiuF-u-h_IIkUONZIa4Xf8vKB5mcXxwQf5b_BIcpoE,12174
27
27
  htmlgen_mcp/agents/web_tools/simple_templates.py,sha256=-Rs-SsWpGZT2hiwa3jZNVDHOMZOo1vV2pWbmBdR30os,6471
28
28
  htmlgen_mcp/agents/web_tools/validation.py,sha256=bNA6aWXrCSi7sPqQw5bBR3XF69gRf85D5jSMi996CtI,2069
29
- htmlgen_mcp-0.3.2.dist-info/METADATA,sha256=ZbrJ1I9ijuFaPO0LDrRrVZS1r8d82_qLZ6xM-EP_dN0,5161
30
- htmlgen_mcp-0.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
- htmlgen_mcp-0.3.2.dist-info/entry_points.txt,sha256=w7ufTQJobIxT3FYI24yKsCEwEQvBOWhNjckUd9Amu_k,66
32
- htmlgen_mcp-0.3.2.dist-info/top_level.txt,sha256=KnglzX4ekV8SQkHTsJg2_nTBXz2TxaYLdvoMMovHLNk,12
33
- htmlgen_mcp-0.3.2.dist-info/RECORD,,
29
+ htmlgen_mcp-0.3.3.dist-info/METADATA,sha256=9kWd0XVCvjZfico2ZWuW5uxF3EcTjk7H21L-UqYNbkM,5161
30
+ htmlgen_mcp-0.3.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
+ htmlgen_mcp-0.3.3.dist-info/entry_points.txt,sha256=w7ufTQJobIxT3FYI24yKsCEwEQvBOWhNjckUd9Amu_k,66
32
+ htmlgen_mcp-0.3.3.dist-info/top_level.txt,sha256=KnglzX4ekV8SQkHTsJg2_nTBXz2TxaYLdvoMMovHLNk,12
33
+ htmlgen_mcp-0.3.3.dist-info/RECORD,,