Claude Code から Container を利用して立ち上げた MCP サーバーを利用する
やりたいこと
Container を利用して MCP サーバーを立ち上げて利用します。Claude Code のインストールについては割愛。 Container のセットアップ
インストール
最新のリリース から pkg をダウンロードして、インストールするだけ。 --help が表示できれば OK。
code:console
$ container --help
OVERVIEW: A container platform for macOS
USAGE: container --debug <subcommand> ...
立ち上げ
以下のコマンドでサービスが立ち上がる。初回は Linux カーネルのインストールが実施される。
code:console
$ container system start
Verifying apiserver is running...
Installing base container filesystem...
No default kernel configured.
Install the recommended default kernel from ? Y/n: Y Installing kernel...
起動中のコンテナ一覧を以下のコマンドで一覧できる。が、現時点では空っぽ。
code:console
$ container list --all
ID IMAGE OS ARCH STATE ADDR
Claude Code に MCP サーバーを登録する
利用するMCPサーバーを決める
GitHub の MCP サーバーの場合、事前にPATの発行が必要なので、こちら から発行しておく。 MCP サーバーのスコープを決める
local, project, user の三つのスコープがあり、狭いスコープから順番に解決される。
今回は user にしておく。
MCP サーバーの追加
以下のコマンドで追加できる。
code:console
$ claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=<発行したPAT> -s user -- container run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
Added stdio MCP server github with command: container run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server to user config
user スコープの場合、MCP サーバー設定は ~/.claude.json に追加される。今回は以下が末尾に追加されていた。
code:json
"mcpServers": {
"github": {
"type": "stdio",
"command": "container",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<発行したPAT>"
}
}
}
以下のコマンドで、ちゃんと追加されていることを改めて確認する。
code:console
$ claude mcp list
github: container run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
MCPサーバーを利用する
状態の確認
Claude Code を立ち上げて、
code:console
$ claude
MCP サーバーの状態を確認する。
code:console
/mcp
すると以下のように表示される。
code:console
╭──────────────────────────────────────────────────────────────────────╮
│ Manage MCP servers │
│ │
│ ❯ 1. github ✔ connected · Enter to view details │
╰──────────────────────────────────────────────────────────────────────╯
選択すると以下となっており、正常に起動できていることがわかる。
code:console
╭──────────────────────────────────────────────────────────────────────╮
│ Github MCP Server │
│ │
│ Status: ✔ connected │
│ Command: container │
│ Args: run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN │
│ ghcr.io/github/github-mcp-server │
│ Capabilities: tools · prompts │
│ Tools: 73 tools │
│ │
│ ❯ 1. View tools │
╰──────────────────────────────────────────────────────────────────────╯
ターミナルのウインドウを別で立ちあがて以下のコマンドでコンテナの状態を確認すると、MCP サーバーのコンテナが起動されていることがわかる。
code:console
$ container list --all
ID IMAGE OS ARCH STATE ADDR
c245cc12-d5a9-4371-a1a5-e75a599aad50 ghcr.io/github/github-mcp-server:latest linux arm64 running 192.168.64.3
利用
例えば、Claude Code 上から以下のように指示してみる。PersistentContainer は著者のプライベートリポジトリ。
code:console
LikePicsKit/Package.swiftに依存として追加されているPersistentContainerのREADMEをGitHubのMCP経由で取得して要約して
すると、以下のように許可を求められる。
code:console
⏺ I found that PersistentContainer is located at
README file from this repository.
⏺ github - Get file or directory contents (MCP)(owner: "tasuwo",
repo: "PersistentCon
tainer", path:
"README.md")
╭──────────────────────────────────────────────────────────────────────╮
│ Tool use │
│ │
│ github - Get file or directory contents(owner: "tasuwo", repo: │
│ "PersistentContainer", path: "README.md") (MCP) │
│ Get the contents of a file or directory from a GitHub repository │
│ │
│ Do you want to proceed? │
│ ❯ 1. Yes │
│ 2. Yes, and don't ask again for github - Get file or directory │
│ contents commands in /Users/tasuwo/workspace/LikePics │
│ 3. No, and tell Claude what to do differently (esc) │
│ │
╰──────────────────────────────────────────────────────────────────────╯
最終的に README を取得&要約できた。
code:console
⏺ github - Get file or directory contents (MCP)(owner: "tasuwo",
repo: "PersistentCon
tainer", path:
"README.md")
⎿ successfully downloaded text file
⎿ [Resource from github at repo://tasuwo/PersistentContainer/cont
ents/README.md] # PersistentContainer
… +157 lines (ctrl+r to expand)
⏺ PersistentContainer 要約
PersistentContainerは、NSPersistentCloudKitContainerをラップし、CloudKit同期、永続履歴トラッキング、マルチオーサーサポートを強化したSwiftパッケージです。
主な機能:
- CloudKit同期の動的な有効化/無効化
- Core Dataの永続履歴の自動追跡とクリーンアップ
- 複数のアプリインスタンスからの変更を処理するマルチオーサーサポート
要件:
- iOS 17.0+ / macOS 12.0+
- Swift 6.1+
使用方法:
1. PersistentContainerConfigurationで設定(author、モデルURL、マージポリシーなど)
2. PersistentContainerControllerで初期化
3. メインスレッド用のviewContextやバックグラウンド用のコンテキストを取得
4. CloudKit同期設定の動的変更に対応
5. 定期的な永続履歴のクリーンアップ機能