このスキルは、ユーザーが以下のような場合に使用します: - 「MCPサーバーを追加したい」と言った場合 - 「MCPを統合したい」と言った場合 - 「プラグインでMCPを設定したい」と言った場合 - 「.mcp.jsonを使いたい」と言った場合 - 「Model Context Protocol(外部ツールやサービスとの通信規格)をセットアップしたい」と言った場合 - 「外部サービスに接続したい」と言った場合 - 「${CLAUDE_PLUGIN_ROOT}とMCPについて」に触れた場合 - MCPサーバーのタイプ(SSE、stdio、HTTP、WebSocket などの通信方式)について議論している場合 このスキルは、Model Context Protocol(外部ツールやサービスとの通信規格)サーバーをClaudeコードプラグインに統合するための包括的なガイダンスを提供します。これにより、外部ツールやサービスとの連携が可能になります。
This skill should be used when the user asks to "add MCP server", "integrate MCP", "configure MCP in plugin", "use .mcp.json", "set up Model Context Protocol", "connect external service", mentions "${CLAUDE_PLUGIN_ROOT} with MCP", or discusses MCP server types (SSE, stdio, HTTP, WebSocket). Provides comprehensive guidance for integrating Model Context Protocol servers into Claude Code plugins for external tool and service integration.
モデルコンテキストプロトコル(MCP)を使用すると、Claude Codeプラグインが外部サービスやAPIと連携でき、構造化されたツールアクセスが可能になります。MCP統合を使って、外部サービスの機能をClaude Code内のツールとして公開できます。
主な機能:
プラグインは2つの方法でMCPサーバーをバンドルできます:
プラグインのルートディレクトリに.mcp.jsonを作成します:
{
"database-tools": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
"args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
"env": {
"DB_URL": "${DB_URL}"
}
}
}
利点:
plugin.jsonにmcpServersフィールドを追加します:
{
"name": "my-plugin",
"version": "1.0.0",
"mcpServers": {
"plugin-api": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/api-server",
"args": ["--port", "8080"]
}
}
}
利点:
ローカルMCPサーバーを子プロセスとして実行します。ローカルツールとカスタムサーバーに最適です。
設定:
{
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"],
"env": {
"LOG_LEVEL": "debug"
}
}
}
用途:
プロセス管理:
OAuth認証に対応したホストされたMCPサーバーに接続します。クラウドサービスに最適です。
設定:
{
"hosted-service": {
"type": "sse",
"url": "https://mcp.example.com/sse"
}
}
用途:
認証:
トークン認証に対応したRESTful MCPサーバーに接続します。
設定:
{
"api-service": {
"type": "http",
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer ${API_TOKEN}",
"X-Custom-Header": "value"
}
}
}
用途:
リアルタイム双方向通信対応のWebSocket MCPサーバーに接続します。
設定:
{
"realtime-service": {
"type": "ws",
"url": "wss://mcp.example.com/ws",
"headers": {
"Authorization": "Bearer ${TOKEN}"
}
}
}
用途:
すべてのMCP設定は環境変数の置き換えに対応しています:
${CLAUDE_PLUGIN_ROOT} - プラグインディレクトリ(ポータビリティのため常に使用):
{
"command": "${CLAUDE_PLUGIN_ROOT}/servers/my-server"
}
ユーザー環境変数 - ユーザーのシェルから取得:
{
"env": {
"API_KEY": "${MY_API_KEY}",
"DATABASE_URL": "${DB_URL}"
}
}
ベストプラクティス: プラグインのREADMEで必須環境変数をすべて記載してください。
MCPサーバーがツールを提供するとき、自動的にプリフィックス(接頭辞)が付きます:
形式: mcp__plugin_<プラグイン名>_<サーバー名>__<ツール名>
例:
asanaasanacreate_taskmcp__plugin_asana_asana__asana_create_taskコマンドのフロントマター(冒頭の設定情報)で特定のMCPツールをあらかじめ許可します:
---
allowed-tools: [
"mcp__plugin_asana_asana__asana_create_task",
"mcp__plugin_asana_asana__asana_search_tasks"
]
---
ワイルドカード(控えめに使用):
---
allowed-tools: ["mcp__plugin_asana_asana__*"]
---
ベストプラクティス: セキュリティのため、ワイルドカードではなく特定のツールをあらかじめ許可してください。
自動起動:
ライフサイクル:
mcp__plugin_...__... として利用可能にサーバーの確認:
/mcpコマンドを使用すると、プラグイン提供のものを含むすべてのサーバーが表示されます。
OAuth フロー(認証処理の流れ)はClaude Codeが自動で処理します:
{
"type": "sse",
"url": "https://mcp.example.com/sse"
}
ユーザーは初回使用時にブラウザで認証されます。追加設定は不要です。
静的またはシート環境変数のトークン:
{
"type": "http",
"url": "https://api.example.com",
"headers": {
"Authorization": "Bearer ${API_TOKEN}"
}
}
READMEで必須環境変数を記載してください。
MCPサーバーに設定を渡します:
{
"command": "python",
"args": ["-m", "my_mcp_server"],
"env": {
"DATABASE_URL": "${DB_URL}",
"API_KEY": "${API_KEY}",
"LOG_LEVEL": "info"
}
}
コマンドがMCPツールをユーザーとのやり取りの中で使用:
# コマンド: create-item.md
---
allowed-tools: ["mcp__plugin_name_server__create_item"]
---
手順:
1. ユーザーから項目の詳細を収集
2. mcp__plugin_name_server__create_itemを使用
3. 作成を確認
用途: MCPツール呼び出し前の検証または前処理を追加する場合。
エージェント(自動実行する支援者)がMCPツールを自動的に使用:
# エージェント: data-analyzer.md
分析プロセス:
1. mcp__plugin_db_server__queryでデータをクエリ
2. 結果を処理・分析
3. インサイトレポートを生成
用途: ユーザーとのやり取りなしに複数ステップのMCPワークフローを実行する場合。
複数のMCPサーバーを統合:
{
"github": {
"type": "sse",
"url": "https://mcp.github.com/sse"
},
"jira": {
"type": "sse",
"url": "https://mcp.jira.com/sse"
}
}
用途: 複数のサービスにまたがるワークフロー。
常にセキュアな接続を使用してください:
✅ "url": "https://mcp.example.com/sse"
❌ "url": "http://mcp.example.com/sse"
すべきこと:
すべきでないこと:
必要なMCPツールのみをあらかじめ許可:
✅ allowed-tools: [
"mcp__plugin_api_server__read_data",
"mcp__plugin_api_server__create_item"
]
❌ allowed-tools: ["mcp__plugin_api_server__*"]
MCPサーバーが利用不可の場合に対応:
MCPサーバーが失敗した場合に対応:
MCP設定を検証:
MCPサーバーはオンデマンドで接続:
類似した要求はまとめてください:
# 良い例:フィルター付きの単一クエリ
tasks = search_tasks(project="X", assignee="me", limit=50)
# 避けるべき例:多数の個別クエリ
for id in task_ids:
task = get_task(id)
.mcp.jsonでMCPサーバーを設定.claude-plugin/)/mcpで サーバーが表示されることを確認claude --debugログで接続問題をチェック/mcp出力に表示されるclaude --debug
以下を確認してください:
**サ
Model Context Protocol (MCP) enables Claude Code plugins to integrate with external services and APIs by providing structured tool access. Use MCP integration to expose external service capabilities as tools within Claude Code.
Key capabilities:
Plugins can bundle MCP servers in two ways:
Create .mcp.json at plugin root:
{
"database-tools": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
"args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
"env": {
"DB_URL": "${DB_URL}"
}
}
}
Benefits:
Add mcpServers field to plugin.json:
{
"name": "my-plugin",
"version": "1.0.0",
"mcpServers": {
"plugin-api": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/api-server",
"args": ["--port", "8080"]
}
}
}
Benefits:
Execute local MCP servers as child processes. Best for local tools and custom servers.
Configuration:
{
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"],
"env": {
"LOG_LEVEL": "debug"
}
}
}
Use cases:
Process management:
Connect to hosted MCP servers with OAuth support. Best for cloud services.
Configuration:
{
"hosted-service": {
"type": "sse",
"url": "https://mcp.example.com/sse"
}
}
Use cases:
Authentication:
Connect to RESTful MCP servers with token authentication.
Configuration:
{
"api-service": {
"type": "http",
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer ${API_TOKEN}",
"X-Custom-Header": "value"
}
}
}
Use cases:
Connect to WebSocket MCP servers for real-time bidirectional communication.
Configuration:
{
"realtime-service": {
"type": "ws",
"url": "wss://mcp.example.com/ws",
"headers": {
"Authorization": "Bearer ${TOKEN}"
}
}
}
Use cases:
All MCP configurations support environment variable substitution:
${CLAUDE_PLUGIN_ROOT} - Plugin directory (always use for portability):
{
"command": "${CLAUDE_PLUGIN_ROOT}/servers/my-server"
}
User environment variables - From user's shell:
{
"env": {
"API_KEY": "${MY_API_KEY}",
"DATABASE_URL": "${DB_URL}"
}
}
Best practice: Document all required environment variables in plugin README.
When MCP servers provide tools, they're automatically prefixed:
Format: mcp__plugin_<plugin-name>_<server-name>__<tool-name>
Example:
asanaasanacreate_taskmcp__plugin_asana_asana__asana_create_taskPre-allow specific MCP tools in command frontmatter:
---
allowed-tools: [
"mcp__plugin_asana_asana__asana_create_task",
"mcp__plugin_asana_asana__asana_search_tasks"
]
---
Wildcard (use sparingly):
---
allowed-tools: ["mcp__plugin_asana_asana__*"]
---
Best practice: Pre-allow specific tools, not wildcards, for security.
Automatic startup:
Lifecycle:
mcp__plugin_...__...Viewing servers:
Use /mcp command to see all servers including plugin-provided ones.
OAuth handled automatically by Claude Code:
{
"type": "sse",
"url": "https://mcp.example.com/sse"
}
User authenticates in browser on first use. No additional configuration needed.
Static or environment variable tokens:
{
"type": "http",
"url": "https://api.example.com",
"headers": {
"Authorization": "Bearer ${API_TOKEN}"
}
}
Document required environment variables in README.
Pass configuration to MCP server:
{
"command": "python",
"args": ["-m", "my_mcp_server"],
"env": {
"DATABASE_URL": "${DB_URL}",
"API_KEY": "${API_KEY}",
"LOG_LEVEL": "info"
}
}
Commands use MCP tools with user interaction:
# Command: create-item.md
---
allowed-tools: ["mcp__plugin_name_server__create_item"]
---
Steps:
1. Gather item details from user
2. Use mcp__plugin_name_server__create_item
3. Confirm creation
Use for: Adding validation or preprocessing before MCP calls.
Agents use MCP tools autonomously:
# Agent: data-analyzer.md
Analysis Process:
1. Query data via mcp__plugin_db_server__query
2. Process and analyze results
3. Generate insights report
Use for: Multi-step MCP workflows without user interaction.
Integrate multiple MCP servers:
{
"github": {
"type": "sse",
"url": "https://mcp.github.com/sse"
},
"jira": {
"type": "sse",
"url": "https://mcp.jira.com/sse"
}
}
Use for: Workflows spanning multiple services.
Always use secure connections:
✅ "url": "https://mcp.example.com/sse"
❌ "url": "http://mcp.example.com/sse"
DO:
DON'T:
Pre-allow only necessary MCP tools:
✅ allowed-tools: [
"mcp__plugin_api_server__read_data",
"mcp__plugin_api_server__create_item"
]
❌ allowed-tools: ["mcp__plugin_api_server__*"]
Handle MCP server unavailability:
Handle failed MCP operations:
Validate MCP configuration:
MCP servers connect on-demand:
Batch similar requests when possible:
# Good: Single query with filters
tasks = search_tasks(project="X", assignee="me", limit=50)
# Avoid: Many individual queries
for id in task_ids:
task = get_task(id)
.mcp.json.claude-plugin/)/mcp to verify server appearsclaude --debug logs for connection issues/mcp outputclaude --debug
Look for:
Server not connecting:
Tools not available:
/mcp to see available toolsAuthentication failing:
| Type | Transport | Best For | Auth |
|---|---|---|---|
| stdio | Process | Local tools, custom servers | Env vars |
| SSE | HTTP | Hosted services, cloud APIs | OAuth |
| HTTP | REST | API backends, token auth | Tokens |
| ws | WebSocket | Real-time, streaming | Tokens |
DO:
DON'T:
For detailed information, consult:
references/server-types.md - Deep dive on each server typereferences/authentication.md - Authentication patterns and OAuthreferences/tool-usage.md - Using MCP tools in commands and agentsWorking examples in examples/:
stdio-server.json - Local stdio MCP serversse-server.json - Hosted SSE server with OAuthhttp-server.json - REST API with token authclaude --debug and /mcp commandTo add MCP integration to a plugin:
.mcp.json at plugin root with configuration/mcp commandFocus on stdio for custom/local servers, SSE for hosted services with OAuth.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。