手を動かして学ぶ！MCPステップバイステップ実践ガイド for Beginners - Vol.1 MCPって一体どんなものなの？

## 1. はじめに：このシリーズで一緒に冒険しましょう！
皆さん、こんにちは！そして、ようこそ「手を動かして学ぶ！MCPステップバイステップ実践ガイド for Beginners」へ！

このブログシリーズは、「MCPってなんだか難しそう…」「プログラミングで何か作ってみたいけど、何から始めればいいの？」と感じている初心者の方に向けて、実際に手を動かしながら、簡単なコードでMCP（Model Context Protocol）の世界を体験していただくことを目的としています。

「プロトコル」や「サーバー」といった言葉を聞くと、ちょっと身構えてしまうかもしれません。でも、安心してください！このシリーズでは、専門的な知識がなくても大丈夫なように、身近な例え話をたくさん使いながら、一歩一歩、ゆっくりと進んでいきます。まるで料理のレシピ本のように、材料（知識）と手順（コード）を追いながら、最後には「自分で作ったMCPのプログラムが動いた！」という達成感を味わっていただくことを目指しています。

この全10回のシリーズを通して、皆さんは以下のようなことを学び、体験することができます。
- **MCPの基本的な考え方:** MCPがどんなもので、なぜ注目されているのかが分かります。
- **Pythonプログラミングの基礎:** 簡単なサーバーやクライアント（後で説明しますね！）をPythonで作ることで、プログラミングの楽しさに触れられます。
- **Webの仕組みの初歩:** MCPを動かす上で欠かせない、インターネットの裏側の仕組みについても、少しだけ詳しくなれます。
- **小さな「できた！」の積み重ね:** 各回で少しずつプログラムを作り上げていくので、小さな成功体験を積み重ねながら学習を進められます。

最終回までには、MCPの基本的な仕組みを使った簡単なコマンドラインツール（コンピューターに命令を送って動かすプログラム）を自分で作れるようになっているはずです！

この冒険に必要なものは、そんなに多くありません。

- インターネットに接続できるパソコン（Windows, macOS, Linuxどれでも大丈夫です）
- 「やってみよう！」という少しの好奇心と、新しいことを学ぶワクワク感

プログラミングが全く初めての方でも、安心してついてこられるように、丁寧に解説していきますので、どうぞリラックスして読み進めてください。

さて、記念すべき第1回目の今回は、まず「MCPって一体どんなものなの？」という疑問に答えるところから始め、その後、このシリーズで使うプログラミング言語「Python（パイソン）」と、プログラムを作るための作業場である「開発環境」の準備を一緒に行っていきます。いわば、冒険に出る前の地図を手に入れ、装備を整える回ですね。

それでは、MCPの世界への第一歩を、一緒に踏み出しましょう！

## 2. MCPってどんなもの？～未来のインターネットの「共通言語」～
さて、早速ですが、このシリーズの主役である「MCP」についてお話ししましょう。 MCPとは、Model Context Protocol（モデル・コンテキスト・プロトコル）の頭文字を取った言葉です。

「うーん、カタカナばかりでよく分からない…」と感じた方もいるかもしれませんね。大丈夫です、一つ一つの言葉を分解して、ゆっくり見ていきましょう。

#### Model（モデル）って何？
まず「モデル」ですが、これはコンピューターの世界で、現実世界の **「モノ」や「コト」** 、あるいは概念などを表現したものです。 例えば、

- 皆さんの家にあるスマート家電の「エアコン」や「照明」
- 工場のラインで部品を組み立てている「ロボットアーム」
- 天気予報サービスが提供する「明日の東京の天気」
- オンラインゲームに登場する「キャラクター」

これらはすべて「モデル」と考えることができます。そして、これらのモデルは、それぞれ固有の「状態」や「能力」を持っています。

- 「エアコン」モデルなら、「現在の設定温度」や「風量」といった状態を持ち、「温度を上げる/下げる」「電源をON/OFFする」といった能力を持っています。
- 「明日の東京の天気」モデルなら、「最高気温」「降水確率」といった状態を持ち、「最新の予報を教えて」と問い合わせる能力（情報を提供する能力）を持っています。

なんだか、プラモデルやミニチュアの模型が、それぞれ形や機能を持っているのに似ていますね。コンピューターの中で、現実のモノやコトを扱いやすくするために、このように「モデル」化するのです。

#### Context（コンテキスト）って何？

次に「コンテキスト」です。これは、モデルが置かれている **「状況」や「背景情報」、あるいはモデルを取り巻く「環境」** のことを指します。

先ほどの「エアコン」モデルで考えてみましょう。

- エアコン自体はモデルですが、そのエアコンが設置されている「部屋の現在の室温」や「湿度」、「窓が開いているかどうか」といった情報は、エアコンモデルのコンテキストになります。
- 「ロボットアーム」モデルなら、「今、どの部品を掴んでいるか」「作業台の上に何が置かれているか」といった周囲の状況がコンテキストです。
- 「明日の東京の天気」モデルなら、「いつの時点の予報か」「どの地域（例えば渋谷区）を対象としているか」といった付帯情報がコンテキストと言えるでしょう。

モデルが「主役」だとすれば、コンテキストは「その主役を取り巻く舞台設定や状況説明」のようなものです。このコンテキスト情報があることで、モデルの振る舞いをより適切に制御したり、モデルの状態をより深く理解したりすることができます。

#### Protocol（プロトコル）って何？

最後に「プロトコル」です。これは、コンピューター同士やプログラム同士が情報をやり取りするための **「お約束事」や「ルールブック」** のことです。

私たちが普段、人と会話するときも、無意識のうちに「日本語で話す」「相手の話を最後まで聞く」「分かりやすい言葉を選ぶ」といったルールに従っていますよね。もし、一方が日本語で、もう一方が英語で話していたら、コミュニケーションは成り立ちません。

コンピューターの世界も同じです。情報を送る側と受け取る側が、同じルール（プロトコル）に従って情報をやり取りしないと、正しく意思疎通ができません。プロトコルは、

- 「どんな形式で情報を送るか？」（手紙の宛名の書き方や、本文の構成など）
- 「どんな手順で情報をやり取りするか？」（最初に挨拶をする、次に要件を伝える、最後に返事をもらうなど）
- 「エラーが起きたときはどうするか？」（もし情報が途中で途切れたら、再送をお願いするなど）

といったことを細かく定めています。皆さんがインターネットでウェブサイトを見るときに使われている「HTTP」や「HTTPS」も、プロトコルの一種です。

#### つまり、MCPって？

さあ、3つの言葉の意味が分かったところで、もう一度「MCP（Model Context Protocol）」を見てみましょう。

MCPとは、 **「様々なモデル（モノやコト）が、自分たちの状態や能力（これがモデルの情報ですね）と、それを取り巻く状況（コンテキスト）を、決められたお約束事（プロトコル）に従って、互いに伝え合ったり、操作し合ったりするための共通のルール」** と理解することができます。

まるで、世界中の人々が「英語」という共通言語を使ってコミュニケーションを取るように、様々なコンピューターシステムやデバイス（モデル）が、「MCP」という共通言語を使ってお互いを理解し、連携し合うことを目指しているのです。

![MCPってどんなもの_～未来のインターネットの「共通言語」～ - visual selection (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4058228/c35c334c-cbbc-42aa-8849-07d35b004194.png)

#### なぜMCPが必要なの？身近な例で考えてみよう

「でも、どうしてそんな共通言語が必要なの？」と思うかもしれませんね。身近な例で考えてみましょう。

**例1：スマートホームの夢**

皆さんの家には、色々なメーカーの家電製品があるかもしれません。例えば、A社のテレビ、B社のエアコン、C社の照明…。これらを操作するとき、それぞれの専用リモコンが必要で、ちょっと面倒ですよね。

もし、これらの家電製品（モデル）が、すべてMCPという共通言語で話せたらどうでしょう？スマートフォンの一つアプリから、メーカーに関係なくすべての家電を操作できるようになるかもしれません。「おやすみ」と一言伝えれば、テレビが消え、照明が暗くなり、エアコンが省エネモードになる…なんて連携も夢ではありません。さらに、家のセンサー（これもモデルです）が「誰もいない」という状況（コンテキスト）を検知したら、自動的に家電の電源を切ってくれる、といった賢い省エネも可能になります。

現状では、各メーカーが独自の「方言」（独自の通信ルール）を使っているため、このような連携は簡単ではありません。MCPは、この「方言の壁」を取り払い、スムーズなコミュニケーションを実現しようとしているのです。

**例2：賢い工場**

大きな工場では、たくさんの機械（ロボットアーム、センサー、搬送装置など）が動いています。これらの機械は、それぞれ異なるメーカー製で、異なるシステムで制御されていることがよくあります。そのため、工場全体の状況をリアルタイムに把握したり、生産計画の変更に合わせて機械の動きを柔軟に変えたりするのは大変な作業です。

もし、これらの機械（モデル）がMCPで繋がり、お互いの状態（コンテキスト）や稼働状況をリアルタイムに共有できたらどうでしょうか？ある機械にトラブルが発生しそうになったら、その情報が即座に他の機械や管理システムに伝わり、自動的に生産ラインが調整されたり、管理者に警告が送られたりするかもしれません。これにより、生産効率が上がり、無駄が減り、より安全な工場が実現できるのです。

#### MCPが目指すちょっと未来の世界

MCPのような技術は、**サイバーフィジカルシステム（CPS）やデジタルツイン** といった、ちょっと未来的なコンセプトを実現するための鍵となると言われています。

- **サイバーフィジカルシステム（CPS）:** 現実世界（フィジカル空間）の様々なセンサーやデバイスから情報を集め、それをサイバー空間（コンピューターの中の世界）で分析・処理し、その結果を現実世界のデバイスにフィードバックして、より賢く、効率的に現実世界を制御しようとする仕組みです。スマートシティや自動運転などが代表例です。
- **デジタルツイン:** 現実世界のモノやプロセス（工場、都市、人間の体など）を、そっくりそのままデジタルの世界に再現する（双子＝ツインを作る）技術です。デジタル空間でシミュレーションを行ったり、将来を予測したりすることで、現実世界の問題解決や意思決定に役立てます。

これらの未来技術では、多種多様な「モデル」が、お互いの「コンテキスト」を理解し合い、緊密に連携することが不可欠です。MCPは、そのための「共通言語」として、非常に重要な役割を果たすと期待されているのです。

このシリーズでは、このような壮大なMCPの世界の、ほんの入り口を覗いてみることにします。実際にプログラムを作りながら、「モデルの情報をやり取りするって、こういうことか！」という感覚を掴んでいきましょう。

## 3. Pythonをはじめよう！～プログラミング言語の準備～
MCPの概要がなんとなくイメージできたところで、次はいよいよ、このシリーズで使う「道具」の準備に取り掛かりましょう。MCPのプログラムを作るために、私たちは **「Python（パイソン）」** というプログラミング言語を使います。

「プログラミング言語って、なんだか難しそう…」と感じるかもしれませんが、Pythonは初心者の方にも比較的取り組みやすい言語として人気があります。

#### なぜPythonを選ぶの？
数あるプログラミング言語の中で、なぜこのシリーズでPythonを選ぶのでしょうか？主な理由は以下の通りです。

- **読みやすく、書きやすい文法:** Pythonの文法は、英語の文章を読むのに近い感覚で理解できるように設計されています。他の言語に比べて、覚えるべき記号やルールが少なく、スッキリとしています。そのため、プログラミングが初めての方でも、比較的早く基本的な書き方をマスターしやすいと言われています。
- **豊富な「ライブラリ」:** Pythonには、「ライブラリ」と呼ばれる便利なプログラム部品がたくさん用意されています。ライブラリとは、よく使う機能があらかじめプログラムとしてまとめられたもので、これを活用することで、自分で一からコードを書かなくても、複雑な処理を簡単に実現できます。例えば、MCPで必要になるネットワーク通信や、後々扱うデータの処理（JSON形式など）も、Pythonのライブラリを使えば数行のコードで実現できてしまうことがあります。これは、料理で言えば、便利な調味料セットや調理器具が揃っているようなものです。
- **幅広い用途で使われている:** Pythonは、ウェブアプリケーション開発、データサイエンス、機械学習、AI（人工知能）、科学技術計算、そして今回のようなネットワークプログラミングなど、非常に幅広い分野で活用されています。そのため、Pythonを学んでおくと、将来的に色々なことに挑戦できる可能性が広がります。
- **コミュニティが活発:** 世界中に多くのPythonユーザーがいるため、学習のための情報（ウェブサイト、書籍、動画など）が豊富にあります。また、もしプログラミングで困ったことがあっても、インターネットで検索すれば解決策が見つかりやすいというメリットもあります。

こうした理由から、Pythonは初学者がプログラミングの楽しさを体験するのに適した言語の一つと言えるでしょう。

#### あなたのPCにPythonはいる？確認してみよう
もしかしたら、あなたのパソコンには既にPythonがインストールされているかもしれません。まずはそれを確認してみましょう。

お使いのパソコンのOS（オペレーティングシステム：Windows、macOS、Linuxなど、パソコンを動かす基本ソフトのことです）によって、確認方法が少し異なります。

- **Windowsの場合:**
1. キーボードの「Windowsキー」を押しながら「Rキー」を押します。「ファイル名を指定して実行」というウィンドウが開きます。
1. 入力欄に ```cmd``` と入力し、「OK」ボタンを押すかEnterキーを押します。黒い画面（コマンドプロンプト）が表示されます。
1. その画面に、 ```python --version``` と入力してEnterキーを押します。

- **macOSの場合:**
1. Launchpadから「ターミナル」というアプリケーションを探して起動します（「その他」フォルダの中にあることが多いです）。
1. 表示された画面に、 ```python3 --version``` と入力してEnterキーを押します。（macOSには古いバージョンのPython (python) と新しいバージョンのPython3 (python3) が入っていることがあるため、 ```python3``` で確認します。）

- **Linuxの場合:**
1. 通常、Ctrl + Alt + Tキーなどでターミナルを起動します。
1. 表示された画面に、 ```python3 --version``` と入力してEnterキーを押します。

Enterキーを押した後、 ```Python 3.x.x``` (例えば ```Python 3.10.4``` のように、3で始まるバージョン番号) と表示されれば、Python (バージョン3系) がインストールされています。このシリーズでは、Python 3.7以降のバージョンを推奨します。

もし、 ```python``` や ```python3``` というコマンドが見つからない旨のメッセージが表示されたり、バージョンが2.x.xだったりした場合は、次に説明する手順でPythonをインストールしましょう。

#### Pythonをインストールしよう！（まだの方へ）

Pythonがまだインストールされていない方、あるいは古いバージョンだった方は、公式サイトから最新版のPythonをインストールしましょう。インストールは無料で行えます。

1. **公式サイトへアクセス:** ウェブブラウザ（Google Chrome, Firefox, Edgeなど）を開き、Pythonの公式サイト [https://www.python.org](https://www.python.org) にアクセスします。
1. **ダウンロードページへ:** サイトの上部にあるメニューから「Downloads」にマウスカーソルを合わせると、お使いのOS（Windows, macOSなど）用の最新版Pythonのダウンロードボタンが表示されるはずです。それをクリックするか、「Downloads」メニュー内のOS名を選択して、ダウンロードページに進みます。
1. **インストーラーのダウンロード:** ダウンロードページで、最新の安定版Python（通常、バージョン番号が一番大きいものが推奨されています）のインストーラーをダウンロードします。32-bit版と64-bit版がある場合は、お使いのパソコンに合わせて選びますが、最近のパソコンであれば通常64-bit版で問題ありません。
1. **インストーラーの実行と設定 (Windowsの場合):** ダウンロードしたインストーラー（```.exe``` ファイル）を実行します。 **非常に重要な注意点があります！** インストール画面の最初の方に、「 **Add Python x.x to PATH** 」（x.xはバージョン番号）というチェックボックスが表示されることがあります。 **必ずここにチェックを入れてください** 。 これにチェックを入れないと、後でコマンドプロンプトからPythonを呼び出すのが少し面倒になります。 その後は、基本的に「Install Now」を選択し、画面の指示に従って進めればインストールが完了します。
1. **インストーラーの実行と設定 (macOSの場合):** ダウンロードしたインストーラー（```.pkg``` ファイル）を実行します。画面の指示に従って進めれば、特に難しい設定はなくインストールが完了するはずです。
1. **インストール後の確認:** インストールが完了したら、再度コマンドプロンプト（Windows）またはターミナル（macOS/Linux）を開き、 ```python --version``` (Windows) または ```python3 --version``` (macOS/Linux) と入力して、バージョン番号が表示されるか確認しましょう。正しくインストールされていれば、ダウンロードしたPythonのバージョンが表示されるはずです。

もし、インストールでうまくいかない場合は、「Python インストール (お使いのOS名)」といったキーワードでインターネット検索すると、詳しい手順を解説したウェブサイトがたくさん見つかりますので、参考にしてみてください。

#### Pythonと少しだけおしゃべりしてみよう

Pythonが無事にインストールできたら、本当に動くかどうか、簡単なおしゃべりをしてみましょう。

コマンドプロンプトまたはターミナルで、 ```python``` (Windows) または ```python3``` (macOS/Linux) とだけ入力してEnterキーを押してみてください。

すると、プロンプト（入力待ちの記号）が ```>>>``` のように変わるはずです。これはPythonの「インタラクティブモード」といって、Pythonと直接対話できる状態です。

ここに、試しに以下のように入力して、一行ずつEnterキーを押してみてください。

```
Python
print("Hello, MCP World!")
```

```print()``` は、カッコの中身を画面に表示しなさい、というPythonの命令です。Enterキーを押すと、次の行に

```
Hello, MCP World!
```

と表示されたでしょうか？ 表示されたら、Pythonは元気に動いています！

もう一つ試してみましょう。

```
2 + 3
```

と入力してEnterキーを押すと、

```
5
```

と表示されるはずです。簡単な計算もできますね。

このインタラクティブモードを終了するには、 ```exit()``` と入力してEnterキーを押すか、Ctrl + Zキーを押してからEnterキー (Windows)、またはCtrl + Dキー (macOS/Linux) を押します。

これで、プログラミング言語Pythonの準備は完了です！

## 4. 開発環境を整えよう！～プログラミングの作業場所～
Pythonという「言葉」を覚えた（インストールした）だけでは、まだ本格的なプログラムを作ることはできません。次に必要なのは、その言葉を使って文章（プログラムコード）を書き、それを実行するための「作業場所」や「道具」です。これらをまとめて **「開発環境」** と呼びます。

#### 開発環境って何？

開発環境とは、プログラマーがプログラムを効率的に、そして快適に開発するために使うツールやソフトウェアの集まりのことです。料理に例えるなら、包丁やまな板、フライパン、コンロ、作業台などが揃った「キッチン」のようなものです。

最低限必要なのは、プログラムのコードを書くための「テキストエディタ」と、書いたプログラムを実行するための「Pythonインタプリタ（先ほどインストールしたPython本体のこと）」ですが、より便利で高機能なツールを使うことで、開発作業がずっと楽になります。

#### プログラムを書くためのノート：コードエディタを選ぼう

プログラムのコードは、基本的には文字の羅列なので、パソコンに最初から入っている「メモ帳」(Windows) や「テキストエディット」(macOS) のようなシンプルなテキストエディタでも書くことはできます。

しかし、これらのエディタは、あくまで一般的な文章を書くためのもので、プログラミングに特化した機能はほとんどありません。例えば、プログラムのコードは、特定のキーワード（print や if など）を色分けして表示したり、カッコの対応を分かりやすく示してくれたりすると、ずっと読みやすく、間違いも見つけやすくなります。

そこで、プログラマーは通常、 **「コードエディタ」や「統合開発環境（IDE）」** と呼ばれる、プログラミング専用の高機能なエディタを使います。これらは、先ほどのようなコードの見た目を分かりやすくする機能（シンタックスハイライト）の他にも、

- コードの自動補完（途中まで入力すると候補を表示してくれる）
- エラー箇所の指摘
- プログラムの実行やデバッグ（間違い探し）の支援

など、たくさんの便利な機能を提供してくれます。

#### おすすめコードエディタ：Visual Studio Code (VS Code)

世の中にはたくさんのコードエディタやIDEがありますが、このシリーズでは、「 **Visual Studio Code（ビジュアル・スタジオ・コード）** 」、略してVS Codeというコードエディタをおすすめします。

VS Codeをおすすめする理由は以下の通りです。

- **無料:** 高機能でありながら、完全に無料で利用できます。
- **高機能で軽量:** 多くの便利な機能を持ちながら、比較的軽快に動作します。
- **多くのプログラマーに人気:** 世界中の多くのプログラマーに利用されており、情報も豊富です。
- **Pythonのサポートが充実:** 「拡張機能」という仕組みで、Pythonプログラミングを強力にサポートしてくれます。
- **クロスプラットフォーム:** Windows, macOS, Linux のどれでも利用できます。
- **インストールが比較的簡単:** 公式サイトから簡単にダウンロードしてインストールできます。

もちろん、既に使い慣れたコードエディタやIDEがある方は、それをお使いいただいても構いません。もし、特にこだわりがなければ、この機会にVS Codeを試してみてはいかがでしょうか。

#### VS Codeをインストールしよう

1. **公式サイトへアクセス:** ウェブブラウザで「VS Code」と検索するか、 [https://code.visualstudio.com/](https://code.visualstudio.com/) にアクセスします。
1. **インストーラーのダウンロード:** トップページに、お使いのOS用のダウンロードボタンが目立つように表示されているはずです。それをクリックして、インストーラーをダウンロードします。
1. **インストーラーの実行:** ダウンロードしたインストーラーを実行し、画面の指示に従ってインストールを進めます。特に難しい設定はありません。使用許諾契約に同意し、インストール場所などを確認して進めればOKです。 Windowsの場合、インストール中に「PATHへの追加」といったオプションがあれば、チェックを入れておくと便利です。また、「エクスプローラーのコンテキストメニューに[Code で開く]アクションを追加する」にもチェックを入れておくと、後でフォルダをVS Codeで開くのが楽になります。

インストールが完了したら、VS Codeを起動してみましょう。最初は英語の表示かもしれませんが、後で日本語化することも可能です（今回はまずこのまま進めます）。

#### VS CodeとPythonを仲良しにする魔法（拡張機能）

VS Codeはそれ自体でも強力なエディタですが、「拡張機能」を追加することで、特定のプログラミング言語向けの機能を強化することができます。Pythonプログラミングを快適に行うために、Microsoftが提供している公式のPython拡張機能をインストールしましょう。

1. VS Codeを起動します。
1. 画面左側にあるアイコンが並んだバー（アクティビティバーといいます）の一番下の方にある、四角がいくつか組み合わさったようなアイコン（通常は上から5番目くらい）をクリックします。これが「拡張機能」ビューを開くボタンです。
1. 拡張機能ビューの上部にある検索ボックスに ```Python``` と入力します。
1. 検索結果の中に、Microsoftが発行者となっている「Python」（星マークが付いていて、作者がMicrosoftとなっているもの）が表示されるはずです。これを選択し、「Install」ボタンをクリックします。

インストールには少し時間がかかる場合があります。完了すると、「Install」ボタンが歯車アイコンの「Manage」ボタンに変わります。

これで、VS CodeがPythonのコードをよりよく理解し、シンタックスハイライト、コード補完、エラーチェックなどの機能を提供してくれるようになります。

#### 作業スペースを整理整頓！仮想環境のすすめ（推奨）

さて、最後の準備として、「仮想環境」について説明します。これは少し専門的な話に聞こえるかもしれませんが、今後のプログラミング作業をスムーズに進めるために、ぜひ知っておいてほしいテクニックです。必須ではありませんが、利用することを強く推奨します。

#### 仮想環境って何？ なぜ使うの？

仮想環境とは、一言で言うと **「プロジェクトごとに独立したPythonの作業部屋を作る仕組み」** です。

皆さんがもし、複数の料理を同時に作ろうとしたら、それぞれの料理で使う調味料や調理器具が混ざらないように、別々の作業スペースを確保したいですよね？ プログラミングも同じです。

このシリーズで作るMCPのプログラム（プロジェクトA）と、もしあなたが将来、別のPythonプロジェクト（プロジェクトB）を始める場合、それぞれで使う「ライブラリ」（Pythonの便利な部品）の種類やバージョンが異なることがあります。

もし、すべてのプロジェクトでパソコン全体にインストールされた共通のPython環境を使っていると、

- プロジェクトAではライブラリXのバージョン1.0が必要だけど、プロジェクトBではバージョン2.0が必要、といった **バージョンの衝突（コンフリクト）** が起こり、どちらかのプロジェクトがうまく動かなくなる。
- パソコン全体のPython環境に、色々なプロジェクトで使ったライブラリがごちゃ混ぜにインストールされてしまい、どれがどのプロジェクトで必要なのか分からなくなる。

といった問題が発生する可能性があります。

仮想環境を使うと、プロジェクトごとに「専用のPython実行環境」と「専用のライブラリ置き場」を用意することができます。これにより、

- 各プロジェクトが必要とするライブラリのバージョンを独立して管理できるため、バージョン競合を防げる。
- プロジェクトに必要なライブラリだけがその環境に入るので、環境がスッキリと保たれる。
- 他のプロジェクトやパソコン全体のPython環境に影響を与えない。

といったメリットがあります。家の中に、趣味の部屋、勉強部屋、仕事部屋をそれぞれ作るようなイメージですね。

#### Python標準の「venv」で仮想環境を作ってみよう

Pythonには、標準で「venv（ヴィーイーエヌブイ または ブイエンブ）」という仮想環境を作成・管理するためのツールが付属しています。これを使って、このMCPシリーズ専用の仮想環境を作ってみましょう。

まず、このシリーズのプロジェクトファイルを保存するためのフォルダを、パソコンの好きな場所（例：ドキュメントフォルダの中など）に作りましょう。フォルダ名は例えば ```mcp_beginner_guide``` のように、分かりやすい名前が良いでしょう。

次に、コマンドプロンプト（Windows）またはターミナル（macOS/Linux）を開き、 ```cd``` コマンド（change directoryの略）を使って、今作成したプロジェクトフォルダに移動します。
例えば、ドキュメントフォルダの中に ```mcp_beginner_guide``` というフォルダを作ったなら、

```
# Windowsの場合 (ユーザー名が user の場合)
cd C:\Users\user\Documents\mcp_beginner_guide

# macOS/Linuxの場合 (ユーザー名が user の場合)
cd /Users/user/Documents/mcp_beginner_guide
# または ~/Documents/mcp_beginner_guide のようにチルダ(~)も使えます
```

のように入力してEnterキーを押します。（実際のパスはご自身の環境に合わせてください）

プロジェクトフォルダに移動できたら、いよいよ仮想環境を作成します。以下のコマンドを実行してください。

```
# Windowsの場合
python -m venv mcp_env

# macOS/Linuxの場合
python3 -m venv mcp_env
```

```mcp_env``` の部分は、作成する仮想環境の名前です。好きな名前で構いませんが、ここでは ```mcp_env``` としておきましょう。

このコマンドを実行すると、プロジェクトフォルダの中に ```mcp_env``` という名前のフォルダが作られ、その中に仮想環境用のファイルが一式コピーされます。

次に、作成した仮想環境を **有効化（アクティベート）** します。有効化することで、コマンドプロンプトやターミナルが、パソコン全体のPythonではなく、この仮想環境内のPythonを使うようになります。

```
# Windowsの場合 (コマンドプロンプト)
mcp_env\Scripts\activate

# Windowsの場合 (PowerShell)
.\mcp_env\Scripts\Activate.ps1
# (もしPowerShellでスクリプト実行が禁止されている場合は、Set-ExecutionPolicy RemoteSigned -Scope Process などのコマンドで一時的に許可が必要な場合があります)

# macOS/Linuxの場合
source mcp_env/bin/activate
```

コマンドが成功すると、コマンドプロンプトやターミナルの行頭に ```(mcp_env)``` のように、仮想環境名がカッコで表示されるはずです。これが表示されていれば、仮想環境が有効になっている証拠です。

このシリーズでプログラミング作業をするときは、 **必ずこの仮想環境を有効化してから始める** ようにしましょう。

仮想環境を **無効化（ディアクティベート）** したい場合は、有効化されている状態でターミナルに

```
deactivate
```

と入力してEnterキーを押します。行頭の ```(mcp_env)``` という表示が消えれば、無効化されています。

VS Codeで作業する場合も、この仮想環境をVS Codeに認識させることが重要です。VS Codeでプロジェクトフォルダ（例：```mcp_beginner_guide```）を開くと、右下などに「Pythonインタープリターを選択」といった通知が表示されることがあります。そこで、先ほど作成した仮想環境内（例：```mcp_env/Scripts/python.exe``` や ```mcp_env/bin/python```）のPython実行ファイルを選択すると、VS Codeのターミナルも自動的に仮想環境を使うようになります。もしくは、VS Codeでターミナルを開いた後（メニューの「ターミナル」 > 「新しいターミナル」）、手動で上記の有効化コマンドを実行してもOKです。

これで、プログラミング作業を行うための「キッチン」がほぼ整いました！

## 5. さあ、準備完了！次回への期待
お疲れ様でした！ ここまでの手順で、

- MCPという技術がどんなものか、その概要を掴み、
- プログラミング言語Pythonをパソコンに準備し、
- コードエディタVS Codeを導入し、
- 作業スペースをクリーンに保つための仮想環境

という、このシリーズ「手を動かして学ぶ！MCPステップバイステップ実践ガイド for Beginners」を進めていくための土台となる準備がすべて整いました。

初めてのことばかりで、少し大変だったかもしれませんが、この最初の準備が、今後の学習をスムーズに進めるための大切な一歩となります。家を建てる前の基礎工事のようなものですね。

さて、次回はいよいよ実際にPythonのコードを書いて、MCPの世界に足を踏み入れます！ 
**Vol.2のタイトルは「リクエストを待つ窓口！Flaskで動かす初めてのMCPサーバー」** です。

次回は、

- MCPにおける「サーバー」ってどんな役割なの？
- Pythonの便利なライブラリ「Flask（フラスク）」って何？
- 本当に簡単な「MCPサーバー」を自分で作って動かしてみよう！

といった内容で、実際に動くプログラムを作り始めます。今回準備したPythonとVS Codeが早速活躍しますので、楽しみにしていてください。

プログラミングは、実際に手を動かして、試行錯誤しながら学ぶのが一番の近道です。難しく考えず、まずは「やってみる」ことを大切に、この先の回も一緒に楽しんでいきましょう。

それでは、また次回の記事でお会いしましょう！