コンテンツにスキップ

第6章 拡張機構 — MCP・スキル・スラッシュコマンド

組み込みツール(第3章)だけでは、Slack への投稿やデータベースへの接続はできません。
また、「PR レビューの手順」のような定型ワークフローを毎回プロンプトで説明するのは非効率です。

ハーネスはこの2つの課題に対して、MCP(外部ツールの追加)スキル(手順の部品化) という拡張機構を提供しています。


MCP は、外部サービスをツールとしてエージェントに提供するためのオープンプロトコルです。
MCP サーバーを登録すると、そのサーバーが提供するツールが組み込みツールと同じようにモデルから呼び出せるようになります。

flowchart LR
    subgraph CC["Claude Code(ハーネス)"]
        T1["組み込みツール<br/>Read / Bash ..."]
        T2["mcp__github__*"]
        T3["mcp__postgres__*"]
    end
    T2 <--> S1["GitHub MCP サーバー"]
    T3 <--> S2["Postgres MCP サーバー"]
    S1 <--> G["GitHub API"]
    S2 <--> D["(データベース)"]
Terminal window
# ローカルプロセスとして起動する stdio サーバー
claude mcp add github -- npx -y @modelcontextprotocol/server-github
# リモートの HTTP サーバー
claude mcp add --transport http notion https://mcp.notion.com/mcp
# 登録済みサーバーの確認
claude mcp list

プロジェクトで共有する場合は、リポジトリ直下の .mcp.json に定義します。

.mcp.json
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
}
スコープ保存先用途
local個人設定(プロジェクト単位)個人的な実験
project.mcp.json(git 共有)チーム全員で使うサーバー
userユーザー設定(全プロジェクト)どこでも使う汎用サーバー

接続方式は stdio(ローカルプロセス)、HTTP / SSE(リモート)があり、リモートサーバーは OAuth 認証にも対応しています。


6.2 スキルとスラッシュコマンド

Section titled “6.2 スキルとスラッシュコマンド”

スキル は、特定のタスクの手順・知識をパッケージ化してハーネスに登録する仕組みです。
ユーザーが /コマンド名 で明示的に呼び出せるほか、タスク内容に応じて Claude が自動的に参照することもあります。

カスタムスラッシュコマンドの作成

Section titled “カスタムスラッシュコマンドの作成”

最も手軽な形は、Markdown ファイルを置くだけのカスタムコマンドです。

.claude/commands/fix-issue.md
---
description: GitHub Issue を解析して修正する
---
Issue #$ARGUMENTS を以下の手順で修正してください。
1. `gh issue view $ARGUMENTS` で内容を確認
2. 関連するコードを検索して原因を特定
3. 修正を実装し、テストを追加
4. テストが通ることを確認してから変更内容を要約

これで /fix-issue 123 と入力すると、上記の手順がプロンプトとして展開されます。

配置場所スコープ
.claude/commands/プロジェクト(チーム共有)
~/.claude/commands/ユーザー全体

より本格的なスキルは、.claude/skills/<スキル名>/SKILL.md として作成します。
補助スクリプトやリファレンス資料を同じディレクトリに同梱でき、frontmatter の description を手がかりに Claude が状況に応じて自動で読み込む 点がカスタムコマンドとの違いです。

.claude/skills/
└── deploy-checklist/
├── SKILL.md # 手順の本体(frontmatter で説明を記述)
├── check-env.sh # 同梱スクリプト
└── reference.md # 詳細資料(必要時のみ読まれる)

スラッシュコマンド・スキル・フック・MCP サーバー・サブエージェント定義をまとめて配布する単位が プラグイン です。

Terminal window
# マーケットプレイスを追加してプラグインをインストール
/plugin marketplace add <リポジトリ>
/plugin install <プラグイン名>

チームで共通のワークフロー一式(レビューコマンド、デプロイスキル、監査フック)を配布する、といった使い方ができます。


「どの仕組みで拡張すべきか」の判断フローです。

flowchart TD
    A["やりたいこと"] --> B{"外部サービスへの<br/>接続が必要?"}
    B -->|はい| C["MCP サーバー"]
    B -->|いいえ| D{"毎回必ず<br/>実行させたい?"}
    D -->|はい| E["フック(第5章)"]
    D -->|いいえ| F{"常時必要な<br/>前提知識?"}
    F -->|はい| G["CLAUDE.md(第2章)"]
    F -->|いいえ| H["スキル /<br/>カスタムコマンド"]

  • MCP は外部サービスをツールとして追加するプロトコル。.mcp.json でチーム共有できる
  • スキル・カスタムコマンドは手順の部品化。/コマンド で呼び出し、SKILL.md なら自動参照もされる
  • 「接続なら MCP、強制なら フック、常識なら CLAUDE.md、手順なら スキル」と覚える
  • プラグインでこれら一式をまとめて配布できる