MCP HubMCP Hub
POST·BUILDY

初めてのAgent Plugin作成ガイド:ステップバイステップ解説

AIMCP Teamon 23 days ago · 1 min read

初めてのAgent Plugin作成ガイド:ステップバイステップ解説

Agent Plugins(v1.0.0)は、互換性のあるクライアント間で動作するエージェントコンポーネント(スキルとMCPサーバー)のためのポータブルなパッケージ規格です。このガイドでは、実際に仕様に準拠したプラグインをゼロから構築します:1つのスキルと1つのMCPサーバーを含むプラグインを作成し、公式スキーマに対して検証します。

ステップ1:パッケージ構成を作成する

プラグインは単なるディレクトリです。最初に必要な2つの要素を含めて作成します:

my-plugin/
├── plugin.json
├── skills/
│   └── summarize/
│       └── SKILL.md
└── mcp.json

ステップ2:マニフェストを作成する

plugin.jsonは唯一必須のファイルです。マニフェストスキーマはクローズドです — ポータブルなトップレベルフィールドは固定セットに限定されます:

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "summarize.tools",
  "version": "1.0.0",
  "description": "ドキュメント要約のためのスキルとサーバー",
  "author": {
    "name": "あなたの名前",
    "url": "https://example.com"
  },
  "homepage": "https://example.com/summarize-tools",
  "repository": "https://github.com/you/summarize-tools",
  "license": "MIT",
  "keywords": ["summarization", "documents", "llm"]
}

$schemanameのみが必須です。その他はオプションですが推奨されます:version(SemVer)、descriptionauthorhomepagerepositorylicense(SPDX)、および検索用のkeywords

注意: スキーマは設計上クローズドです。クライアント固有の設定は拡張名前空間に属し、トップレベルフィールドではありません。

ステップ3:スキルを追加する

スキルはskills/ディレクトリ内に配置され、Agent Skills仕様に従います。SKILL.mdファイルを含む各直下の子ディレクトリが1つのスキルです:

skills/
└── summarize/
    ├── SKILL.md
    ├── scripts/
    │   └── summarize.py
    └── references/
        └── guidelines.md

最小限のSKILL.md

---
name: summarize
description: ドキュメントを要点にまとめます。ユーザーが長文を要約するよう依頼したときに使用します。
---

# 要約

1. ユーザーの入力からドキュメントを読み取ります。
2. 主要な主張、サポートポイント、アクション項目を抽出します。
3. マークダウン形式で要約を記述し、最大10箇条の箇条書きとします。

## スクリプト

- `scripts/summarize.py` — ファイルパスを受け取り要約を出力するCLI。

クライアントはskills/*/SKILL.mdをスキャンしてスキルを発見します;それ以上深くは再帰しないため、直下のサブディレクトリごとに1つのスキルを配置してください。

ステップ4:MCPサーバーを追加する

プラグインにMCPサーバーを含める場合は、mcp.jsonで記述します。このフォーマットはstdio、Streamable HTTP、およびレガシーなHTTP+SSEトランスポートをサポートします:

{
  "servers": {
    "summarize": {
      "command": "python",
      "args": ["scripts/mcp_server.py"],
      "env": {}
    }
  }
}

クライアントはこのポータブルなフォーマットを自らのネイティブ設定にマッピングします — フィールド名はクライアントの内部フォーマットと一致する必要はありません。

ステップ5:(オプション)クライアント拡張を追加する

コアをフォークせずに特定のクライアント向けの動作を追加したいですか?クライアント名に基づいた逆ドメイン名前空間ディレクトリを使用します(例:com.example.client/hooks/hooks.json)。クライアントはプラグインルートで自らの名前空間ディレクトリを探し、未知の名前空間は無視されます。

ステップ6:検証する

配布前に、マニフェストを検証します:

  1. $schemaは公式スキーマURL(https://agent-plugins.org/schemas/1.0.0/plugin.schema.json)を参照している必要があります。
  2. nameが存在し空でないこと — 必須フィールドが欠けているとプラグイン全体が無効となり、クライアントは拒否しなければなりません。
  3. SKILL.mdのフロントマターに少なくともnamedescriptionが含まれていることを確認します。
  4. mcp.jsonを仕様のJSONスキーマ(agent-plugins.org/schemasで公開)に対して検証します。

仕様リポジトリのサンプルプラグイン(agentplugins/agent-plugins-example)を標準的な参照として使用したり、AIMCPのディレクトリ投稿を通じてプラグインを実行することもできます — 公式スキーマに対して検証され、コンポーネント数が報告されます。

ステップ7:配布する

Agent Pluginはディレクトリなので、配布は柔軟です:GitHubリポジトリにプッシュする、マーケットプレイスで公開する、直接共有するなどが可能です。互換性のあるクライアントは、トランスポートに関係なく一貫してプラグインを発見・ロードします。

次のステップ