{"_id":"@aigchub/aigc-network-disk-mcp","name":"@aigchub/aigc-network-disk-mcp","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@aigchub/aigc-network-disk-mcp","version":"1.0.0","description":"MCP (Model Context Protocol) server for AIGC Network Disk API integration","main":"dist/index.js","bin":{"aigc-network-disk-mcp":"dist/index.js"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/aigchub/aigc-network-disk-mcp.git"},"bugs":{"url":"https://github.com/aigchub/aigc-network-disk-mcp/issues"},"homepage":"https://github.com/aigchub/aigc-network-disk-mcp#readme","scripts":{"build":"tsc","dev":"tsx src/index.ts","start":"node dist/index.js","clean":"rimraf dist","watch":"tsc --watch","prestart":"npm run build","lint":"tsc --noEmit","test:build":"npm run clean && npm run build","check":"npm run lint && npm run test:build"},"keywords":["mcp","model-context-protocol","file-storage","aigc","api-integration"],"author":{"name":"AIGC Hub"},"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","axios":"^1.6.0","form-data":"^4.0.0","dotenv":"^16.3.0"},"devDependencies":{"@types/node":"^20.0.0","tsx":"^4.0.0","typescript":"^5.0.0","rimraf":"^5.0.0"},"engines":{"node":">=18.0.0"},"_id":"@aigchub/aigc-network-disk-mcp@1.0.0","gitHead":"ae51d886a53243eb77ec95250a42f5211a01fd9f","types":"./dist/index.d.ts","_nodeVersion":"24.5.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-AJ7W6YL78ovsgr5M6eiaXv7/kY1Cp+ophce2C5I0/+tJzT6p6U9fjVBBWSc7zZk3LKEUILhpGS2/DCNfOpv75Q==","shasum":"8966a144224b801c35222571a7b573232f0898b9","tarball":"https://registry.npmjs.org/@aigchub/aigc-network-disk-mcp/-/aigc-network-disk-mcp-1.0.0.tgz","fileCount":53,"unpackedSize":215166,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEjt68o6kcvqzFJGTNqC24r3H2u4Wxa+Aa3CZ1e2ke78AiAcgts8O3SfbdHZuNYGfV6HoOAr6fJERcnCEXRKMBvpeg=="}]},"_npmUser":{"name":"cc11001100","email":"CC11001100@QQ.COM"},"directories":{},"maintainers":[{"name":"cc11001100","email":"CC11001100@QQ.COM"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aigc-network-disk-mcp_1.0.0_1756419571508_0.6028321878264586"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-28T22:19:31.414Z","1.0.0":"2025-08-28T22:19:31.714Z","modified":"2025-08-28T22:19:31.995Z"},"maintainers":[{"name":"cc11001100","email":"CC11001100@QQ.COM"}],"description":"MCP (Model Context Protocol) server for AIGC Network Disk API integration","homepage":"https://github.com/aigchub/aigc-network-disk-mcp#readme","keywords":["mcp","model-context-protocol","file-storage","aigc","api-integration"],"repository":{"type":"git","url":"git+https://github.com/aigchub/aigc-network-disk-mcp.git"},"author":{"name":"AIGC Hub"},"bugs":{"url":"https://github.com/aigchub/aigc-network-disk-mcp/issues"},"license":"MIT","readme":"# AIGC 网络硬盘 MCP 服务器\n\nAIGC Network Disk MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器，为 AIGC 网络硬盘 API 提供标准化的工具接口，使 AI 模型能够通过统一的接口管理文件。\n\n## 🚀 功能特性\n\n### 📋 文件管理工具\n- **📂 文件列表查询** - 支持搜索、分类过滤、分页和排序\n- **📤 文件上传** - 支持本地文件上传和URL文件上传\n- **📥 文件下载** - 支持大文件下载、断点续传和进度显示\n- **ℹ️ 文件信息查询** - 获取详细的文件元数据和统计信息\n- **🗑️ 文件删除** - 安全的单文件删除，带确认机制\n- **🗂️ 批量删除** - 高效的批量文件删除，支持最多50个文件\n\n### 🔧 技术特性\n- **TypeScript 严格模式** - 完整的类型安全和代码质量保证\n- **智能错误处理** - 详细的错误分类和用户友好的提示\n- **操作日志记录** - 完整的操作审计和调试信息\n- **进度反馈** - 实时的上传/下载进度显示\n- **安全确认机制** - 防止误删除的多重确认\n- **配置验证** - 启动时的配置检查和错误提示\n\n## 📦 安装和配置\n\n### 环境要求\n- **Node.js** >= 18.0.0\n- **npm** 或 **yarn**\n- **TypeScript** >= 5.0.0\n\n### 克隆项目\n```bash\ngit clone https://github.com/aigchub/aigc-network-disk-mcp.git\ncd aigc-network-disk-mcp\n```\n\n### 安装依赖\n```bash\nnpm install\n```\n\n### 从npm安装\n\n如果你想直接使用已发布的包：\n\n```bash\n# 全局安装\nnpm install -g @aigchub/aigc-network-disk-mcp\n\n# 或者项目中安装\nnpm install @aigchub/aigc-network-disk-mcp\n```\n\n使用命令行启动：\n```bash\n# 使用全局安装的版本\naigc-network-disk-mcp --api-token YOUR_TOKEN --api-base-url YOUR_API_URL\n\n# 或者使用npx\nnpx @aigchub/aigc-network-disk-mcp --api-token YOUR_TOKEN\n```\n\n### 环境配置\n1. 复制环境配置文件：\n```bash\ncp .env.example .env\n```\n\n2. 编辑 `.env` 文件，配置你的 API 设置：\n```env\n# AIGC Network Disk API 配置\nAPI_BASE_URL=http://localhost:65203/api\nAPI_TOKEN=your-api-token-here\n\n# 默认设置\nDEFAULT_EXPIRES_IN=300\nDEFAULT_PAGE_SIZE=20\nMAX_BATCH_SIZE=50\n\n# 可选：超时设置（毫秒）\nREQUEST_TIMEOUT=30000\nUPLOAD_TIMEOUT=300000\nDOWNLOAD_TIMEOUT=300000\n```\n\n### 构建项目\n```bash\nnpm run build\n```\n\n### 启动服务\n```bash\n# 开发模式（实时编译）\nnpm run dev\n\n# 生产模式\nnpm start\n```\n\n## 🛠️ 可用工具\n\n### 1. 文件列表查询 (list_files)\n获取文件列表，支持搜索、过滤、分页和排序。\n\n**参数：**\n- `query` (可选): 搜索关键词，支持中文\n- `category_id` (可选): 分类ID (1=图片, 2=文档, 3=视频, 4=音频, 5=压缩包, 6=其他)\n- `file_type` (可选): 文件类型过滤\n- `sort_by` (可选): 排序字段 (upload_time, file_size, access_count, download_count)\n- `sort_order` (可选): 排序方向 (asc, desc)\n- `page` (可选): 页码，从1开始\n- `size` (可选): 每页数量，最大100\n\n**示例：**\n```json\n{\n  \"query\": \"图片\",\n  \"category_id\": 1,\n  \"sort_by\": \"upload_time\",\n  \"sort_order\": \"desc\",\n  \"page\": 1,\n  \"size\": 20\n}\n```\n\n### 2. 文件上传 (upload_file)\n从本地文件系统上传文件到网络硬盘。\n\n**参数：**\n- `file_path` (必需): 本地文件的绝对路径\n- `description` (可选): 文件描述\n- `category_id` (可选): 文件分类ID\n- `tags` (可选): 文件标签，逗号分隔\n- `expires_in` (可选): 过期时间（秒），默认300，最大30天\n\n**示例：**\n```json\n{\n  \"file_path\": \"/path/to/your/file.jpg\",\n  \"description\": \"示例图片\",\n  \"category_id\": 1,\n  \"tags\": \"示例,测试\",\n  \"expires_in\": 3600\n}\n```\n\n### 3. URL文件上传 (upload_file_by_url)\n从网络URL上传文件到网络硬盘。\n\n**参数：**\n- `url` (必需): 要上传的文件URL\n- `description` (可选): 文件描述\n- `category_id` (可选): 文件分类ID\n- `tags` (可选): 文件标签，逗号分隔\n- `expires_in` (可选): 过期时间（秒）\n\n**示例：**\n```json\n{\n  \"url\": \"https://example.com/image.jpg\",\n  \"description\": \"网络图片\",\n  \"category_id\": 1,\n  \"tags\": \"网络,示例\"\n}\n```\n\n### 4. 文件信息查询 (get_file_info)\n获取文件的详细信息和元数据。\n\n**参数：**\n- `url` (必需): 文件的访问URL\n\n**示例：**\n```json\n{\n  \"url\": \"http://localhost:65203/files/view/abc123\"\n}\n```\n\n### 5. 文件下载 (download_file)\n从网络硬盘下载文件到本地文件系统。\n\n**参数：**\n- `url` (必需): 文件的访问URL\n- `save_path` (必需): 本地保存路径（绝对路径）\n- `overwrite` (可选): 是否覆盖已存在的文件，默认false\n\n**示例：**\n```json\n{\n  \"url\": \"http://localhost:65203/files/view/abc123\",\n  \"save_path\": \"/path/to/save/file.jpg\",\n  \"overwrite\": true\n}\n```\n\n### 6. 文件删除 (delete_file)\n删除网络硬盘中的文件。\n\n**参数：**\n- `url` (必需): 要删除的文件URL\n- `confirm` (可选): 确认删除，默认false（安全机制）\n\n**示例：**\n```json\n{\n  \"url\": \"http://localhost:65203/files/view/abc123\",\n  \"confirm\": true\n}\n```\n\n### 7. 批量删除 (batch_delete_files)\n批量删除多个文件，支持最多50个文件。\n\n**参数：**\n- `urls` (必需): 要删除的文件URL数组\n- `confirm` (可选): 确认删除，默认false（安全机制）\n\n**示例：**\n```json\n{\n  \"urls\": [\n    \"http://localhost:65203/files/view/abc123\",\n    \"http://localhost:65203/files/view/def456\"\n  ],\n  \"confirm\": true\n}\n```\n\n## 🔧 开发和调试\n\n### 开发模式\n```bash\n# 启动开发服务器（支持热重载）\nnpm run dev\n\n# 监听模式编译\nnpm run watch\n```\n\n### 构建和清理\n```bash\n# 编译 TypeScript\nnpm run build\n\n# 清理构建产物\nnpm run clean\n\n# 完整重建\nnpm run clean && npm run build\n```\n\n### 调试配置\n启动时服务器会显示详细的配置信息：\n\n```\n🚀 AIGC Network Disk MCP server started successfully\n📡 API Base URL: http://localhost:65203/api\n🔑 API Token: 已配置\n🛠️  Available tools:\n   📋 list_files - 获取文件列表\n   📤 upload_file - 上传本地文件\n   🌐 upload_file_by_url - 从URL上传文件\n   ℹ️  get_file_info - 获取文件信息\n   📥 download_file - 下载文件\n   🗑️  delete_file - 删除文件\n   🗂️  batch_delete_files - 批量删除文件\n\n✅ Server is ready to accept requests\n```\n\n## 📋 环境变量配置\n\n| 变量名 | 默认值 | 说明 |\n|--------|--------|------|\n| `API_BASE_URL` | `http://localhost:65203/api` | AIGC 网络硬盘 API 基础URL |\n| `API_TOKEN` | - | API 访问令牌（可选，使用默认值如不设置） |\n| `DEFAULT_EXPIRES_IN` | `300` | 默认文件过期时间（秒） |\n| `DEFAULT_PAGE_SIZE` | `20` | 默认分页大小 |\n| `MAX_BATCH_SIZE` | `50` | 批量操作最大文件数 |\n| `REQUEST_TIMEOUT` | `30000` | 普通请求超时时间（毫秒） |\n| `UPLOAD_TIMEOUT` | `300000` | 上传超时时间（毫秒） |\n| `DOWNLOAD_TIMEOUT` | `300000` | 下载超时时间（毫秒） |\n\n## 🔍 故障排除\n\n### 常见问题\n\n#### 1. 服务器启动失败\n**错误信息：** `Configuration validation failed`\n\n**解决方案：**\n- 检查 `.env` 文件是否存在且格式正确\n- 确认 `API_BASE_URL` 格式正确（包含 http:// 或 https://）\n- 验证环境变量值是否有效\n\n#### 2. 文件上传失败\n**错误信息：** `Network Error` 或 `File not found`\n\n**解决方案：**\n- 检查网络连接和API服务器状态\n- 确认文件路径正确且文件存在\n- 检查文件权限和大小限制\n- 验证 API Token 是否有效\n\n#### 3. 下载失败\n**错误信息：** `Permission denied` 或 `Disk space`\n\n**解决方案：**\n- 检查目标目录写权限\n- 确认磁盘空间足够\n- 验证文件URL是否有效且未过期\n- 检查网络连接稳定性\n\n#### 4. 删除操作失败\n**错误信息：** `Forbidden` 或 `Not found`\n\n**解决方案：**\n- 确认具有删除权限\n- 检查文件是否存在且未过期\n- 验证 API Token 权限\n- 确认 `confirm` 参数设置为 `true`\n\n### 调试技巧\n\n1. **启用详细日志**：开发模式会显示详细的HTTP请求日志\n2. **检查配置**：服务器启动时会验证并显示配置信息\n3. **使用单文件操作**：批量操作失败时，先尝试单文件操作定位问题\n4. **网络诊断**：使用 `curl` 或浏览器直接测试API接口\n\n### 联系支持\n\n如果遇到无法解决的问题：\n\n1. 收集错误日志和配置信息\n2. 描述重现步骤\n3. 提供系统环境信息\n4. 在 [GitHub Issues](https://github.com/aigchub/aigc-network-disk-mcp/issues) 提交问题\n\n## 📄 许可证\n\n本项目使用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。\n\n## 🤝 贡献\n\n欢迎提交 Pull Request 和 Issue！\n\n## 📚 相关链接\n\n- [Model Context Protocol (MCP) 官方文档](https://modelcontextprotocol.io)\n- [AIGC Hub](https://github.com/aigchub)\n- [项目 GitHub 仓库](https://github.com/aigchub/aigc-network-disk-mcp)","readmeFilename":"README.md","_rev":"1-ca9994e753e619a1f61c8302a9fca896"}