mimichat-ai/mimi-tools

GitHub: mimichat-ai/mimi-tools

mimi-tools 是一个为 LLM 智能体提供文件系统和 shell 访问能力的 MCP 工具服务器,专门针对大语言模型的易错特性进行容错设计,并通过容器化实现安全隔离。

Stars: 0 | Forks: 0

# mimi-tools [![Go](https://img.shields.io/badge/Go-1.26-00ADD8?logo=go)](https://go.dev) [![License](https://img.shields.io/badge/License-MIT-green)](LICENSE) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/31/31c96a8fe552af584b5983afc39ddf2e71ca6806185aad0eda564c77331e5b3e.svg)](https://github.com/mimichat-ai/mimi-tools/actions/workflows/go.yml) 一个为 LLM 智能体提供文件系统和 shell 访问权限的 MCP 工具服务器 —— 专为容忍 LLM 的怪癖而构建,并部署在容器中以实现安全隔离。 ## 设计理念 ### 为 LLM 的易错性而构建 - **宽容的参数解析。** LLM 经常将数字作为字符串发送(`"30"` 而不是 `30`),或者将布尔值作为字符串发送(`"true"` 而不是 `true`)。JSON schema 刻意在数字和布尔字段上省略 `type`,并且运行时会自动转换值 —— 工具调用不会因类型不匹配而失败。 - **模糊编辑匹配。** 当 LLM 的 `old_string` 与文件不完全匹配时(例如,缩进错误),编辑工具会回退到使用 Levenshtein 距离进行对空格不敏感的模糊匹配。即使 LLM 对空格的重构不完美,编辑也能成功。 - **结构化且可操作的错误。** 错误包含类型、原因、建议,并在相关时提供找到的最接近匹配的 diff —— 为 LLM 提供自我纠正的上下文,无需人工干预。 ### 完整的能力,受限的环境 - **没有命令限制。** `exec` 工具不使用黑名单或命令过滤 —— 它们很容易被绕过,并且会阻碍合法使用。安全性在容器层面处理:非 root 用户、只读文件系统、丢弃所有 capabilities。 - **完整的开发环境。** Docker 镜像内置了 Go、Node.js、Python、git 和开发工具(golangci-lint、delve 等)。LLM 智能体可以构建、测试、lint 和调试代码 —— 而不仅仅是读写文件。 ## 快速开始 ``` # 本地构建并运行 go build -o mimi-tools ./cmd/mimi-tools ./mimi-tools # → Server 正在监听 http://127.0.0.1:2333 ``` ``` # 在 container 中部署(推荐用于远程访问) docker build -t mimi-tools . docker run -p 2333:2333 -v /projects:/projects mimi-tools ``` ### 连接你的 MCP 客户端 **stdio 模式** (`claude_desktop_config.json`): ``` { "mcpServers": { "mimi-tools": { "command": "/path/to/mimi-tools", "args": [], "env": { "MIMI_TRANSPORT": "stdio" } } } } ``` **HTTP 模式**(用于远程客户端): ``` { "mcpServers": { "mimi-tools": { "url": "http://localhost:2333/" } } } ``` ## 工具 - **exec** — 执行 shell 命令 (sh -c / cmd /c) - **read** — 读取文件内容,支持可选的行范围 - **write** — 写入文件内容,如有需要会创建父目录 - **edit** — 替换匹配的字符串;回退到对空格不敏感的模糊匹配 - **tree** — 显示目录树结构(遵循 .gitignore) - **search_name** — 按名称搜索文件(glob / 正则表达式 / 子字符串) - **search_content** — 在文件中搜索文本并包含上下文行 ## 传输模式 | 模式 | `MIMI_TRANSPORT` | 用例 | |-------|-------------------|----------| | HTTP | `http` (默认) | 远程部署 | | SSE | `sse` | 旧版客户端 | | Stdio | `stdio` | 本地 MCP 客户端(例如,Claude Desktop) | ## 文档 - [DEPLOYMENT.md](DEPLOYMENT.md) — Docker/Podman 部署、deploy.sh、环境变量、安全加固 - [CONTRIBUTING.md](CONTRIBUTING.md) — 如何贡献 - [CHANGELOG.md](CHANGELOG.md) — 发布历史 ## 许可证 MIT
标签:Docker容器隔离, EVTX分析, Go, MCP工具服务器, Ruby工具, 人工智能, 大语言模型代理, 开发环境, 日志审计, 用户模式Hook绕过, 请求拦截