MCPとは?AIエージェントの可能性を広げよう ~LLM活用入門13回~
MCPとは?というところから、Claude for DesktopでのMCP活用例までご紹介します。
テクノロジーコラム
- 2025年11月13日公開
はじめに
こんにちは、NTTテクノクロスの水口・山口です。
前回の記事でAIエージェントについて紹介しました。
AIエージェントとあわせて良く語られるのがMCP(Model Context Protocol)です。
そこで今回は、MCPについての説明と、実際に動かした例についてご紹介したいと思います。
■ 目次
| 節番号 | 節タイトル |
| 1 | MCPとは |
| 2 | Claude for Desktopを使って実際に試してみる |
[参考] これまでの連載の記事
本記事とあわせて、以下も良ければご確認ください。
| 連載番号 | タイトル | 概要 |
| 第1回 | 今だから知っておきたいDify!ノーコード・ローコードでLLM活用基盤を作ろう | Dify自体の説明とChatflow機能を使った例を取り上げています。 |
| 第2回 | 爆速キャッチアップ!LLM活用をリードするプラットフォーム群 | LLMの可能性をより広げるDify/Ollama/LangChain/Hugging Faceの紹介と、 DifyとOllamaでローカルLLMを活用したChatflow機能の利用に関して取り上げます。 |
| 第3回 | RAGとは?Difyから基本を学ぶ | RAGの基礎的な説明とDifyを使った実現方法を取り上げています。 |
| 第4回 | ローカルモデル利用のRAG実装で学ぶLangChainの基礎 | ベクトルDBを用いたRAGのサンプルコードから、LangChainの基礎を解説します。 |
| 第5回 | ローカルモデル利用のRAG実装で学ぶLlamaIndexの基礎 | ベクトルDBを用いたRAGのサンプルコードから、LlamaIndexの基礎を解説します。 |
| 第6回 | Difyで学ぶ、RAGの精度改善手法 | RAGの精度改善手法をDifyのChatflow機能を使いながら紹介します。 |
| 第7回 | ローカル環境で実現する、GraphRAGの基礎 | GraphRAGの基礎から、LangChainとNeo4jを使ったグラフRAGの実装例を紹介します。 |
| 第8回 | ローカル環境で実現する、Text-To-SQLとRDBを用いたRAG | Text-To-SQLと、それを活用したRDBを用いたRAGの実装例を紹介します。 |
| 第9回 | ファインチューニングとは?基礎を理解する | ファインチューニングとそのユースケース、手法を紹介します。 |
| 第10回 | Hugging Faceライブラリで実行する推論と学習の基礎(前編) | Hugging Faceのライブラリを使った、モデルのダウンロードや推論処理について紹介します。 |
| 第11回 | Hugging Faceライブラリで実行する推論と学習の基礎(後編) | Hugging Faceのライブラリを使った、ローカルモデルの学習処理と実行例について紹介します。 |
| 第12回 | AIエージェントとは?Difyから考え方を学ぶ | AIエージェントについて、Difyでの動作イメージも含めて紹介します。 |
MCPとは
MCPとは、Anthropic社が発表した、LLMアプリと外部ツール・情報源を繋ぐための標準化された技術です。
前回(第12回)で触れたように、LLMがRAGや外部ツールを活用することは、ユーザからの質問や依頼に回答する為の能力や知識拡張の要となります。
外部ツールを使う為の従来の技術(Function Calling/Tool Use)は、多様な外部ツールのIFごとにアプリケーション側で異なる指定が必要でした。
これを共通的な手順(プロトコル)としたのがMCPです。
図1 従来の方法とMCPの比較イメージ
MCPの構成についても紹介したいと思います。
登場人物は大きく「MCPホスト」「MCPクライアント」「MCPサーバ」があります。
図2 MCPの構成イメージ
それぞれの説明を以下に示します。
| 構成 | 説明 |
| MCPホスト |
MCPを使うLLMアプリケーションを指す。 1つ以上のMCPクライアントを扱う。 |
| MCPクライアント | MCPホストが管理するセッションで、MCPサーバと1:1で連携する。 |
| MCPサーバ |
外部ツールに対して行える操作情報の一覧を保有・公開する。 MCPクライアントと1:1で連携し、依頼に応じて処理を実施する。 |
MCPサーバが管理・共有する情報は以下の3つがあります。
|
共有情報 (プリミティブ) |
説明 |
| Tools | 外部ツールの実行(書込みや読込み)に関するもの。 |
| Resources |
URIで定義する、読み取り用のデータソース。 規定したURIを指定されたら、URIに紐づく情報を返す。 |
| Prompts |
プロンプトのテンプレート。 |
MCPサーバは、すでにGitHubやNotionといったサービス用のサーバも公開されています。
その為、MCPクライアントとMCPサーバのセットの単位はサービス単位と考えるとわかりやすいかと思います。
※ 複数のサービスを取りまとめたMCPサーバも実現可能です。
「LLMアプリを作る人(ツールを使いたい人)」と、「ツールを使ってほしい人」が別の場合も多くあります。
この場合、ツールを使ってほしい人がMCPサーバを用意し、LLMアプリ作成者は様々な人が用意したMCPサーバを使う、という構成が可能です。
図3 MCPの構成と役割の分離イメージ
この構成により、LLMアプリを作る人は使い方の定義などに労力を割かなくてよくなり、使いたい外部ツールを少ない労力で増やしていくことができます。
利用できるツールが増える事は、LLMのできる事を広げることに等しく、ユースケースを広げていく・適用領域を広げていく上でも重要です。
一方でサービスプロバイダー側も、AI利用に自社製品を組み込まれやすくでき、自社製品の活用を推進できます。
なお、自身で用意したツールを使う為にLLMアプリを作る人がMCPサーバも用意する事もありえます。
その場合は、MCPサーバはGitHub上にソースコード含めて公開されているものもある為、それを参考に自前のものを用意する、という案もとり得ます。
より詳しい概要をおさえたい方は以下を参照ください。
Architecture overview - Model Context Protocol
(https://modelcontextprotocol.io/docs/learn/architecture)
Claude for Desktopを使って実際に試してみる
概要
ここからはClaude for Desktopを用いた、MCP の活⽤例を紹介します。
前述の通り、MCPはLLMアプリでできる事を広げられます。
したがってそのユースケースは広く様々ですが、今回は「事務処理の改善」を想定した例でご紹介します。
社内の事務処理にも様々な物がありますが、今回はPDFの請求書から必要な情報だけを取り出し、CSVやテキストに出力する、ということをやってみたいと思います。
モデルの回答結果をファイル出⼒する点は、アプリケーションにその機能を作れば簡単に実現できますが、そういった事はせず、MCPにより機能を拡張します。
なお、CSVやテキストに出力する理由は、後続のルールベースのプログラムにその情報を渡す為とお考え下さい。
図4 ユースケース例の全体像と今回の範囲イメージ
利用するツール(構成)とバージョンは以下の通りです。
| 利用するもの | 説明 | 利用バージョン |
| Claude for Desktop (MCPホスト) |
ユーザからの質問を受け付け、モデル(Claude)とMCPサーバを |
0.14.10 (fe3f56) |
| filesystem (MCPサーバ) |
要求を受けて、適切なツールを選択する。 今回はPDFから抜き出した、必要な情報をローカルディレクトリに配置する目的で利用する。 |
@modelcontextprotocol/server-filesystem@2025.8.21 |
※ 今回の例で実行するマシンOSはWindowsとなります。
なお、今回はサンプル用のわかりやすい動作例として紹介しますが、条件により入力した情報が学習データとなる場合もある為、業務でLLMを使う場合は利用条件や規約に注意しましょう。
実行順序は以下の通りです。
【セットアップ】
1. Claude for Desktopのインストール
2. MCP server-filesystemのインストール
3. Claude for DesktopのMCP連携設定
4. PDF請求書の準備
【実行・動作確認】
5. Claude for DesktopでPDF読解・抽出・出力
6. 出力ファイルの取得・確認
以降では、上の手順にそって説明します。
1. Claude for Desktopのインストール
提供元のAnthropicのヘルプセンターにインストール手順が公開されています。
使用するOSに合わせて手順に沿ってインストールしましょう。
Claude Desktopのインストール | Anthropicヘルプセンター
(https://support.claude.com/ja/articles/10065433-claude-desktop%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
2.MCP server-filesystemのセットアップ
Node.js公式サイトからダウンロードできます。
使用するOSに合わせてダウンロード・インストールしましょう。
Node.js — Run JavaScript Everywhere
(https://nodejs.org/en/)
インストール後、コマンドプロンプトでバージョン確認を確認します。
結果が表示されればインストールが成功しています。
# 実行コマンド
node –v
# 実行結果
v22.20.0
次にNode.jsのパッケージ管理ツールであるnpm(Node Package Manager)をインストールします。
こちらもコマンドプロンプトでバージョン確認を確認します。
結果が表示されればインストールが成功しています。
# 実行コマンド
npm install -g npm
npm -v
# 結果出力
11.6.1
これで、下地は整いましたので、次はMCP server-filesystemをインストールします。
インストール後にディレクトリ移動をして、インストールされていることを確認します。
# 実行コマンド
npm install -g @modelcontextprotocol/server-filesystem
結果の例を以下に示します。
実行コマンドと結果からわかるように、MCPサーバをローカルにダウンロードしてきています。
リモートタイプのMCPサーバもありますが、今回はローカルで動かします。
3.Claude for DesktopのMCP連携設定
Claude for Desktopを起動し、開発者モードを有効にします。
図5 Claude for Desktopにて「開発者オプション」を有効化するには
続いて ファイル > 設定 を開きます。
図6 Claude for Desktopにて「設定」の開き方
開発者を表示し、「設定を編集」を選択します。
図7 設定への編集ボタン
claude_desktop_config.jsonが選択された状態でエクスプローラが表示されます。
図8 表示されるエクスプローラ
claude_desktop_config.jsonを開いて設定を追加します。
ユーザ名は使用している名前に書き換えてください。
argsの第一引数で実行ファイルを、第二引数でMCPにアクセスを許可するフォルダを指定します。
{
"mcpServers": {
"filesystem": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": [
"C:\\Users\\{ユーザ名}\\AppData\\Roaming\\npm\\node_modules\\@modelcontextprotocol\\server-filesystem\\dist\\index.js",
"C:\\Users\\{ユーザ名}\\Desktop"
]
}
}
}
今回は第二引数で「Desktop」を指定している為、Desktopにファイルが生成・配置されます。
Claude for Desktopを再起動し、ファイル > 設定 > 開発者を指定して、filesystemが期待通りに起動しているかを確認します。
runningと表示されていれば問題ありません。
図9 runningと表示される箇所
ここまでセットアップできれば事前準備は完了です。
社内ネット環境で構築している場合、ここで起動に失敗することがあります。
その場合、プロキシ設定が不足している可能性があります。
失敗した場合は、MCPログファイルに詳細が出力されていますので確認してください。
以下はMCPログファイルの開き方です。
図10 MCPログファイルの確認方法
上の箇所を押下することで表示されるログも、参考まで載せておきます。
なお、以下はMCPログの一部(イメージ)です。
図11 MCPログのイメージ(一部)
リポジトリ接続に失敗している場合は、ログにも「この問題が発生する場合はプロキシ設定不足である可能性が高い」という主旨の英文が出力されますので、社内環境に応じたプロキシ設定をしましょう。
画面上にも「ローカルMCPサーバー」と表示されていますが、上記エラーが発生するように、インターネット経由でリポジトリに接続をすることはあります。
4. PDF請求書の準備
動作確認に向けて、読み込ませたいPDF請求書を準備します。
今回は請求書内にある対象額、消費税、その合計額を出力させます。
合計額は請求書内に記載がありませんが、Claudeが指示内容を判断して作成してくれます。
図12 動作確認で使うサンプル請求書(PDF)
5. Claude for DesktopでPDF読解・抽出・出力
動作確認をする為の準備が整ったので、さっそく試してみましょう。
Claude for Desktopにて請求書を添付し指示を出します。
指示内容はシンプルかつ具体的に提示するのが望ましいです。
図13 指示の与え方
PDFを読み取り、結果を画面及び指定したディレクトリ(今回はデスクトップ)に出力してくれます。
図14 Claude for Desktop上での返答結果
指示通り3つの形式(txt, csv, json)のファイルがローカルディレクトリに配置されました。
図15 生成されたファイル群
6. 出力ファイルの取得・確認
最後に出力されたファイルを確認してみましょう。
以下は請求情報.txtの内容です。
図16 ファイルの中身
期待通り対象額、消費税、合計額が記載されています。
通常、LLMの回答を特定形式にしてローカルに配置する事は、チャット画面からでは自動で行う事は難しく、また自作のLLMアプリで作りこみたい場合にはファイル出力をする部分を作る必要があります。
MCPを使うことで、この部分は手を加えず(LLMアプリ側に作らずに)対応ができるようになります。
この事からMCPを使う事で、様々な機能・能⼒を LLM に簡単に拡張していくことができるだろうとイメージが掴めたら幸いです。
おわりに
前回と今回で、AI エージェントとMCPについて、それぞれ紹介してきました。
計画⾃体を考え、その計画に沿って処理をしていく AI エージェントと、LLM の使えるツールを簡単に増やすことができるMCPを組み合わせれば、LLM の出来る事・可能性はより広がっていくでしょう。
ただし、様々なことができるからと⾔って「全ての処理」を AI に実施させる必要はない点は触れておきたいと思います。
LLMは、同じ質問でも回答が変わる可能性もある為、ルールベースで実現できるようなものは、従来のプログラムによる⾃動化が適しているといえます。
LLMやAI エージェントも含めて、⼩さな⼿作業を⼀つ⼀つ⾃動化して連携することにより、最終的には事務処理の作業稼働やヒューマンエラーの減少などの効果に繋げていくことが期待できます。
⼀歩⼀歩着実にできる事を積み上げていくことが重要です。
今回もご覧いただきありがとうございました。
本記事、またはそれ以外のネットワーク関連に関しての問い合わせやご意見がございましたら、以下にご連絡ください。
本件に関するお問い合わせ

フューチャーネットワーク事業部
第一ビジネスユニット
水口 智幸 (MIZUGUCHI TOMOYUKI)
(同)
山口 佳輝(YAMAGUCHI YOSHIKI)

