OpenCodeスキルシステム完全ガイド:カスタマイズ・拡張・MCP・プラグイン
OpenCodeのスキルシステムを徹底解説。カスタマイズ方法、MCPやプラグインによる拡張、スキル開発のチュートリアルを紹介。
OpenCodeのスキルシステムとは
OpenCodeは、AIアシスタントとしてコード生成や解析を得意としますが、その機能は「スキル」と呼ばれるモジュールによって拡張できます。スキルシステムを活用することで、特定のタスクに特化した動作や、外部サービスとの連携が可能になります。本記事では、スキルの基本概念からカスタマイズ、拡張方法までを実践的に解説します。
スキルの基本構造
スキルは以下の要素で構成されます:
OpenCodeは標準で複数のスキルを搭載していますが、ユーザーが独自に定義することも可能です。
スキルのカスタマイズ方法
1. 設定ファイルの編集
OpenCodeのスキルは、JSONまたはYAML形式の設定ファイルで管理されます。例えば、skills/my-skill.yaml を作成します:
name: "custom-skill"
description: "特定のフレームワーク用のコード生成"
triggers:
- "generate:react-component"
actions:
- type: "code-generation"
language: "javascript"
template: |
import React from 'react';
const {{componentName}} = () => {
return <div>{{content}}</div>;
};
export default {{componentName}};
context:
componentName: "string"
content: "string"
このスキルは、「generate:react-component」というトリガーで発動し、Reactコンポーネントのテンプレートを生成します。
2. スキルの有効化
作成したスキルを有効にするには、OpenCodeの設定でスキルディレクトリを指定します。
opencode --skills-dir ./skills
または、GUI設定画面からスキルをインポートすることもできます。
MCPによる拡張
MCP(Model Context Protocol)は、OpenCodeが外部ツールやデータソースと連携するためのプロトコルです。スキルからMCPサーバーを呼び出すことで、データベース検索やファイル操作などを実行できます。
MCPスキルの例
name: "db-query"
description: "データベースにクエリを実行"
triggers:
- "query:database"
actions:
- type: "mcp-call"
server: "my-db-server"
method: "query"
params:
sql: "{{query}}"
context:
query: "string"
このスキルは、MCPサーバー「my-db-server」に対してクエリを送信し、結果を返します。MCPサーバーは別途設定が必要ですが、一度構築すれば複数のスキルから再利用可能です。
プラグインによる拡張
プラグインは、スキルよりも高度な拡張方法です。プラグインはJavaScriptやPythonで記述でき、OpenCodeの内部APIにアクセスできます。
プラグインの作成手順
plugins/my-plugin/main.jsmodule.exports = {
name: 'my-plugin',
hooks: {
'before-response': (context) => {
// 応答前に処理を追加
context.response = context.response.toUpperCase();
},
},
};
{
"plugins": ["./plugins/my-plugin"]
}
プラグインは、スキルの実行前後や、メッセージの送受信時にフックできます。これにより、ログ記録や入力変換などが可能です。
実践的なスキル開発チュートリアル
ステップ1:スキルの要件定義
例えば、「コードレビュー支援スキル」を作成します。このスキルは、コードのスタイル違反を検出し、修正案を提示します。
ステップ2:スキルファイルの作成
name: "code-review"
description: "コードレビューを実行し、スタイル違反を指摘"
triggers:
- "review:code"
actions:
- type: "code-analysis"
rules:
- "no-unused-vars"
- "prefer-const"
format: "markdown"
ステップ3:テストと調整
実際にトリガーを実行し、期待通り動作するか確認します。必要に応じてルールを追加・変更します。
ステップ4:共有・配布
作成したスキルは、YAMLファイル単体で共有できます。コミュニティで公開することで、他のユーザーも利用可能です。
まとめ
OpenCodeのスキルシステムは、カスタマイズ性が高く、MCPやプラグインと組み合わせることで強力な拡張が可能です。本記事で紹介した方法を参考に、自分だけのスキルを作成してみてください。公式ドキュメントやコミュニティフォーラムも活用すると、さらに高度な活用ができるでしょう。