Skip to content

なぜCLIなのか、MCPではないのか?

学習後にできること

本レッスンでは、以下の内容を理解できます:

  • ✅ MCPとスキルシステムのポジショニングの違いを理解する
  • ✅ なぜCLIがスキル読み込みに適しているかを理解する
  • ✅ OpenSkillsの設計哲学を習得する
  • ✅ スキルシステムの技術原理を理解する

現在の課題

あなたは次のような疑問を持っているかもしれません:

  • "なぜより進んだMCPプロトコルを使わないのか?"
  • "CLI方式は古すぎるのではないか?"
  • "MCPの方がAI時代の設計に適しているのではないか?"

本レッスンでは、これらの設計決定の背後にある技術的な考察を解説します。


核心問題:スキルとは何か?

CLI vs MCPを議論する前に、「スキル」の本質を理解しましょう。

スキルの本質

スキルの定義

スキルは静的命令 + リソースの組み合わせであり、以下を含みます:

  • SKILL.md:詳細な操作ガイドとプロンプト
  • references/:参考ドキュメント
  • scripts/:実行可能なスクリプト
  • assets/:画像、テンプレートなどのリソース

スキルは動的サービス、リアルタイムAPI、サーバー実行が必要なツールではありません

Anthropicの公式設計

Anthropicのスキルシステムはもともとファイルシステムに基づいて設計されています:

  • スキルは SKILL.md ファイルの形式で存在
  • <available_skills> XMLブロックで使用可能なスキルを記述
  • AIエージェントが必要に応じてファイル内容をコンテキストに読み込み

このため、スキルシステムの技術選択はファイルシステムと互換性がある必要があります。


MCP vs OpenSkills:ポジショニング比較

比較項目MCP(Model Context Protocol)OpenSkills(CLI)
適用シーン動的ツール、リアルタイムAPI呼び出し静的命令、ドキュメント、スクリプト
実行要件MCPサーバーが必要サーバー不要(純粋なファイル)
エージェントサポートMCPをサポートするエージェントのみAGENTS.md を読み込めるすべてのエージェント
複雑さサーバーデプロイとメンテナンスが必要ゼロコンフィグ、そのまま使える
データソースサーバーからリアルタイムに取得ローカルファイルシステムから読み込み
ネットワーク依存必要不要
スキル読み込みプロトコル呼び出し経由ファイル読み込み経由

なぜCLIがスキルシステムに適しているのか?

1. スキルはファイルである

MCPはサーバーが必要:MCPサーバーをデプロイし、リクエスト、レスポンス、プロトコルハンドシェイクなどを処理...

CLIはファイルのみ

bash
# スキルはファイルシステムに保存される
.claude/skills/pdf/
├── SKILL.md              # メイン命令ファイル
├── references/           # 参考ドキュメント
   └── pdf-format-spec.md
├── scripts/             # 実行可能なスクリプト
   └── extract-pdf.py
└── assets/              # リソースファイル
    └── pdf-icon.png

メリット

  • ✅ ゼロコンフィグ、サーバー不要
  • ✅ スキルをバージョン管理可能
  • ✅ オフラインで使用可能
  • ✅ デプロイが簡単

2. 汎用性:すべてのエージェントで使用可能

MCPの制限

MCPプロトコルをサポートするエージェントのみが使用できます。Cursor、Windsurf、AiderなどのエージェントがそれぞれMCPを実装すると、以下の問題が生じます:

  • 重複開発作業
  • プロトコル互換性の問題
  • バージョン同期の困難

CLIのメリット

シェルコマンドを実行できるすべてのエージェントで使用可能:

bash
# Claude Codeからの呼び出し
npx openskills read pdf

# Cursorからの呼び出し
npx openskills read pdf

# Windsurfからの呼び出し
npx openskills read pdf

統合コストゼロ:エージェントがシェルコマンドを実行できるだけで十分です。

3. 公式設計に準拠

Anthropicのスキルシステムはもともとファイルシステム設計であり、MCP設計ではありません:

xml
<!-- AGENTS.md内のスキル記述 -->
<available_skills>
<skill>
<name>pdf</name>
<description>Comprehensive PDF manipulation toolkit...</description>
<location>project</location>
</skill>
</available_skills>

呼び出し方法

bash
# 公式設計の呼び出し方法
npx openskills read pdf

OpenSkillsはAnthropicの公式設計を完全に遵守しており、互換性を保っています。

4. 段階的な読み込み(Progressive Disclosure)

スキルシステムの核心的メリット:必要に応じて読み込み、コンテキストを簡潔に保ちます。

CLIの実装

bash
# 必要なときだけスキル内容を読み込む
npx openskills read pdf
# 出力:SKILL.mdの完全な内容を標準出力へ

MCPの課題

MCPで実装する場合、以下が必要です:

  • スキルリストを管理するサーバー
  • 段階的な読み込みロジックの実装
  • コンテキスト管理の処理

一方、CLI方式は段階的な読み込みを自然にサポートしています。


MCPの適用シーン

MCPが解決する問題はスキルシステムと異なります

MCPが解決する問題
リアルタイムAPI呼び出しOpenAI API呼び出し、データベースクエリ
動的ツール電卓、データ変換サービス
リモートサービス統合Git操作、CI/CDシステム
状態管理サーバー状態を維持する必要があるツール

これらのシーンではサーバープロトコルが必要であり、MCPが正しい選択です。


スキルシステム vs MCP:競合関係ではない

核心的な観点:MCPとスキルシステムは異なる問題を解決しており、どちらか一方を選ぶものではありません。

スキルシステムのポジショニング

[静的命令] → [SKILL.md] → [ファイルシステム] → [CLI読み込み]

適用シーン:

  • 操作ガイドとベストプラクティス
  • ドキュメントと参考資料
  • 静的スクリプトとテンプレート
  • バージョン管理が必要な設定

MCPのポジショニング

[動的ツール] → [MCPサーバー] → [プロトコル呼び出し] → [リアルタイムレスポンス]

適用シーン:

  • リアルタイムAPI呼び出し
  • データベースクエリ
  • 状態が必要なリモートサービス
  • 複雑な計算と変換

補完関係

OpenSkillsはMCPを排斥するのではなく、スキル読み込みに特化しています:

AIエージェント
  ├─ スキルシステム(OpenSkills CLI)→ 静的命令を読み込む
  └─ MCPツール → 動的サービスを呼び出す

これらは補完関係にあり、代替関係ではありません。


実際の事例:どれを使用すべきか?

事例1:Git操作の呼び出し

スキルシステムには不適

  • Git操作は動的であり、リアルタイムの対話が必要
  • Gitサーバーの状態に依存

MCPに適

bash
# MCPツール経由で呼び出し
git:checkout(branch="main")

事例2:PDF処理ガイド

MCPには不適

  • 操作ガイドは静的
  • サーバー実行は不要

スキルシステムに適

bash
# CLI経由で読み込み
npx openskills read pdf
# 出力:詳細なPDF処理手順とベストプラクティス

事例3:データベースクエリ

スキルシステムには不適

  • データベースへの接続が必要
  • 結果は動的

MCPに適

bash
# MCPツール経由で呼び出し
database:query(sql="SELECT * FROM users")

事例4:コードレビュー基準

MCPには不適

  • レビュー基準は静的ドキュメント
  • バージョン管理が必要

スキルシステムに適

bash
# CLI経由で読み込み
npx openskills read code-review
# 出力:詳細なコードレビューチェックリストと例

将来:MCPとスキルシステムの統合

可能な進化方向

MCP + スキルシステム

bash
# スキル内でMCPツールを参照
npx openskills read pdf-tool

# SKILL.mdの内容
本スキルではMCPツールを使用します:

1. mcp:pdf-extractを使用してテキストを抽出
2. mcp:pdf-parseを使用して構造を解析
3. 本スキルが提供するスクリプトで結果を処理

メリット

  • スキルは高度な命令とベストプラクティスを提供
  • MCPは基礎的な動的ツールを提供
  • 両者を組み合わせることで、より強力な機能を実現

現在の段階

OpenSkillsがCLIを選択した理由は以下の通りです:

  1. スキルシステムはすでに成熟したファイルシステム設計である
  2. CLI方式は実装がシンプルで汎用性が高い
  3. 各エージェントによるMCPサポートの実装を待つ必要がない

レッスンのまとめ

OpenSkillsがCLIを選択しMCPを採用しなかった核心的な理由:

核心的な理由

  • スキルは静的ファイル:サーバー不要、ファイルシステムに保存
  • 汎用性が高い:すべてのエージェントで使用可能、MCPプロトコルに依存しない
  • 公式設計に準拠:Anthropicのスキルシステムはもともとファイルシステム設計
  • ゼロコンフィグデプロイ:サーバー不要、そのまま使える

MCP vs スキルシステム

MCPスキルシステム(CLI)
動的ツール静的命令
サーバーが必要純粋なファイルシステム
リアルタイムAPIドキュメントとスクリプト
プロトコルサポートが必要統合コストゼロ

競合ではなく補完

  • MCPは動的ツールの問題を解決
  • スキルシステムは静的命令の問題を解決
  • 両者を組み合わせて使用可能

関連ドキュメント


付録:ソースコード参照

クリックしてソースコードの場所を表示

更新日時:2026-01-24

機能ファイルパス行番号
CLIエントリーポイントsrc/cli.ts39-80
readコマンドsrc/commands/read.ts1-50
AGENTS.md生成src/utils/agents-md.ts23-93

重要な設計決定

  • CLI方式:npx openskills read <name>でスキルを読み込み
  • ファイルシステム保存:スキルは.claude/skills/または.agent/skills/に保存
  • 汎用互換性:Claude Codeと完全に互換性のあるXML形式を出力