shipshape-mcp について
shipshape-mcpは、DockerfileとKubernetesマニフェストを検査する、コーディングエージェント向けのオープンソースMCPサーバーです。A–Fの評価に加え、行番号、修正案、参照情報付きの指摘を返します。
主な機能
- 01DockerfileとKubernetesマニフェストを検査
- 02Pod Security Standardsとリソース設定を確認
- 03root実行や秘密情報の露出などを検出
- 04評価、指摘、修正案を返す
活用シーン
- 01引き渡し前のコンテナ設定ファイルの確認
- 02Kubernetesマニフェストのセキュリティ確認
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 サーバー
コーディングエージェントが Dockerfile や Kubernetes マニフェストを渡す前に lint を実行できるようにします。最終ステージでの root 実行、ピン留めされていないベースイメージ、curl | sh、ENV/ARG 内のシークレット、Pod Security Standards、リソース、プローブをチェックします。
このサーバーは MIT ライセンスのオープンソースです。有料(無料プランあり)の Shipshape API を呼び出します。
- RapidAPI または api.market で取得したご自身のキーを使用します。
- ツールを呼び出すたびに、プランのリクエストを 1 件使用します。
- 無料の 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 | RAPIDAPI_KEY が設定されていない場合に使われる api.market キー |
HFL_MARKETPLACE | 両方のキーが設定されている場合は、rapidapi または apimarket |
キーがなくてもサーバーは起動します。最初のツール呼び出し時に、キーの取得先が案内されます。
Glama にも掲載されています:
3. ツール
| ツール | 機能 |
|---|---|
lint(content=… | path=…, type="auto", fail_on="high", ignore=[…]) | 1 つのファイルを lint し、A〜F の評価、スコア、passed、および行番号、修正方法、参照情報を含むすべての検出結果を返します |
pathを指定した場合、Dockerfile、*.Dockerfile、Dockerfile.*、Containerfileという名前のファイルは Dockerfile として lint されます。- 検出結果が
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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。