README
🚀 现代CLI MCP服务器
现代CLI MCP服务器向AI/LLM代理公开了107种现代CLI工具。它提供了对文件系统、Git托管平台、容器、Kubernetes和数据转换工具的结构化JSON - RPC访问,所有输出均为JSON格式,便于AI处理。
🚀 快速开始
Claude桌面版 / Claude代码版
将以下内容添加到您的MCP配置中:
选项1:Nix(推荐)
{
"mcpServers": {
"modern-cli": {
"command": "nix",
"args": ["run", "github:NacoSolutions/modern-cli-mcp", "--"]
}
}
}
选项2:Docker
{
"mcpServers": {
"modern-cli": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/nacosolutions/modern-cli-mcp"]
}
}
}
选项3:二进制文件
{
"mcpServers": {
"modern-cli": {
"command": "/path/to/modern-cli-mcp"
}
}
}
✨ 主要特性
- 15个组中的107种工具:涵盖文件系统、搜索、Git(GitHub/GitLab)、容器、Kubernetes和数据处理等方面。
- AI优化输出:默认输出JSON格式,便于结构化解析。
- 访问控制:使用
.agentignore文件控制AI代理可以访问的文件。 - 零配置:Nix捆绑了所有依赖项,无需手动安装工具。
📦 安装指南
使用Flakes的Nix(推荐)
在Determinate Nix中,Flakes默认启用。对于标准Nix,可使用--experimental-features 'nix-command flakes'启用,或添加到~/.config/nix/nix.conf中:
experimental-features = nix-command flakes
直接运行(无需安装):
nix run github:NacoSolutions/modern-cli-mcp
安装到配置文件:
nix profile install github:NacoSolutions/modern-cli-mcp
添加到flake.nix:
{
inputs.modern-cli-mcp.url = "github:NacoSolutions/modern-cli-mcp";
# 在输出中使用
outputs = { self, nixpkgs, modern-cli-mcp }: {
# 添加到包、开发环境等
};
}
使用FlakeHub的Nix
FlakeHub提供了带有语义版本控制的版本化flake引用。
通过CLI添加到flake.nix:
fh add NacoSolutions/modern-cli-mcp
或手动添加:
{
inputs.modern-cli-mcp.url = "https://flakehub.com/f/NacoSolutions/modern-cli-mcp/*.tar.gz";
}
运行特定版本:
nix run "https://flakehub.com/f/NacoSolutions/modern-cli-mcp/0.2.tar.gz"
不使用Flakes的Nix(经典方式)
对于未启用flakes的Nix安装,该仓库通过flake - compat包含了一个default.nix:
从tarball构建:
nix-build https://github.com/NacoSolutions/modern-cli-mcp/archive/main.tar.gz -A defaultNix.default
./result/bin/modern-cli-mcp
或克隆并在本地构建:
git clone https://github.com/NacoSolutions/modern-cli-mcp
cd modern-cli-mcp
nix-build
./result/bin/modern-cli-mcp
安装到配置文件:
nix-env -if https://github.com/NacoSolutions/modern-cli-mcp/archive/main.tar.gz -A defaultNix.default
Docker
docker pull ghcr.io/nacosolutions/modern-cli-mcp
docker run --rm -i ghcr.io/nacosolutions/modern-cli-mcp
从源代码(Cargo)安装
需要将CLI工具分别安装到PATH中:
cargo install --git https://github.com/NacoSolutions/modern-cli-mcp
💻 使用示例
可用工具(70 +)
文件系统
| 工具 | 描述 |
|------|-------------|
| eza | 带有图标和Git集成的现代ls命令 |
| bat | 带有语法高亮的cat命令 |
| fd | 快速查找的替代工具 |
| duf | 磁盘使用情况查看器(JSON格式) |
| dust | 目录大小分析器 |
| trash_* | 安全的文件删除工具 |
搜索
| 工具 | 描述 |
|------|-------------|
| rg | 用于快速内容搜索的Ripgrep(JSON格式) |
| fzf_filter | 模糊过滤工具 |
| ast_grep | 基于AST的代码搜索工具(JSON格式) |
| web_search | DuckDuckGo网络搜索工具(JSON格式) |
Git托管平台
| 工具 | 描述 |
|------|-------------|
| gh_repo | GitHub仓库操作工具(JSON格式) |
| gh_issue | GitHub问题处理工具(JSON格式) |
| gh_pr | GitHub拉取请求处理工具(JSON格式) |
| gh_search | 搜索仓库、问题、拉取请求和代码(JSON格式) |
| gh_release | GitHub版本发布工具(JSON格式) |
| gh_workflow | GitHub Actions工作流工具(JSON格式) |
| gh_run | GitHub Actions运行工具(JSON格式) |
| gh_api | 直接访问GitHub API(JSON格式) |
| glab_issue | GitLab问题处理工具(JSON格式) |
| glab_mr | GitLab合并请求处理工具(JSON格式) |
| glab_pipeline | GitLab CI/CD管道工具(JSON格式) |
容器
| 工具 | 描述 |
|------|-------------|
| podman | 容器操作工具(JSON格式) |
| dive | 镜像层分析工具 |
| skopeo | 镜像仓库操作工具(JSON格式) |
| crane | 底层镜像仓库工具(JSON格式) |
| trivy | 安全漏洞扫描工具(JSON格式) |
Kubernetes
| 工具 | 描述 |
|------|-------------|
| kubectl_get | 获取资源(JSON格式) |
| kubectl_describe | 描述资源 |
| kubectl_logs | Pod日志查看工具 |
| kubectl_apply | 应用清单文件 |
| kubectl_delete | 删除资源 |
| kubectl_exec | 在Pod中执行命令 |
| stern | 多Pod日志聚合工具(JSON格式) |
| helm | 图表管理工具(JSON格式) |
| kustomize | 清单文件构建工具 |
数据转换
| 工具 | 描述 |
|------|-------------|
| jq | JSON处理器 |
| yq | YAML/JSON/XML处理器 |
| gron | 将JSON转换为可搜索格式 |
| htmlq | 用于HTML的jq工具 |
| pup | HTML解析器(JSON格式) |
| miller | 多格式处理器 |
| dasel | 通用数据选择器 |
网络
| 工具 | 描述 |
|------|-------------|
| http | HTTP请求工具(xh) |
| dns | DNS查询工具(doggo) |
| usql | 通用SQL客户端 |
系统
| 工具 | 描述 |
|------|-------------|
| procs | 进程查看器(JSON格式) |
| tokei | 代码统计工具(JSON格式) |
| hyperfine | 基准测试工具(JSON格式) |
差异/Git
| 工具 | 描述 |
|------|-------------|
| delta | 带有语法高亮的差异查看器 |
| difft | 结构化差异查看器 |
| git_diff | 带有高亮的Git差异查看器 |
实用工具
| 工具 | 描述 |
|------|-------------|
| tldr | 命令速查表工具 |
| grex | 正则表达式生成器 |
| ouch_* | 归档处理工具 |
| pueue_* | 任务队列工具 |
🔧 技术细节
架构
src/
├── main.rs # 入口点,MCP服务器设置
└── tools/
├── mod.rs # 工具注册和路由
└── executor.rs # 工具执行逻辑
服务器使用结构化的JSON输入/输出包装CLI工具。每个工具:
- 通过JSON Schema验证参数
- 构建适当的命令
- 执行并捕获输出
- 返回结构化结果
配置
Nix包捆绑了所有CLI工具。通过cargo运行时,确保工具在PATH中。
环境变量
RUST_LOG- 日志级别(默认:info)
.agentignore
使用.agentignore文件控制AI代理可以访问的文件。使用gitignore语法,但独立操作 - 工具仅遵循.agentignore,而不是.gitignore。
模式来源(按优先级排序):
~/.config/agent/ignore- 所有项目的全局模式.agentignore- 每个目录的模式(从工作目录向上查找)
示例.agentignore:
# 秘密和凭证
*.secret
.env*
secrets/
credentials.json
# 大型生成文件
node_modules/
target/
*.min.js
# 敏感数据
*.pem
*.key
行为:
- 被阻止的路径返回错误:
Path is blocked by .agentignore: /path/to/file - 搜索工具(fd、rg、ast - grep)自动应用忽略模式
- 子目录中的模式扩展(而不是替换)父目录的模式
📄 许可证
本项目采用MIT许可证。
Scan to join WeChat group