Claude Code は便利だけど、趣味開発まで課金するかと言われると少し悩む。 というわけでローカル LLM と MCP を組み合わせて無課金でいい感じにできないか試してみた時のメモ。
課金したくない
仕事では Claude Code を使っている。
便利なのはよく分かっているんだけど、趣味開発まで課金するかと言われると少し悩ましかった。
可処分時間でちまちまと触っているだけなので、課金したけど一ヶ月触りませんでした、というのも普通にあり得る。
そうなるとさすがにもったいない。
できれば課金したくない。
ついでに言うとローカル LLM も気になっていたので、無料でどこまでできるのか M4 Mac mini (32GB) の上でローカル LLM を動かして色々試したかった。
とりあえず Qwen を使った
今回使ったのは Qwen 3.5 9B の MTP 版。
特別な理由はなくて、
- GGUF が手に入りやすい
- llama.cpp で動かしやすい
というだけ。
まずは動かしてみるのが目的だったので、そこまで深く考えず Qwen を選んだ。
Claude Code に llama-server を認識させる
Qwen を llama.cpp の llama-server で起動しても、そのままでは Claude Code から接続できない。
まずは Claude Code 側からローカル LLM を使えるように設定する。
ANTHROPIC_BASE_URL と ANTHROPIC_AUTH_TOKEN を設定すると Claude Code が llama-server に接続できるようになる。
その他にも、テレメトリとかあってもしょうがないのでまとめて以下の環境変数を入れておくと面倒が減る。
export ANTHROPIC_BASE_URL="http://127.0.0.1:8080"
export ANTHROPIC_MODEL="qwen3.5"
export ANTHROPIC_AUTH_TOKEN="llama"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1"
export DISABLE_NON_ESSENTIAL_MODEL_CALLS="1"
export CLAUDE_CODE_ATTRIBUTION_HEADER="0"
export CLAUDE_CODE_ENABLE_TELEMETRY="0"
Claude Code の WebSearch が使えない
最初に困ったのが WebSearch を使った上で結果が 0 件になること。
どうやら、Claude Code の WebSearch や WebFetch は Claude 側のサービスを利用する機能なので、ツール呼び出し自体は成功する。
ただ、有料アカウントでログインしていないと結果は 0 件になってしまう。
Qwen がその結果を受け取って「情報が存在しない」と判断したり、存在しない情報を補完しようとしておかしな推論を始める。
今回はできるだけ無課金で試したかったので、これらの機能は使えない。
普通に困る。
GitHub Actions の書き方を確認したり、Hugo の仕様を調べたりすることは普通にある。
いくつかの MCP で無理矢理代用した
最終的には以下の MCP を追加した。
DuckDuckGo Search MCP Server と Fetch MCP Server は検索とページ取得用。
Context7 はドキュメント参照用で、GitHub Actions や Hugo の情報を見る時に使える。
リポジトリ探索の確認が面倒だった
実際に使っていて一番面倒だったのはこっちかもしれない。
AI がこちらの要求に従ってリポジトリを探索しようとすると find を実行する。
ただ、そのたびに
- このコマンドを実行しますか?
- この操作を許可しますか?
みたいな確認が出る。
最初は別にいいかと思っていたんだけど、思った以上に何度も出る。
さすがに面倒になった。
Rust MCP FileSystem を追加した
そこで追加したのが Rust MCP FileSystem という MCP。
{
"mcpServers": {
"project-files": {
"type": "stdio",
"command": "rust-mcp-filesystem",
"args": [
"-w",
"/path/to/my/project"
]
}
}
}
こんな感じの設定をすることで、ブログのリポジトリ配下を MCP 経由で読み書きできるようにした。
これを入れると Claude Code がリポジトリを探索するたびに yes/no を押す必要がなくなる。
今回入れた MCP の中では一番効果を感じた。
実際、
find . -type f -name "*.md" -exec grep "hoge" {} +
みたいな探索をかなり頻繁にやるので、これがあるだけで体験がだいぶ変わる。
実際に試したこと
今回のテストで使ったのはこのブログ。
このブログは Hugo で構築されているので Markdown ファイルが多く、ざっと探して何かやらせるのにちょうどよかった。
そんなわけで Claude Code にリポジトリ全体を読ませてみた。
やらせたのは「GitHub Actions を使ってブログにタグをつけ忘れていないかチェックする機能」の実現可能性調査と実装。
これで、単純なコード生成ではなく、
- リポジトリ構造の理解
- Hugo コンテンツの解析
- GitHub Actions の修正
あたりをまるっと試せる。
普段仕事で Claude Code に投げるザックリ系の調査タスクに近い。
思ったより余裕はない
最初は M4 Mac mini 32GB なら余裕だろうと思っていた。
実際ちゃんと動く・・・けど、結構なメモリを使うので思っていたほど快適ではない。
Claude Code を動かしながらブラウザを開いて、別の作業をして・・・みたいなことをやろうとすると割と気になる。
ローカル LLM 専用機として使うならいいんだけど、普段使いのマシンとして並行して他のことをやるには少し重い。
そんな感じだったので、モデルや KV Cache 周りは多少抑えめにしている。
実際に使っていた設定はこんな感じ。
メモリ容量別設定
| 設定項目 | メモリ 32GB | メモリ 16GB | メモリ 8GB |
|---|---|---|---|
| –model (モデル) | Qwen3.5-9B-UD-Q4_K_XL.gguf | Qwen3.5-9B-UD-Q4_K_XL.gguf | Qwen3.5-4B-UD-Q4_K_XL.gguf |
| –ctx-size | 65536 | 65536 | 65536 |
| –cache-type-k | q8_0 | q4_0 | q4_0 |
| –cache-type-v | q8_0 | q4_0 | q4_0 |
| –spec-draft-type-k | q8_0 | iq4_nl | iq4_nl |
| –spec-draft-type-v | q8_0 | iq4_nl | iq4_nl |
実際に持っているのは M4 Mac mini (32GB) なので、 16GB と 8GB は手元で試したわけではなく動きそうな設定を整理したメモ。
その他、基本的な引数はこんな感じ。
--batch-size 1024
--cache-ram 1024
--ctx-checkpoints 32
--flash-attn on
--kv-unified
--timeout 1200
--ubatch-size 512
--log-verbosity 4
--spec-type draft-mtp
困るくらい遅い
遅い。
かなり遅い。
無料で試せるという意味では十分面白い。
ただ、日常的に使いたいかと言われるとかなり厳しい。
指示を間違えたことに後から気付くと長時間のロスになるし、途中で意図が伝わっていないことが分かると余計な時間が更に増える。
正直「これを毎日使うなら Claude Code に課金した方がどう考えても良いな・・・」という結論になった。
仕事で Claude Code を使っていると特に差を感じる。
なので、これを触って「AI コーディングってこんなものか」と思ってしまうのは少しもったいない。
少なくとも Claude Code のコーディング体験はもっと快適なので、ちゃんと体験してみると印象は変わると思う。
もっと言うとローカル LLM にこだわるなら Windows で良い GPU 積んだ方が絶対に快適なので、ローカル LLM のために Mac を買うのはおすすめしない。
もし今から試すなら
今から試すなら Gemma 4 E4B の方が良さそう。
thinking を有効にしても比較的軽いので、
- 壁打ち
- 要件整理
- 実装相談
みたいな用途ならこっちの方が快適かもしれない。
※有効化方法
--chat-template-kwargs '{"enable_thinking":true}'
まとめ
無課金で Claude Code を使った AI コーディングを試すこと自体は十分できた。
ただ、そのままだと結構つらい。
特に
- WebSearch が使えない
- WebFetch が使えない
- リポジトリ探索時の確認が多い
あたりはかなりストレスになる。
今回試した範囲だと、
あたりはほぼ必須だった。
特に Rust MCP FileSystem はリポジトリ探索時の確認地獄から解放されてかなり快適になるのでおすすめ。
というか、これは普通に仕事で Claude Code を使う時でも便利そうだった。
最終的に「無料で AI コーディングを体験する」という目的は達成できた。
Claude Code を無課金で使う方法としては十分実用的だと思う。
ただ、実際に試してみると Claude Code の価値はモデル性能だけではなく速度や使い勝手も含めた体験全体なんだなと痛感した。
最後に
この文章は今回やった内容を箇条書きのメモにして設定した環境変数や .mcp.json などの設定ファイルを ChatGPT に渡して文章を作らせてみた。
だめだった。
結局、出てきた文章の大半を自分で書きなおした。
メモだけでコンテンツを作らせるには、問題設定や情報を整理して提供する人間側の能力がまだまだ足りなかった。
少なくとも、このブログを書く仕事はもう少しだけ自分の担当になりそうだった。
