MCPサーバー: Claudeをスタックに接続する
MCPサーバーをインストールして設定し、ClaudeにSlack、Supabase、Notion、GitHubへのライブアクセスを提供します。接着コードは不要です。
スキルは、~/.claude/skills/にあるフロントマター付きのMarkdownファイルです。Claudeは説明フィールドを読み取ってスキルを発見します。あなたのリクエストが一致すると、スキルがロードされ、ランブックに従います。指示を一度書けば、毎回同じ手順が得られます。
---
name: translate-pi-jargon
description: Translate PI legal jargon into plain English. Use when the user pastes legal text or references terms like UM/UIM, demand letter, or lien.
---
# Translate PI Jargon
1. Restate the term in one plain sentence.
2. Give a one-sentence example of when it matters.
3. Flag anything with time-pressure (statutes, deadlines).同じレシピをClaudeに3回貼り付けたら、スキルを書いてください。
説明は発見メカニズムです。 Claudeは説明を読み、どのスキルがあなたのリクエストに適用されるかを決定します。
悪い例: 「ドキュメントを扱うためのスキル。」 Claudeはいつこれが適用されるかを判断できません。
良い例: 「ユーザーが契約書を貼り付けたり、PDFから要約、赤線、用語の抽出を求めたりする場合に使用します。」
公式: 「[特定のトリガー]が発生した場合に使用します。[特定のコンテンツタイプ]に適用されます。」
スキルかCLAUDE.mdルールか? スキルは繰り返し可能な多段階の手順であり、CLAUDE.mdルールは常に有効な制約です。10ステップのデプロイランブックはスキルです。「バックアップなしでプロダクションに対してマイグレーションを実行しない」はルールです。どちらもシステムに属します。
MCP(Model Context Protocol)サーバーは、外部ツールをClaudeに公開するアダプターです。Slack、Supabase、Notion、GitHub: ClaudeがMCPを呼び出し、MCPがAPIを呼び出し、あなたは接着コードを一切書きません。データをプロンプトにコピー&ペーストする代わりに、Claudeはライブデータを読み取り、直接アクションを実行します。
データベースMCP: 「先週サインアップしたがアクティブ化していないユーザーを表示」はライブクエリとして実行されます。
Slack MCP: 「#engineeringが今日議論したことを要約」はライブメッセージをプルします。
Notion MCP: 「今日の決定事項でプロジェクトWikiを更新」は直接書き込みます。
GitHub MCP: 「7日以上前のオープンなPRをリスト」はライブリポジトリの状態をクエリします。
インストールパターン: サーバーをインストールし(npxまたはuvx)、設定を~/.claude/settings.jsonに追加します:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@your-org/mcp-slack"],
"env": { "SLACK_BOT_TOKEN": "xoxb-your-token-here" }
}
}
}セキュリティルール:
実際のトークンを公開ファイルに決して貼り付けないでください。環境変数またはシークレットストアを介して注入してください。
データベースMCPは、Claudeが必要とするテーブルにスコープされた読み取り専用の資格情報を取得します。サービスロールキーはテーブルを削除できます。
デプロイする前に、各MCPが公開するツールをレビューしてください。
アクションを実行するMCPには承認ゲートを設けてください。
最初のMCPを選択するには、次の質問をしてください: 現在、外部システムからClaudeに何を貼り付けていますか? データベースクエリの結果はSupabase MCPを指し、PRリストはGitHubを指し、チャンネルの要約はSlackを指し、メモはObsidianを指します。設定されて無視される4つのMCPよりも、1つインストールされて積極的に使用されているMCPの方が優れています。
テスト: Claude Codeを閉じて再度開いて検出をトリガーし、次に尋ねます: 「[MCP名]から利用できるツールは何ですか?」 リストが空の場合、settings.jsonの構文を確認し、npxまたはuvxがPATHにあることを確認してください。
スキルとMCPは複合的です。 デプロイランブックスキルにGitHub MCPとSlack MCPを組み合わせると: Claudeはランブックに従い、ライブPRステータスを読み取り、進捗状況の更新を投稿します。20分かかっていた手動デプロイが2分になります。セットアップコストはスキルあたり約30分、MCPあたり10分です。最初の5回の使用で元が取れます。
あなたのツール用の公開MCPがない場合? 公式Python SDKを使用した最小限のカスタムサーバーは、約30〜40行で1つのツールを公開します: ツールの名前、説明、入力スキーマを定義し、次に呼び出しを処理します。ツール説明にはスキル説明と同じ具体性を持たせてください。ライブで頻繁にクエリされるデータにはカスタムMCPを構築し、静的な参照データには、貼り付けを求めるスキルで十分です。
チームセットアップの資格情報管理。 共有settings.jsonにハードコードされたトークンは、インシデントを待っている状態です。2つのより安全なパターン: 環境変数のパススルー("SLACK_TOKEN": "$SLACK_TOKEN"、実際の値はシェルプロファイルに)またはMCPサーバーが起動時にクエリするシークレットマネージャー(Vault、1Password CLI)で、機密情報がディスク上に存在しないようにします。
最小限にスコープ: Supabase用の読み取り専用Postgresロール、特定のレポに限定されたきめ細かいGitHubトークン、Claudeが見るべきチャンネルに限定されたSlackボットトークン。
監査: 書き込み可能なMCPの場合、PostToolUseフックを追加して、タイムスタンプ、ツール名、引数、結果ステータスをログに記録します。
スキルは、Claudeが説明によって発見するMarkdownランブックです。同じ手順を3回貼り付けたら、スキルを1つ作成します。MCPは、接着コードなしでClaudeを外部APIに接続します。読み取り専用の最小権限の資格情報を使用します。最初のベストスキル: 今週2回説明した手順。最初のベストMCP: 最もコピー&ペーストするシステム。