项目打包工具

MCP项目打包工具是一个提供项目打包和提取服务的工具,支持将项目结构导出为JSON格式并导入到其他位置。

  • by ShanKonduru
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ShanKonduru/package_json_mcp

使用说明

MCP项目打包器

提供项目打包和提取服务的模型上下文协议(MCP)服务器。此工具允许您将整个项目结构导出为JSON格式(遵守.gitignore规则),并将其导入其他地方。

特性

  • 出口服务:收集项目中的所有文件和文件夹,遵守.gitignore规范,并将其打包成结构化的JSON格式
  • 导入服务:接受JSON输入并在目标目录中提取/重新创建完整的文件结构
  • 智能文件处理:自动检测文本与二进制文件,并对其进行适当编码
  • Gitignore支持:遵守.gitignore规则以排除不需要的文件
  • 可配置的:包含/排除隐藏文件和覆盖现有文件的选项

安装

  1. 安装所需的依赖项:
pip install -r requirements.txt

用法

作为MCP服务器

该服务器可以与任何兼容MCP的LLM工具(如GitHub Copilot)集成:

python src/mcp_server.py

可用工具

1.出口工程

将项目目录结构导出为JSON格式。

参数:

  • project_path (必填):要导出的项目目录的路径
  • include_hidden (可选):是否包含隐藏文件和目录(默认值:false)
  • use_default_ignores (可选):当不存在.gitignore时是否应用默认忽略模式(默认值:true)

例子:

{
  "name": "export_project",
  "arguments": {
    "project_path": "/path/to/your/project",
    "include_hidden": false,
    "use_default_ignores": true
  }
}

注: 如果没有 .gitignore 文件存在:

  • 随着 use_default_ignores: true (默认):内置模式仍然排除常见文件/目录
  • 随着 use_default_ignores: false:所有内容都将被打包(隐藏文件除外,除非 include_hidden: true)

2.进口项目

将项目结构从JSON数据导入/提取到目标目录。

参数:

  • json_data (必填):包含项目结构数据的JSON字符串
  • target_path (必填):提取/导入项目的路径
  • overwrite (可选):是否覆盖现有文件(默认值:false)

例子:

{
  "name": "import_project",
  "arguments": {
    "json_data": "{\"metadata\":{...},\"files\":{...}}",
    "target_path": "/path/to/extract",
    "overwrite": false
  }
}

测试

运行测试套件以验证功能:

python tests/test_mcp_server.py

JSON结构

导出的JSON包含:

{
  "metadata": {
    "export_timestamp": 1635789123.456,
    "project_name": "my-project",
    "project_path": "/path/to/project",
    "include_hidden": false
  },
  "structure": [
    {
      "name": "README.md",
      "path": "README.md",
      "type": "file",
      "size": 1234,
      "modified": 1635789100.0
    }
  ],
  "files": {
    "README.md": {
      "name": "README.md",
      "path": "README.md",
      "size": 1234,
      "modified": 1635789100.0,
      "type": "text",
      "content": "# My Project\n...",
      "encoding": "utf-8"
    }
  }
}

与GitHub Copilot集成

要将此MCP服务器与GitHub Copilot或其他MCP兼容工具一起使用:

  1. 启动MCP服务器
  2. 配置LLM工具以连接到MCP服务器
  3. 通过自然语言命令使用工具:
    • “将当前项目导出为JSON”
    • “将此项目结构导入新目录”

支持的文件类型

  • 文本文件:存储为UTF-8文本内容
  • 二进制文件:编码为base64,用于安全的JSON传输
  • 错误处理:无法读取的文件会记录错误信息

默认忽略模式

除了.gitignore规则外,默认情况下还会忽略这些模式:

  • .git/, __pycache__/, *.pyc, .pytest_cache/
  • node_modules/, .vscode/, .idea/, *.log
  • .env, .DS_Store, Thumbs.db, *.tmp

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

安装

  1. 初始化git(Windows): 跑吧 000_init.bat 文件。

  2. 创建虚拟环境(Windows): 跑吧 001_env.bat 文件。

  3. 激活虚拟环境(Windows): 跑吧 002_activate.bat 文件。

  4. 安装依赖项: 跑吧 003_setup.bat 文件。这将安装中列出的所有软件包 requirements.txt.

  5. 停用虚拟环境(Windows): 跑吧 008_deactivate.bat 文件。

用法

  1. 运行主应用程序(Windows): 跑吧 004_run.bat 文件。

    [提供如何使用应用程序的说明。]

批处理文件(Windows)

此项目包括以下批处理文件,以帮助完成Windows上的常见开发任务:

  • 000_init.bat:初始化了git,也完成了usn和pwd配置设置。
  • 001_env.bat:创建名为的虚拟环境 venv.
  • 002_activate.bat:激活 venv 虚拟环境。
  • 003_setup.bat:安装中列出的Python包 requirements.txt 使用 pip.
  • 004_run.bat:执行主Python脚本(main.py).
  • 005_run_test.bat:执行pytest脚本(test_main.py).
  • 005_run_code_cov.bat:执行代码覆盖率pytest脚本(test_main.py).
  • 008_deactivate.bat:停用当前活动的虚拟环境。

贡献

[解释其他人如何为你的项目做出贡献。]

许可证

[指定项目许可证(如果有)。]