mimichat-ai/mimi-tools
GitHub: mimichat-ai/mimi-tools
mimi-tools 是一个为 LLM 智能体提供文件系统和 shell 访问能力的 MCP 工具服务器,专门针对大语言模型的易错特性进行容错设计,并通过容器化实现安全隔离。
Stars: 0 | Forks: 0
# mimi-tools
[](https://go.dev)
[](LICENSE)
[](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绕过, 请求拦截