# ToolBox **Repository Path**: zhouchenliang2/tool-box ## Basic Information - **Project Name**: ToolBox - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-02 - **Last Updated**: 2025-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ToolBox - 小工具箱 一个功能完整的小工具箱,支持图形界面和命令行操作,可以方便地添加新工具。 ## 功能特性 - 🎨 **精美界面**: 基于 React + Tailwind CSS 的现代化界面 - 🔍 **智能搜索**: 支持工具名称、描述、分类的模糊搜索 - 📱 **桌面应用**: 基于 Electron 的跨平台桌面应用 - 💻 **命令行支持**: 完整的 CLI 工具,支持终端调用 - 🤖 **MCP 集成**: 所有工具都可通过 HTTP API 被 AI 调用 - ⚡ **快速启动**: 基于 Vite 的极速启动 - 🔧 **易于扩展**: 简单的工具开发接口 ## 快速开始 ### 安装依赖 ```bash npm install ``` ### 开发模式 ```bash # 启动开发服务器 (前端 + 后端) npm run dev # 或者分别启动 npm run dev:server # 后端服务器 (端口 3001) npm run dev:client # 前端开发服务器 (端口 3000) ``` ### 构建应用 ```bash # 构建所有组件 npm run build # 构建桌面应用 npm run build:electron ``` ### 启动桌面应用 ```bash npm start ``` ## 命令行使用 ```bash # 列出所有工具 npm run cli list # 搜索工具 npm run cli search "文本" # 获取工具信息 npm run cli info text-formatter # 执行工具 npm run cli exec text-formatter -p '{"text":"hello world","operation":"uppercase"}' ``` ## 添加新工具 1. 在 `src/server/tools/builtin/` 目录下创建新的工具类 2. 继承 `Tool` 基类并实现必要的方法 3. 在 `ToolManager` 中注册新工具 示例: ```typescript import { Tool, ToolParameter, ToolResult } from '../Tool'; export class MyTool extends Tool { public readonly id = 'my-tool'; public readonly name = '我的工具'; public readonly description = '这是一个示例工具'; public readonly category = '示例分类'; public readonly icon = 'star'; public readonly parameters: ToolParameter[] = [ { name: 'input', type: 'string', required: true, description: '输入内容' } ]; public async execute(parameters: any): Promise { const { input } = parameters; try { const result = `处理结果: ${input}`; return { success: true, data: result, message: '处理完成' }; } catch (error) { return { success: false, error: `处理失败: ${error instanceof Error ? error.message : '未知错误'}` }; } } } ``` ## API 接口 ### 获取所有工具 ``` GET /api/tools ``` ### 获取特定工具 ``` GET /api/tools/:id ``` ### 执行工具 ``` POST /api/tools/:id/execute Content-Type: application/json { "parameters": { "param1": "value1", "param2": "value2" } } ``` ### 搜索工具 ``` GET /api/search?q=搜索关键词 ``` ### 获取最近使用的工具 ``` GET /api/recent?limit=5 ``` ### MCP 兼容接口 ``` GET /api/mcp/tools POST /api/mcp/tools/:id/execute ``` ## 技术栈 - **前端**: React 18 + TypeScript + Tailwind CSS + Vite - **后端**: Node.js + Express + TypeScript - **桌面**: Electron - **构建**: Vite + Electron Builder - **图标**: Lucide React - **搜索**: Fuse.js ## 项目结构 ``` src/ ├── client/ # 前端 React 代码 │ ├── components/ # React 组件 │ ├── App.tsx # 主应用组件 │ └── main.tsx # 前端入口 ├── server/ # 后端 Express 代码 │ ├── tools/ # 工具实现 │ │ └── builtin/ # 内置工具 │ ├── routes/ # API 路由 │ └── index.ts # 服务器入口 ├── shared/ # 共享类型定义 ├── electron/ # Electron 主进程 └── cli.ts # 命令行入口 ``` ## 开发指南 ### 添加新工具 1. 创建工具类文件 `src/server/tools/builtin/MyTool.ts` 2. 实现 `Tool` 基类的所有抽象方法 3. 在 `ToolManager` 的 `initializeBuiltinTools` 方法中注册新工具 4. 重启开发服务器 ### 自定义界面 - 修改 `src/client/App.tsx` 调整主界面布局 - 在 `src/client/components/` 中添加新组件 - 修改 `tailwind.config.js` 自定义样式 ### 部署 ```bash # 构建生产版本 npm run build # 打包桌面应用 npm run build:electron ``` ## 许可证 MIT License