关于 shipshape-mcp
shipshape-mcp 是面向编码 Agent 的开源 MCP 服务,用于检查 Dockerfile 和 Kubernetes 清单,并返回 A–F 等级及包含行号、修复建议和参考资料的问题。
主要功能
- 01检查 Dockerfile 和 Kubernetes 清单
- 02检查 Pod Security Standards 与资源设置
- 03发现 root 用户和明文密钥等风险
- 04返回等级、问题和修复建议
适用场景
- 01交付前审查容器配置文件
- 02检查 Kubernetes 清单中的安全问题
MCP 相关
向 MCP 客户端提供 `lint` 工具,可检查文本内容或文件路径。服务通过 stdio 在本地运行,并调用 Shipshape API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx bytestay-shipshape-mcpRAPIDAPI_KEY密钥Your RapidAPI keyAPI_MARKET_KEY密钥Your api.market key, used when RAPIDAPI_KEY is not setBYTESTAY_MARKETPLACErapidapi or apimarket, when both keys are set (the old name HFL_MARKETPLACE still works)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Shipshape MCP 服务
让你的编码 Agent 在交接前检查 Dockerfile 或 Kubernetes 清单:最终阶段以 root 身份运行、基础镜像未固定版本、curl | sh、ENV/ARG 中的密钥、Pod Security Standards、资源和探针。
此服务开源(MIT)。它会调用Shipshape API,该 API 为付费服务,但提供免费套餐。
- 使用你自己的密钥,可从 RapidAPI 或 api.market 获取。
- 每次工具调用都会消耗套餐中的一次请求。
- 免费 Basic 套餐每月有 15 次请求,并设有硬性上限,因此不会产生额外账单。
1. 获取密钥
| 平台 | |
|---|---|
| RapidAPI | 套餐 |
| api.market | 商店 |
2. 将服务添加到 MCP 客户端
此服务通过 uv 在本地使用 stdio 运行。将密钥放入其环境变量中。
JSON 配置(Claude Desktop、Cursor、VS Code 和大多数客户端):
{
"mcpServers": {
"shipshape": {
"command": "uvx",
"args": ["--from", "bytestay-shipshape-mcp", "shipshape-mcp"],
"env": { "RAPIDAPI_KEY": "your-rapidapi-key" }
}
}
}
Claude Code:
claude mcp add shipshape --env RAPIDAPI_KEY=your-rapidapi-key -- uvx --from bytestay-shipshape-mcp shipshape-mcp
环境变量
| 变量 | 含义 |
|---|---|
RAPIDAPI_KEY | 你的 RapidAPI 密钥 |
API_MARKET_KEY | 你的 api.market 密钥;仅在未设置 RAPIDAPI_KEY 时使用 |
HFL_MARKETPLACE | 两个密钥都已设置时,指定 rapidapi 或 apimarket |
即使没有密钥,服务仍会启动。首次调用工具时,会说明如何获取密钥。
也已在 Glama 上列出:
3. 工具
| 工具 | 功能 |
|---|---|
lint(content=… | path=…, type="auto", fail_on="high", ignore=[…]) | 检查单个文件,并返回 A–F 等级、分数、passed,以及每项发现的问题、对应行、修复方法和参考资料 |
- 使用
path时,名称类似Dockerfile、*.Dockerfile、Dockerfile.*或Containerfile的文件会作为 Dockerfile 检查。 - 当某项发现的问题达到或超过
fail_on时,passed为 false。
每个工具都会返回 API 的 JSON 响应。
- 如果平台提供此信息,响应中会添加
quota_remaining:本月套餐剩余的请求次数。 - 错误会用通俗易懂的语言说明,并告知后续操作:
- 密钥被拒绝,并附上订阅链接;
- 配额已用完,并附上套餐信息;
- API 无法处理的输入,并附上 API 给出的原因。
隐私
- 仅当工具收到文件路径时才会读取本地文件,并且只会为该次请求将文件发送到 API。
- API 会在内存中处理输入,不会存储这些内容。请参阅隐私政策。
- 你的密钥只会发送给你选择的平台。
限制
- 文件最大为 512 KiB。
- 必须先渲染 Helm 模板(
helm template)。 - 不会检查 NetworkPolicies、PodDisruptionBudgets 和 RBAC。
- 服务需要 Python 3.10+(uv 会为你安装)。
开发
uv venv && uv pip install -e ".[dev]"
.venv/bin/pytest # unit tests, no network; 100% coverage required
.venv/bin/ruff check src tests scripts
scripts/e2e_stdio.py shipshape 会像客户端一样通过 stdio 运行服务,并调用其工具访问真实 API。需要设置 RAPIDAPI_KEY 或 API_MARKET_KEY。
许可
MIT。Shipshape 本身是由 ByteStay 提供的付费 API,并有免费套餐。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。