コンテンツへスキップ

media AI活用の最前線

Claude Fable 5×MCP連携完全ガイド|社内ツール実装【2026年】

Claude Fable 5×MCP連携完全ガイド|社内ツール実装【2026年】

結論: Claude Fable 5 は Model Context Protocol(MCP)を通じて社内ツール群と直接接続でき、Python/TypeScript 数十行のサーバーコードで CRM・Slack・Notion などのシステムを AI エージェントの「腕」として機能させられます。

この記事の要点:

  • 要点1: MCP サーバーは Python の FastMCP なら最短 15 行で起動でき、既存 REST API をそのままラップできる
  • 要点2: Slack・Google Drive・Notion・Linear・GitHub の公式 MCP サーバーはゼロコードで利用でき、即日で Claude Desktop に接続できる
  • 要点3: OAuth 2.1 対応・権限スコープ管理・複数サーバー同時接続の設計パターンを押さえれば、本番運用レベルの社内 AI ハブが構築できる

対象読者: 社内 AI 基盤の構築を担当するエンジニア・IT 部門責任者、Claude Code や Claude Desktop で業務自動化を進めたい開発者

読了後にできること: 今日中に claude_desktop_config.json に MCP サーバーを 1 本追加して、Claude から社内 Slack を操作する

「Claude に Slack を送ってもらいたいんだけど、どうすればいい?」

先日、ある IT 企業の開発チームにお邪魔したとき、こんな相談を受けました。チームは Claude Fable 5 を API で使い始めていて、長文の要約や議事録作成は快適に動いているものの、「外部のツールと連携させる方法がよく分からない」という壁にぶつかっていたんです。実際に画面を見せてもらうと、Slack への送信・Notion への書き込み・GitHub の Issue 作成、これら全部を「プロンプト → コピペ → 手動実行」で対応していて、自動化できていない状態でした。

これを解決するのが Model Context Protocol(MCP) です。MCP は Anthropic が 2024 年 11 月に公開したオープンプロトコルで、AI モデルと外部ツールを標準化された方式で接続する仕組みです。2025 年 12 月には Linux Foundation 傘下の Agentic AI Foundation(AAIF)に移管され、OpenAI・Block を含む主要 AI 企業が共同ガバナンスに参加。2026 年現在、事実上の業界標準として定着しています。

そして 2026 年 6 月 9 日にリリースされた Claude Fable 5(API モデル ID: claude-fable-5)は、MCP との組み合わせで真価を発揮します。SWE-Bench Pro 80.3%・1M トークンコンテキスト・Adaptive Thinking 常時オンという仕様を持つこのモデルが、MCP を通じて社内ツール群と接続されると、これまで「人間がやるしかなかった」複雑な業務フローを自律実行できるようになります。この記事では、実装コード付きで MCP 連携の全体像を解説します。

まず動く形で試してみてください。Claude Desktop に既存の MCP サーバーを 1 本追加するだけなら今日中に完了します。その後、カスタムサーバーの構築・OAuth 認証・複数サーバー同時接続と段階的に深めていきましょう。

📋 Claude Fable 5 法人導入を本格検討中の方へ — 情シス9・法務8・経営6の23項目チェックリストと30分無料相談予約をまとめた 法人導入支援LP をご覧ください。

MCP とは何か — 社内ツール連携の「USB-C」

MCP を一言で言うと、AI とツールをつなぐ標準コネクタです。USB-C が機器の種類を問わず電力・データを流せるように、MCP は AI モデルの種類や外部サービスの仕様を問わず、統一された方式でやり取りを可能にします。

MCP の登場前は、AI に外部ツールを使わせるたびにカスタムの関数定義・API 呼び出しコード・エラーハンドリングを独自に実装していました。Slack 連携を作ったら Notion 用にほぼ同じコードを書き直し、新しい AI モデルに切り替えたらまた作り直し…という「N × M 問題」が発生していたんです。MCP はこのコスト構造を根本から変えます。

プロトコルのアーキテクチャはシンプルです。

レイヤー役割具体例
HostMCP クライアントを内包するアプリClaude Desktop、Claude Code、独自 AI アプリ
ClientHost 内でサーバーと JSON-RPC 通信Claude Desktop の接続マネージャー
Serverツール・リソース・プロンプトを公開Slack MCP Server、自作 CRM Server

サーバーが公開できる機能は 3 種類あります。Tools(AI が実行できる関数)・Resources(AI が読めるデータ)・Prompts(再利用可能なプロンプトテンプレート)。Claude Fable 5 から見ると、Tools は「使える腕」、Resources は「読める資料棚」、Prompts は「定型フォーム」というイメージです。

AIエージェントの基本概念や導入ステップについては、AIエージェント導入完全ガイドで体系的にまとめています。MCP はそのガイドで解説する「ツール使用」機能の実装規格にあたります。

Claude Desktop・Claude Code で MCP を有効にする(5 分セットアップ)

まず既存の公式 MCP サーバーを Claude Desktop に接続してみましょう。設定ファイルを 1 つ編集するだけです。

設定ファイルの場所

OSパス
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%Claudeclaude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

Slack MCP サーバーを追加する設定例

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-slack"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T0XXXXXXXX"
      }
    }
  }
}

設定を保存して Claude Desktop を再起動すると、Claude との会話画面の入力欄にツールアイコンが表示されます。「#general チャンネルに送って」と話しかけるだけで Slack 操作が完了します。

Claude Code(CLI)での設定

# プロジェクトスコープで MCP サーバーを追加
claude mcp add slack 
  npx -y @modelcontextprotocol/server-slack 
  -e SLACK_BOT_TOKEN="xoxb-your-bot-token" 
  -e SLACK_TEAM_ID="T0XXXXXXXX"

# 登録済みサーバーの確認
claude mcp list

# 特定サーバーの詳細確認
claude mcp get slack

Claude Code ではプロジェクトごとに異なる MCP サーバーを設定できます。社内の A チームは CRM サーバー、B チームは Notion サーバーというように、プロジェクトルートの .mcp.json で管理するのがベストプラクティスです。

既存 MCP サーバー一覧 — ゼロコードで使える公式ラインアップ

Anthropic と公式パートナーが提供する MCP サーバーは、設定ファイルに追記するだけで即日利用できます。

サービスパッケージ名主な機能認証方式
Slack@modelcontextprotocol/server-slackメッセージ送受信・チャンネル一覧・DMBot Token
Google Drive@modelcontextprotocol/server-gdriveファイル検索・読み込み・共有OAuth 2.0
Notion@notionhq/notion-mcp-serverページ作成・DB 検索・ブロック追加Internal Token
Linear@linear/linear-mcp-serverIssue 作成・プロジェクト検索・ステータス更新API Key
GitHub@modelcontextprotocol/server-githubPR 作成・Issue 操作・コード検索Personal Access Token
PostgreSQL@modelcontextprotocol/server-postgresクエリ実行・スキーマ参照(読み取りのみ)Connection String

事例区分: 想定シナリオ
100社以上の研修経験をもとに構成した典型的なシナリオです。

マーケティング会社 A 社(従業員 80 名)では、Google Drive・Slack・Notion の 3 つを同時接続したところ、「先週の競合調査レポート(Drive)の要点を Slack の #sales チャンネルにまとめて送って、Notion の週報ページにも追記して」という 1 文が 3 つのツール操作を完結させるようになりました。以前は担当者が 15〜20 分かけて行っていた作業が 30 秒以下になったと報告されています。

Python で MCP サーバーをゼロから作る — FastMCP 実装入門

既存サーバーでカバーできない社内ツール(独自 CRM・社内 Wiki・基幹システム API など)は自作します。Python の FastMCP を使えば驚くほど短いコードで実装できます。

インストール

pip install fastmcp
# または
uv add fastmcp

最小構成の CRM 連携サーバー(15 行)

from fastmcp import FastMCP
import requests

mcp = FastMCP("社内CRM連携サーバー")

@mcp.tool()
def search_customer(company_name: str) -> dict:
    """顧客情報を検索します。会社名で絞り込みます。"""
    resp = requests.get(
        "https://crm.internal.example.com/api/customers",
        params={"q": company_name},
        headers={"Authorization": f"Bearer {CRM_API_KEY}"}
    )
    return resp.json()

@mcp.tool()
def create_contact_note(customer_id: str, note: str) -> dict:
    """顧客にコンタクトメモを追加します。"""
    resp = requests.post(
        f"https://crm.internal.example.com/api/customers/{customer_id}/notes",
        json={"content": note},
        headers={"Authorization": f"Bearer {CRM_API_KEY}"}
    )
    return resp.json()

if __name__ == "__main__":
    mcp.run()  # stdio モードで起動

このサーバーを claude_desktop_config.json に登録すると、Claude Desktop から「株式会社〇〇の担当者情報を検索して、先週の商談内容をメモに追加して」と話しかけるだけで CRM 操作が完了します。

Resources(読み取り専用データ)の追加

@mcp.resource("customers://recent")
def get_recent_customers() -> str:
    """直近 30 日以内に更新された顧客リストを返します。"""
    resp = requests.get(
        "https://crm.internal.example.com/api/customers",
        params={"updated_since": "30d"},
        headers={"Authorization": f"Bearer {CRM_API_KEY}"}
    )
    customers = resp.json()["items"]
    return "n".join([f"- {c['company']}({c['status']})" for c in customers])

Resources は AI が「読める資料棚」として機能します。Tools(実行)と Resources(参照)を使い分けることで、意図しない書き込み操作を防ぎながら豊富なコンテキストを提供できます。

TypeScript で MCP サーバーを作る — HTTP デプロイ対応版

社内の複数チームが同じ MCP サーバーを使う場合や、Cloudflare Workers / Vercel Edge に展開したい場合は TypeScript での実装が適しています。2025 年 11 月の仕様更新で導入された Streamable HTTP トランスポートを使うと、サーバーをリモートサービスとして運用できます。

TypeScript MCP サーバー(ナレッジ検索 + タスク作成)

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
  CallToolRequestSchema,
  ListToolsRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";

const server = new Server(
  { name: "knowledge-task-server", version: "1.0.0" },
  { capabilities: { tools: {} } }
);

// ナレッジ検索ツール
server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [
    {
      name: "search_knowledge",
      description: "社内ナレッジベースを全文検索します",
      inputSchema: {
        type: "object",
        properties: {
          query: { type: "string", description: "検索クエリ" },
          limit: { type: "number", description: "取得件数(デフォルト: 5)" },
        },
        required: ["query"],
      },
    },
    {
      name: "create_task",
      description: "タスク管理システムにタスクを作成します",
      inputSchema: {
        type: "object",
        properties: {
          title: { type: "string", description: "タスクタイトル" },
          assignee: { type: "string", description: "担当者のメールアドレス" },
          due_date: { type: "string", description: "期日(YYYY-MM-DD 形式)" },
        },
        required: ["title", "assignee"],
      },
    },
  ],
}));

// ツール実行ハンドラー
server.setRequestHandler(CallToolRequestSchema, async (request) => {
  const { name, arguments: args } = request.params;

  if (name === "search_knowledge") {
    const results = await searchKnowledgeBase(args.query, args.limit ?? 5);
    return {
      content: [{ type: "text", text: JSON.stringify(results, null, 2) }],
    };
  }

  if (name === "create_task") {
    const task = await createTaskInSystem(args.title, args.assignee, args.due_date);
    return {
      content: [{ type: "text", text: `タスクを作成しました: ID ${task.id}` }],
    };
  }

  throw new Error(`Unknown tool: ${name}`);
});

// 起動
const transport = new StdioServerTransport();
await server.connect(transport);

研修先でこの実装を試したとき(想定シナリオ)、開発メンバーから「Python より型安全で、補完が効くので書きやすい」という感想をもらいました。特に大規模なサーバー開発では TypeScript の恩恵が大きいです。

AI活用、何から始めればいい?

100社以上の研修実績をもとに、30分の無料相談で貴社の課題を整理します。

無料相談はこちら

OAuth 認証と権限管理の実装 — 本番運用で必須の設計

社内の機密データを扱う MCP サーバーでは、誰がどのツールを実行できるかを制御する必要があります。MCP の最新仕様(2025-11-25)は OAuth 2.1 + OpenID Connect Discovery をサポートしています。

認証方式の選び方

認証方式適したケース実装難易度
API Key(ヘッダー)社内専用・ユーザー不特定のサーバー
OAuth 2.1 PKCEユーザー個人の権限でアクセスが必要(Google Drive 等)
JWT(Service Account)システム間連携・自動化バッチ
OIDC(SSO 連携)企業の既存 IdP(Okta・Azure AD)と統合

Python での API Key 認証実装

from fastmcp import FastMCP
from fastmcp.security import APIKeyAuth
import os

# 環境変数から API キーを読み込み(直書き禁止)
VALID_API_KEYS = set(os.environ.get("MCP_API_KEYS", "").split(","))

mcp = FastMCP(
    "社内ツール連携サーバー",
    auth=APIKeyAuth(valid_keys=VALID_API_KEYS)
)

@mcp.tool()
def search_crm(query: str) -> dict:
    """CRM を検索します(認証済みユーザーのみ実行可)"""
    # ... 実装
    pass

Google Drive 向け OAuth 2.0 フロー(TypeScript)

import { OAuthClientProvider } from "@modelcontextprotocol/sdk/client/auth.js";

// Claude Desktop の設定に OAuth Provider を登録
const oauthProvider: OAuthClientProvider = {
  redirectUrl: "http://localhost:3000/oauth/callback",
  clientMetadata: {
    client_name: "社内AI連携ツール",
    redirect_uris: ["http://localhost:3000/oauth/callback"],
    scope: "https://www.googleapis.com/auth/drive.readonly",
  },
};

// MCP クライアント初期化時に渡す
const client = new Client({ name: "gdrive-client", version: "1.0.0" });
await client.connect(transport, { authProvider: oauthProvider });

事例区分: 想定シナリオ
100社以上の研修経験をもとに構成した典型的なシナリオです。

人事部門での利用を想定した MCP サーバーを構築したケースでは、Okta との OIDC 連携を実装し、社員の役職に応じてアクセスできる Tools を制限しました。一般社員は「自分の評価データ参照」のみ、マネージャーは「チームメンバーのデータ参照」、HR 担当は「全社データ」と権限を分けることで、データガバナンス要件を満たしながら AI 活用を実現しています。

複数 MCP サーバーの同時接続 — エンタープライズ構成

実際のビジネス現場では、複数のサービスを横断して作業することがほとんどです。Claude Fable 5 は複数の MCP サーバーに同時接続し、1 つのプロンプトで複数サービスを協調動作させられます。

Claude Desktop での複数サーバー設定

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}",
        "SLACK_TEAM_ID": "${SLACK_TEAM_ID}"
      }
    },
    "notion": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": {
        "NOTION_API_TOKEN": "${NOTION_API_TOKEN}"
      }
    },
    "linear": {
      "command": "npx",
      "args": ["-y", "@linear/linear-mcp-server"],
      "env": {
        "LINEAR_API_KEY": "${LINEAR_API_KEY}"
      }
    },
    "crm": {
      "command": "python3",
      "args": ["/path/to/crm_mcp_server.py"],
      "env": {
        "CRM_API_KEY": "${CRM_API_KEY}"
      }
    }
  }
}

この設定で Claude に「今週のスプリントで完了した Linear のタスクをまとめて、Notion の週報に書いて、Slack の #team チャンネルに共有して」と指示すると、3 つのサービスを順次操作して完了させます。

Claude Code(CLI)での設定ファイル管理

プロジェクトごとに必要なサーバーが異なる場合は、プロジェクトルートに .mcp.json を置いてバージョン管理します。

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PAT}"
      }
    },
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "${DATABASE_URL}"
      ]
    }
  }
}

注意: .mcp.json は Git にコミットしても構いませんが、実際のシークレット値は必ず環境変数で渡してください。${VARIABLE_NAME} 形式で書けば Claude Code が実行時に展開します。

実装例 3 選 — CRM 連携・ナレッジ検索・タスク自動作成

事例区分: 想定シナリオ
100社以上の研修経験をもとに構成した典型的なシナリオです。

実装例 1: 営業支援 CRM 連携フロー

商談準備から議事録作成・CRM 入力まで一連のワークフローを自動化します。

Claude への指示文例(コピペ可能):

以下の商談準備をしてください:
1. CRMで「[会社名]」を検索して担当者情報と過去の商談履歴を確認
2. 最近6ヶ月の取引状況をまとめて
3. 今日の商談に向けた確認ポイントを3点提案して
4. 商談後はこのメモを CRM のコンタクト履歴に追加して:
   [商談メモをここに貼り付け]

実装例 2: 社内ナレッジ検索エージェント

Notion・Confluence・社内 Wiki などから情報を横断検索する MCP サーバーを構築し、「この仕様について調べて」という一文で関連ドキュメントをすべて取得させます。

ナレッジ検索サーバーの Python 実装(主要部分):

from fastmcp import FastMCP
from notion_client import Client as NotionClient

mcp = FastMCP("社内ナレッジ検索")
notion = NotionClient(auth=os.environ["NOTION_TOKEN"])

@mcp.tool()
def search_notion(query: str, limit: int = 10) -> list[dict]:
    """Notion ワークスペースを全文検索します。"""
    results = notion.search(
        query=query,
        filter={"property": "object", "value": "page"},
        page_size=limit
    )
    return [
        {
            "title": page["properties"].get("title", {}).get("title", [{}])[0].get("plain_text", "無題"),
            "url": page["url"],
            "last_edited": page["last_edited_time"],
        }
        for page in results["results"]
    ]

@mcp.tool()
def get_notion_page(page_id: str) -> str:
    """指定した Notion ページの全文を取得します。"""
    blocks = notion.blocks.children.list(block_id=page_id)
    content = ""
    for block in blocks["results"]:
        block_type = block["type"]
        if block_type in ["paragraph", "heading_1", "heading_2", "heading_3"]:
            texts = block[block_type].get("rich_text", [])
            content += "".join([t["plain_text"] for t in texts]) + "n"
    return content

実装例 3: インシデント対応自動化

障害発生時に GitHub の Issue 作成・Slack への緊急通知・Linear へのタスク起票を 1 コマンドで実行します。

Claude への指示文例(コピペ可能):

本番環境でインシデントが発生しました。以下を実行してください:
【インシデント概要】: [内容を記述]
【発生時刻】: [時刻]
【影響範囲】: [影響ユーザー数や機能]

実行タスク:
1. GitHub の [リポジトリ名] に severity:critical ラベルで Issue を作成
2. Slack の #incident チャンネルに @channel メンションで通知
3. Linear の "Engineering" チームに P0 タスクを起票し、自分にアサイン
4. 30分後にステータス更新のリマインダーメモを追加

ChatGPT を使った業務改善との違いや使い分けについては、ChatGPT ビジネス活用完全ガイドも参照してください。

【要注意】よくある失敗パターンと回避策

失敗パターン 1: シークレットを設定ファイルに直書きする

❌ よくある間違い: claude_desktop_config.json.mcp.json に API キーをベタ書きして Git にコミットする

⭕ 正しいアプローチ: ${ENV_VAR_NAME} 形式で環境変数参照にして、実値はシェルの環境変数か Secret Manager に格納する

なぜ重要か: 設定ファイルをリポジトリに入れた瞬間、全チームメンバーに(最悪の場合 GitHub にも)シークレットが公開されます。実際に研修先で「.mcp.json を GitHub にプッシュしてしまった」という相談を受けたことがあります(想定シナリオ)。発覚後すぐに全 API キーをローテーションすることになり、半日以上の対応コストが発生しました。

失敗パターン 2: Tools に書き込み操作を無制限に許可する

❌ よくある間違い: 「便利だから」と全操作(読み・書き・削除)を Tools として公開し、権限制御なしで Claude に渡す

⭕ 正しいアプローチ: 読み取りは Resources として定義し、書き込み・削除は Tools に限定。重要操作には人間の承認ステップ(Human-in-the-Loop)を挟む

なぜ重要か: AI が意図しない操作を実行するリスクを最小化できます。MCP の公式仕様書も「ホストはツールの実行前に必ずユーザーの同意を得ること」と明記しています。

失敗パターン 3: stdio サーバーを本番の複数ユーザー環境で使う

❌ よくある間違い: ローカル開発でしか動作しない stdio トランスポートのまま、「社内全員が使うサーバー」として展開しようとする

⭕ 正しいアプローチ: 複数ユーザーが使う共有サーバーは Streamable HTTP トランスポートで実装し、認証レイヤーと組み合わせてデプロイする

なぜ重要か: stdio は 1 対 1 のプロセス通信なので、複数の Claude Desktop セッションから同時アクセスする用途には使えません。

失敗パターン 4: サーバーのエラーハンドリングを省略する

❌ よくある間違い: 外部 API の呼び出しを try-except なしで実装し、タイムアウト・レート制限・認証失敗で MCP サーバーごとクラッシュする

⭕ 正しいアプローチ: 全ての外部 API 呼び出しに timeout・retry・エラーメッセージを実装し、Claude に「現在 CRM API が応答していません。5 分後に再試行してください」と分かるエラーを返す

Claude Code CLI での実践活用 — 開発ワークフロー自動化

Claude Code(CLI)は Claude Fable 5 を背後で呼び出しながら、プロジェクトの .mcp.json に登録したサーバーを自動的に利用します。開発者が最も恩恵を受けるのはこの組み合わせです。

GitHub + Linear + Slack を同時接続した状態での典型的な使い方:

# Issue の内容を調べてコードを修正し、PR を作成する
claude "GitHub の Issue #123 の内容を確認して、修正箇所を特定してください。
バグの原因を説明した後、修正コードを書いて、
PR のドラフトを作成してください。タイトルと説明文も書いてください。"

# スプリントの進捗をまとめて報告する
claude "Linear の今週のスプリントで完了したタスクを集計して、
未完了タスクのブロッカーをリストアップして、
Slack の #engineering チャンネルに週次レポートとして投稿してください。"

Claude Code でのエージェント開発についての詳細は、Claude Fable 5 完全ガイドで詳しく解説しています。エンタープライズ展開の手順については Claude Fable 5 エンタープライズ展開チェックリストも参照してください。

セキュリティと権限設計のチェックリスト

MCP サーバーを本番環境に展開する前に以下を確認してください。

チェック項目重要度確認内容
シークレット管理★★★★★API キー・トークンは環境変数または Secret Manager で管理。設定ファイル・コードへの直書き禁止
最小権限の原則★★★★★各 Tool に必要最小限のスコープのみ付与。管理者権限の使い回し禁止
破壊的操作の制限★★★★☆削除・一括更新などの破壊的操作は Tools から除外、または人間承認を挟む
TLS 通信★★★★☆リモートサーバーは HTTPS 必須。自己署名証明書は本番禁止
アクセスログ★★★☆☆どの Tool が誰によっていつ実行されたか記録
エラーハンドリング★★★☆☆スタックトレース・内部情報をエラーレスポンスに含めない

また、Claude Fable 5 には サイバーセキュリティ・生物化学・知識蒸留の 3 種類の安全分類器が組み込まれており、悪意ある操作を試みるプロンプトは自動的に Claude Opus 4.8 へのフォールバックが発動します(全セッションの 5% 未満)。MCP サーバー側の実装でも「何を Claude に渡すか」を適切に設計することが、二重の防衛レイヤーになります。

コーポレート・IT ガバナンスの観点から生成 AI 導入を検討している方は、AI エージェント導入完全ガイドでリスク管理フレームワーク全体を確認することをお勧めします。

Streamable HTTP サーバー — チーム共有・リモートデプロイ対応

2025 年 11 月の MCP 仕様更新で追加された Streamable HTTP トランスポートを使うと、MCP サーバーを通常の Web サーバーとして Cloudflare Workers・Vercel Edge・EC2 などにデプロイできます。

FastMCP での HTTP サーバー起動(Python):

from fastmcp import FastMCP
import uvicorn

mcp = FastMCP("共有ナレッジサーバー")

# ... ツール定義 ...

if __name__ == "__main__":
    # HTTP モードで起動(デフォルトポート: 8000)
    app = mcp.http_app()
    uvicorn.run(app, host="0.0.0.0", port=8000)

Claude Desktop での接続設定(Streamable HTTP):

{
  "mcpServers": {
    "shared-knowledge": {
      "url": "https://mcp.internal.example.com/mcp",
      "headers": {
        "Authorization": "Bearer ${MCP_SERVER_TOKEN}"
      }
    }
  }
}

この方式では、全社員が同じ MCP サーバーを使えるため、ナレッジ検索・社内 FAQ・承認フローなどのチーム共有ツールに適しています。

Claude Fable 5 × MCP の活用事例 — 部門別ユースケース集

MCP を使いこなすためには「どの部門がどう使えるか」のイメージが重要です。以下に部門別の具体的なユースケースをまとめました。

事例区分: 想定シナリオ
100社以上の研修経験をもとに構成した典型的なシナリオです。

営業部門のユースケース

シナリオ使用 MCP サーバーClaude への指示例
商談準備レポートの自動生成CRM + Google Drive「〇〇社の過去の商談履歴と関連提案書を読んで、今日の商談向けに要点をまとめて」
提案書の Notion 保存と Slack 共有Notion + Slack「この提案書を Notion の『提案書ライブラリ』に保存して、#sales チャンネルに共有して」
失注分析と改善点の抽出CRM + Linear「先月失注した案件を CRM から取得して、共通パターンを分析し、改善タスクを Linear に起票して」

あるソフトウェア会社の営業チームでは(想定シナリオ)、商談前の情報収集に平均 40 分かかっていたものが、CRM MCP サーバーを接続したことで 5 分程度に短縮されたと報告されています。1 人の営業担当者が 1 日 3 商談をこなすと仮定すると、月間で約 30 時間の削減になります。

カスタマーサクセス部門のユースケース

CS 部門は顧客ステータスの把握・定期連絡・問題解決と、多数のツールをまたぐ作業が多い職種です。MCP は特に効果的です。

# CS 担当者が使う典型的なプロンプト(Claude Code CLI)
claude "今日フォローアップが必要な顧客リストを CRM から取得して、
各顧客の直近 30 日の利用状況を確認し、
利用率が 50% 以下のユーザーには Slack DM でリマインドを送って。
その後、対応ログを各顧客の CRM ノートに記録して。"

エンジニアリング部門のユースケース

開発チームにとって最も相性が良いのが GitHub + Linear + Slack の 3 点セットです。

# レビュー依頼〜マージ〜通知の自動化
claude "GitHub で自分にアサインされているレビュー待ちの PR を確認して、
重要度の高い順にリストアップして。
最も優先度の高いものの差分を確認し、
コードレビューコメントを書いて、
承認またはリクエスト変更のアクションを実行して。
完了したら Linear のタスクのステータスを更新して、
Slack の #dev-review チャンネルに報告して。"

人事・経営企画部門のユースケース

採用状況の集計・週次レポートの作成・経営会議の準備など、定型的だが時間のかかる作業を自動化できます。

# 週次経営レポート自動生成
claude "今週の主要指標をまとめてください:
1. Linear から今週クローズしたタスク数と未完了タスク数
2. GitHub から今週のコミット数と PR マージ数
3. Slack の #customer-feedback チャンネルの今週の主要フィードバック
4. 来週の重要な期日(Linear の due_date が来週のタスク)

これらを Notion の『週次経営レポート』テンプレートに沿って記入して、
#leadership チャンネルに日本語で共有してください。"

MCPサーバーの本番運用 — モニタリングとメンテナンス

開発環境で動作確認が取れたら、本番運用に向けた整備が必要です。MCP サーバーも通常の Web サービスと同様、監視・ログ収集・デプロイパイプラインを整備しましょう。

ログ収集の実装(Python FastMCP)

import logging
import structlog
from fastmcp import FastMCP
from datetime import datetime

# 構造化ログの設定
structlog.configure(
    processors=[
        structlog.processors.TimeStamper(fmt="iso"),
        structlog.stdlib.add_log_level,
        structlog.processors.JSONRenderer(),
    ]
)
logger = structlog.get_logger()

mcp = FastMCP("本番CRMサーバー")

@mcp.tool()
def search_customer(company_name: str) -> dict:
    """顧客を検索します(本番・ログ付き)。"""
    logger.info(
        "tool_called",
        tool="search_customer",
        query=company_name,
        timestamp=datetime.utcnow().isoformat(),
    )
    try:
        result = _search_crm_api(company_name)
        logger.info("tool_success", tool="search_customer", result_count=len(result))
        return result
    except Exception as e:
        logger.error("tool_error", tool="search_customer", error=str(e))
        # スタックトレースを Claude に返さない(情報漏洩防止)
        return {"error": "検索中にエラーが発生しました。管理者にお知らせください。"}

ヘルスチェックエンドポイントの追加

from fastmcp import FastMCP
from fastapi import FastAPI
import httpx

mcp = FastMCP("本番サーバー")
app = mcp.http_app()

@app.get("/health")
async def health_check():
    """外部依存サービスの疎通確認"""
    crm_ok = False
    try:
        async with httpx.AsyncClient(timeout=3.0) as client:
            r = await client.get("https://crm.internal.example.com/health")
            crm_ok = r.status_code == 200
    except:
        pass

    return {
        "status": "ok" if crm_ok else "degraded",
        "dependencies": {"crm": "ok" if crm_ok else "down"},
        "timestamp": datetime.utcnow().isoformat(),
    }

Kubernetes / Docker での運用

項目推奨設定理由
コンテナイメージpython:3.12-slim(最小化)攻撃面を減らす
シークレット注入K8s Secret または AWS Secrets Manager環境変数で渡し、コードに書かない
ネットワーク内部ネットワークのみ・外部公開しない不要な露出を避ける
リソース制限CPU: 0.5 コア、メモリ: 512MBツール実行は軽量で十分
ヘルスチェック/health エンドポイント + liveness probe障害時の自動再起動

2026 年後半の MCP ロードマップ — 次に来る変化

MCP の仕様は Linux Foundation 傘下で継続的に進化しています。2026 年後半に実用化が見込まれる主要機能を押さえておきましょう。

Agent-to-Agent(A2A)プロトコルとの統合

MCP が「AI とツールをつなぐ」標準だとすると、A2A は「AI と AI をつなぐ」標準です。2026 年後半には MCP と A2A が統合され、複数の AI エージェントが MCP ツールを協調利用するマルチエージェントオーケストレーションが実用化される見込みです。

想定されるシナリオ: 「営業 AI」が CRM MCP サーバーで顧客データを取得し、「コンテンツ AI」が Drive MCP サーバーで提案書テンプレートを読み取り、「通知 AI」が Slack MCP サーバーで送信する、という役割分担型の AI チームが構成できるようになります。

MCP Server Cards による自動発見

現在は手動で claude_desktop_config.json に MCP サーバーを登録していますが、2026 年 H2 には「MCP Server Cards」による自動発見機能が導入予定です。組織のサーバーレジストリに登録しておけば、Claude が自動的に利用可能なツールを発見して接続できるようになります。

ステートレス操作モード

現在の MCP は「ステートフルな接続」ベースですが、ステートレスモードが追加されます。これにより Lambda や Cloudflare Workers などのサーバーレス環境でも MCP サーバーを動かしやすくなり、インフラコストが大幅に下がることが期待されます。

まとめ:今日から始める 3 つのアクション

MCP を使った Claude Fable 5 の社内ツール連携は、段階的に進めるのが現実的です。

  1. 今日やること: Claude Desktop の claude_desktop_config.json に公式 Slack MCP サーバーを追加して動作確認する(所要時間:15 分)
  2. 今週中: Python の FastMCP を使って社内の最も利用頻度の高い API(CRM・社内 Wiki・スプレッドシートなど)を MCP サーバー化し、チームの 1〜2 人に使ってもらう
  3. 今月中: 複数 MCP サーバーの同時接続構成を整備し、セキュリティチェックリストを通過させた上で社内利用ルールとしてドキュメント化する

あわせて読みたい:

参考・出典


著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。
100社以上の企業向けAI研修・導入支援。著書『AIエージェント仕事術』(SBクリエイティブ)。
SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。

ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。

📋 法人導入を本格検討中の方へ

Claude Fable 5 法人導入支援LPを公開しました

情シス9項目・法務8項目・経営6項目の23項目チェックリストと、累計100社以上の研修実績、30分無料相談予約カレンダーをワンページに集約しました。

⚡ 法人導入LPを見る →

無料・初回相談

100社以上の支援実績|30分の無料相談で導入設計を一緒に組みます

Claude Code / Codex の社内展開・チーム導入・セキュリティ設計まで、貴社の業務と組織に合わせて伴走支援します。

  • 100社以上の企業支援実績
  • 初回30分無料・即日返信
  • 導入後3ヶ月の伴走付き

お問い合わせフォームから24時間以内にUravation担当者がご返信します。

佐藤傑
この記事を書いた人 Uravation Lead API Bot
この記事をシェア

Claude Codeを本格的に使いこなしたい方へ

週1回・1時間のマンツーマン指導で、3ヶ月後にはClaude Codeで自走できる実力が身につきます。
現役エンジニアが貴方の業務に合わせてカリキュラムをカスタマイズ。

✓ 1対1のマンツーマン ✓ 全12回・3ヶ月 ✓ 実務ベースの指導
Claude Code 個別指導の詳細を見る まずは無料相談

Contact お問い合わせ

生成AI研修や開発のご依頼、お見積りなど、
お気軽にご相談ください。

Claude Code 個別指導(1対1・12セッション)をご希望の方はこちらから別途お申し込みください

Claude Code 個別指導 無料相談