#!/usr/bin/env python3
"""
智文助手自动安装脚本
作者:用户自主开发
功能:自动安装智文助手
"""
import os
import sys
import subprocess
import json
import platform
def print_header():
"""打印安装标题"""
print("=" * 60)
print("🚀 智文助手 - 自动安装程序")
print("=" * 60)
print()
def check_python_version():
"""检查Python版本"""
print("🔍 检查Python版本...")
if sys.version_info < (3, 8):
print(f"❌ 错误:需要Python 3.8或更高版本")
print(f" 当前版本:{sys.version}")
return False
print(f"✅ Python版本检查通过:{sys.version}")
return True
def check_system_info():
"""检查系统信息"""
print("🔍 检查系统环境...")
system = platform.system()
print(f"✅ 操作系统:{system}")
print(f"✅ 架构:{platform.machine()}")
print(f"✅ Python路径:{sys.executable}")
return True
def install_dependencies():
"""安装依赖包"""
print("\n📦 正在安装MCP依赖...")
try:
# 升级pip
print(" - 升级pip...")
subprocess.check_call([sys.executable, "-m", "pip", "install", "--upgrade", "pip"],
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
# 安装mcp
print(" - 安装mcp...")
subprocess.check_call([sys.executable, "-m", "pip", "install", "mcp"],
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
# 安装pydantic
print(" - 安装pydantic...")
subprocess.check_call([sys.executable, "-m", "pip", "install", "pydantic"],
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
print("✅ 依赖安装完成")
return True
except subprocess.CalledProcessError as e:
print(f"❌ 依赖安装失败:{e}")
print("\n💡 解决方案:")
print(" 1. 检查网络连接")
print(" 2. 尝试使用国内镜像:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ mcp pydantic")
return False
def verify_mcp_installation():
"""验证MCP安装"""
print("\n🔍 验证MCP安装...")
try:
import mcp
print(f"✅ MCP模块导入成功:{mcp.__version__ if hasattr(mcp, '__version__') else '未知版本'}")
return True
except ImportError:
print("❌ MCP模块导入失败")
return False
def create_config():
"""创建MCP配置文件"""
print("\n⚙️ 创建MCP配置文件...")
# 获取当前脚本的绝对路径
script_path = os.path.abspath("folder_documentation_mcp.py")
config = {
"mcpServers": {
"Folder Documentation MCP": {
"command": sys.executable,
"args": [script_path],
"type": "stdio",
"disabled": False,
"description": "文件夹文档生成MCP服务器 - 自动生成中文README和思维导图"
}
}
}
config_path = "mcp_config.json"
try:
with open(config_path, "w", encoding="utf-8") as f:
json.dump(config, f, indent=2, ensure_ascii=False)
print(f"✅ 配置文件已创建:{os.path.abspath(config_path)}")
return config_path, True
except Exception as e:
print(f"❌ 配置文件创建失败:{e}")
return config_path, False
def create_quick_start_guide():
"""创建快速开始指南"""
guide_content = """# 🚀 快速开始指南
## 📋 安装完成!
你的文件夹文档生成MCP服务器已成功安装。
## 🎯 下一步操作
### 1. 配置MCP客户端
将生成的 `mcp_config.json` 配置添加到你的MCP客户端中:
```json
{
"mcpServers": {
"Folder Documentation MCP": {
"command": "python",
"args": ["完整的路径/folder_documentation_mcp.py"],
"type": "stdio"
}
}
}
```
### 2. 重启MCP客户端
重启你的MCP客户端以加载新的服务器。
### 3. 开始使用
现在你可以使用以下功能:
- 📝 生成项目README文件
- 📊 创建项目结构思维导图
- 🔄 更新现有文档
## 💡 使用示例
在MCP客户端中调用工具:
- `generate_readme_files` - 生成README文件
- `generate_mindmap` - 生成思维导图
- `update_documentation` - 更新文档
## 🆘 遇到问题?
1. 检查Python版本是否为3.8+
2. 确保所有依赖包已正确安装
3. 查看MCP客户端的错误日志
## 📞 技术支持
如有问题,请参考完整文档或联系开发者。
"""
try:
with open("快速开始指南.md", "w", encoding="utf-8") as f:
f.write(guide_content)
print("✅ 快速开始指南已创建")
return True
except Exception as e:
print(f"⚠️ 快速开始指南创建失败:{e}")
return False
def test_mcp_server():
"""测试MCP服务器"""
print("\n🧪 测试MCP服务器...")
try:
# 尝试导入服务器模块
sys.path.append('.')
import folder_documentation_mcp
print("✅ MCP服务器模块导入成功")
return True
except Exception as e:
print(f"❌ MCP服务器测试失败:{e}")
return False
def print_success_message(config_path):
"""打印成功信息"""
print("\n" + "=" * 60)
print("🎉 安装完成!")
print("=" * 60)
print("\n📖 使用方法:")
print(f"1. 将配置文件 '{config_path}' 添加到你的MCP客户端")
print("2. 重启MCP客户端")
print("3. 开始使用文件夹文档生成功能")
print("\n📚 更多信息请查看 '快速开始指南.md'")
print("\n💡 提示:如果遇到问题,请检查Python环境和网络连接")
def main():
"""主函数"""
print_header()
# 检查系统环境
if not check_python_version():
input("\n按回车键退出...")
sys.exit(1)
if not check_system_info():
input("\n按回车键退出...")
sys.exit(1)
# 安装依赖
if not install_dependencies():
input("\n按回车键退出...")
sys.exit(1)
# 验证安装
if not verify_mcp_installation():
input("\n按回车键退出...")
sys.exit(1)
# 创建配置
config_path, config_success = create_config()
if not config_success:
input("\n按回车键退出...")
sys.exit(1)
# 创建快速开始指南
create_quick_start_guide()
# 测试服务器
test_mcp_server()
# 显示成功信息
print_success_message(config_path)
input("\n按回车键退出...")
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
print("\n\n👋 安装已取消")
sys.exit(0)
except Exception as e:
print(f"\n❌ 安装过程中出现未知错误:{e}")
input("\n按回车键退出...")
sys.exit(1)