「魔法」の裏側を知りたくないですか?
Claude Codeに「このファイルのバグを直して」と言うと、勝手にファイルを読み、修正し、保存してくれます。 また、「天気を教えて」と言えば、外部APIを叩いて答えてくれます。
まるで魔法のようですが、裏側では非常に論理的なプロセスが動いています。
本記事では、エンジニア向けに**「Claude CodeでSKILLS(スキル)が発動する仕組み」**を徹底的に解剖します。
ここを理解すれば、あなたはClaude Codeを「ただ使う人」から「自在に操る人(ツール開発者)」になれます。
1. 全体像:発動までの4ステップ
Claude Codeがスキルを実行する時、内部では以下の4段階のプロセスが走っています。
- ツール定義の読み込み (Tool Definition)
- 意図の検出 (Intent Detection)
- 引数の生成 (Argument Generation)
- 実行と結果のフィードバック (Execution & Feedback)
それぞれ詳しく見ていきましょう。
Step 1. ツール定義の読み込み
Claude Codeが起動する時、設定ファイルや MCP (Model Context Protocol) サーバーから、「自分は何ができるか」というリストを読み込みます。
|
|
Step 2. 意図の検出 (Intent Detection)
ユーザーが「src/main.py の中身が見たい」と発言したとします。
Claudeの脳内(推論プロセス)では、以下のような思考が行われます。
ユーザーはファイルの中身を知りたがっている。 私の持っている道具リストの中に、それを叶えるものはあるか? …あった。
read_fileだ。 この道具を使おう。
これが Function Calling(関数呼び出し) のトリガーです。
Step 3. 引数の生成 (Argument Generation)
道具を使うと決めたら、次は「どう使うか」を決めます。
定義書の parameters に従って、必要な情報を会話履歴から抽出します。
- ユーザーの発言: “
src/main.pyの中身…” - 引数
path:"src/main.py"
Claudeは以下のような特殊なトークン(またはJSON)を出力します。
<tool_use>
<name>read_file</name>
<parameters>
{"path": "src/main.py"}
</parameters>
</tool_use>
Step 4. 実行と結果のフィードバック
ここが重要です。Claude自身がファイルを読むわけではありません。
Claudeが出力した上記のJSONを、Claude Codeのランタイム(実行環境) が受け取ります。
そして、PythonやNode.jsで書かれた実際のプログラム(open() 関数など)が実行されます。
実行結果(ファイルの中身)は、再びテキストとしてClaudeに返されます。
<tool_result>
import os
print("Hello World")
</tool_result>
これを見て初めて、Claudeは「ファイルの中身はこうなっていました」とユーザーに回答できるのです。
2. MCP (Model Context Protocol) とは?
最近話題の MCP は、この「ツールの渡し方」を標準化した規格です。
これまで、Claudeに独自のツールを追加するには、複雑な設定が必要でした。 しかしMCPを使えば、「MCPサーバー」 を立ち上げるだけで、Claude Codeが勝手にツールを認識してくれます。
仕組み
- MCPサーバー: ツール(関数)の実装を持つプロセス。
- MCPクライアント: Claude Code本体。
クライアントとサーバーが通信し、「使えるツール一覧」と「実行リクエスト」をやり取りします。 これにより、ローカルのデータベース操作や、社内APIへのアクセスが安全かつ簡単に実装できるようになりました。
まとめ
Claude Codeの「SKILLS」は、魔法ではありません。 「定義を読む」→「選ぶ」→「JSONを作る」→「実行結果を読む」 という、非常に泥臭いテキスト処理のループです。
しかし、この仕組みを理解していれば、あなたはClaude Codeを 「ただの話し相手」から 「手足となって働く最強のパートナー」 に進化させることができます。
ぜひ、自分だけのカスタムスキルを作ってみてください。