見出し画像

第3章【開発記】:MCPサーバー用の言語にPythonを選び、Windowsで「python --version」と打って首をかしげた

■ はじめに

まだ前回の記事を見ていない方はこちらも。
第2章【開発記】:促されるままに入れたClaude Desktopが何者かを設定ファイルから確かめた

第2章ではClaude Desktopの設定ファイルの場所と中身を確認しました。
第3章はいよいよMCPサーバーを書く側の準備に入ります。

最初の関門は、言語の選定です。MCPサーバーはPython、TypeScript、JavaScriptのどれでも書けます。今回はPythonを選ぶ理由を整理した上で、自分のWindows環境にPythonが入っているかを確認します。

公式からダウンロードしてインストールすればだいたいそのまま使えますが、

そして実際にPowerShellを開いて python --version を叩いてみたら、想定外の出力が返ってきました。インフラエンジニア目線で「これは何だ」となるWindowsならではの挙動が見えてきます。

■ 今回やること

第3章でやることは3つです。

・MCPサーバーを書く言語として、Python、TypeScript、JavaScriptを比較。
・なぜ最初にPythonを選ぶのかを整理する。
・自分のWindows環境にPythonが入っているかを確認し、必要ならインストールする。

コードはまだ書きません。手と頭の準備までです。

■ 今回出てくるツールと役割

第3章で関わるツールを整理します。

【言語】
①Python:シェルスクリプトの延長として読みやすく、MCPサーバーの公式SDKもある言語。
②TypeScript:JavaScriptに型を足した言語。Next.jsを使う後半の章で再登場する。
③JavaScript:Webブラウザで動く言語として広く使われている。TypeScriptの土台でもある。

【ランタイム・実行環境】
①Node.js
:JavaScriptとTypeScriptをPCで動かす定番のランタイム。

②python.exe:Pythonの本体。これがPCにあるかどうかが第3章の焦点。

③py(Python Launcher for Windows):Windowsに公式インストーラーで入れた場合に付いてくる、Pythonの起動補助コマンド。

【Windows側のツール】
①PowerShell

Windowsの標準シェル。今回はここから python --version を叩く。
②Microsoft Store Pythonスタブ:Pythonが未インストールの状態で python と叩いたとき、Microsoft Storeへ誘導するためにWindowsが標準で用意している、Pythonに似せた中身の薄いコマンド。

【パッケージ管理】
①pip
:Pythonの標準的なパッケージ管理ツール。Pythonを公式インストーラーで入れると一緒に入る。

第3章では、これらの中で実際に確認するのは「python.exe」「py」「Microsoft Store Pythonスタブ」の3つです。残りは名前を覚えておけば十分です。

■ 比較:今回の選択肢

MCPサーバーを書く言語として、Python・TypeScript・JavaScriptを比較します。

①【Python】
MCPサーバーを書く言語として有力な候補のひとつ。ネット上にある情報はほぼ全部と言っていいほどPythonで利用おり、10年以上前からAIと親和性が高い言語として知られている。また、標準ライブラリが厚く、MCPの公式SDKが整備されているため今回採用することとする。

②【TypeScript】
型が付いたJavaScriptで、Next.jsアプリの本体記述に使う。エディタの補完が強く、フロントエンドからバックエンドまで一貫して使える。ただ、最初の学習コストが高く、コンパイル設定(tsconfig)に初見では戸惑う。MCPサーバー本体では採用しないが、後半のNext.jsを扱う章で本格的に使う。

③【JavaScript】
Webブラウザで動く伝統的な言語。Node.jsを介してサーバー側でも動く。環境構築が軽く、Webの世界で必要な場面が多い。型が無いため、大きくなると追跡しづらい。最近はTypeScriptに置き換わる流れであり、採用する理由は少ない。今はPython。今後、新規に書くならTypeScriptを選ぶ場面が多そう。

■ なぜ今回はそのツールを選ぶのか

今回は①のPythonを選びます。 理由は3つあります。

1つ目は、ネット上にある情報はほぼ全部と言っていいほどPythonで利用しているからです。何かに躓いたとき、標準のツールを使っている方が解決が早い。業務でも誰も使わないツールを選択すると、連携するツールが少なかったり後任者が辛い思いをする。

2つ目は、MCPの公式SDKが整備されているからです。MCPサーバーを書くためのPython用ライブラリが公開されていて、手数少なく動かせます。学習段階ではここが大きな差になります。

3つ目は、最終成果物との分業が綺麗だからです。第1章で示した構成図では、MCPサーバー側をPython、画面側をNext.js(TypeScript)にする予定でした。Pythonでサーバーロジック、TypeScriptで画面、という役割分担にすると、後の章でTypeScriptに入る時の動機も明確になります。

TypeScriptも候補に挙がります。MCPサーバーはTypeScriptでも書けます。ただし最初にTypeScriptから入ると、言語仕様、Node.jsのバージョン、tsconfig、ESM対CommonJS、と前提知識の塊にぶつかります。インフラエンジニア目線では、ここを最初の関門にすると消耗が大きい。Pythonで仕組みを掴んでから、後半でTypeScriptに進む流れの方が、自分の学習曲線に合っていると判断しました。

第3章は「Pythonを選んだので、Pythonをインストールする」ところまでが目標です。

■ 実際に作るもの

第3章で実際にやることは、以下です。

①自分のPCにPythonが入っているかを確認する。
②入っていなければ、公式インストーラーで入れる。
③最後に、もう一度バージョンが正しく表示されることを確認する。

コードはまだ書きません。「Pythonコマンドを叩いたら、ちゃんとバージョンが返ってくる」状態を作るのが、この章のゴールです。

■ コードまたは設定例

実際の手順です。 私はPowerShellで進めましたが、コマンドプロンプトでも同じ確認はできます。

【手順1:Pythonが入っているか確認】
PowerShellを開いて、次のコマンドを実行します。
私が首をかしげたのがここ。以下を実行して返ってきたのが「python」の文字だけ。入っているのかはいっていないのか…答えは入っていません。下の手順2:のサイトから新規インストールしましょう。入ってないなら、入っていないとか「Not Found」など出してほしいものだと思った。

 python --version

【手順2:バージョンが返らなければインストールする】
Pythonが未インストールの場合、公式インストーラーでインストールしてください。 公式サイトの場所は次のとおりです。

 https://www.python.org/downloads/windows/

ここから「Windows installer (64-bit)」をダウンロードして実行します。 インストール画面で重要な点はひとつだけ。「Add python.exe to PATH」のチェックボックスを必ずONにしてからインストールします。これをONにしないと、PowerShellやコマンドプロンプトから python で起動できず、毎回フルパスを指定する羽目になります。

【手順3:pip も入っていることを確認】
pip も入っていることを確認します。

 pip --version

pip 24.x.x from ... のような出力が返ってくれば、パッケージ管理ツールも揃っています。 ここまで来れば、Pythonでコードを書き始める準備は整いました。

■ 次章でやること

第4章では、ここまで整えてきた環境を使って、MCPサーバーを実際に「接続して動かしてみる」という最初の一歩に進みます。

ただし、いきなり自作はしません。 第4章では、公開されている既存のMCPサーバーをひとつだけClaude Desktopに繋いで、MCPがどう動くのかを目で見ます。

具体的には、ファイルシステム操作の公式MCPサーバーを使い、Claude Desktopから「指定したフォルダのファイル一覧を取って」「中身を読んで」を頼んでみる、という流れです。設定ファイル claude_desktop_config.json の mcpServers キーに、初めて値を書き込む章になります。

第4章に進む前に、もう一度確認しておきたいのは次の2点です。

①python --version を叩いて、Python 3.x.x のようなバージョンが返る状態になっていること。
②第2章で確認した claude_desktop_config.json の場所が、今もすぐ開ける状態になっていること。

■次回

第4章【開発記】:Node.jsを入れて、最初のMCPサーバー(filesystem)をClaude Desktopにつないでみた


いいなと思ったら応援しよう!