こんにちは!スタビジ編集部です!
最近、「大規模言語モデル(LLM)」を業務に取り入れる動きがどんどん広がっています。
ただ、その中で「どうやって社内のデータやAPIをつなぐか」という課題が出てきています。
そこで注目されているのが「Model Context Protocol(MCP)」という仕組みです。
これを使うことで、LLMが外部データや社内システムに安全にアクセスできるようになります。
本記事では、初心者でも理解できるようにMCPの基礎から説明しつつ、Pythonでの実装手順とClaudeとの接続方法を具体例を交えて解説していきます。
・MCPの概要
・MCPサーバーの立ち上げ方
・Claudeとの接続方法
MCPについてガッツリ学びたい方は以下のUdemy講座で解説していますのでチェックしてみてください!
【初心者向け】MCPサーバーをClaudeから動かしてみよう!またPythonで独自のMCPサーバーを構築していこう!

【時間】 | 4時間 |
---|---|
【レベル】 | 初級 |
MCPサーバーを立ち上げてLLMから使ってみたいならこのコース!
今なら購入時に「M7UFLCB5」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください!
MCPとは
「Model Context Protocol(MCP)」とは、LLM(大規模言語モデル)が外部ツールやデータにアクセスするための標準的な仕組み(プロトコル)です。
“プロトコル”とはコンピューター同士がやり取りするときの決まりごと(通信ルール)のことです。
例えば、人間が会話するときに言語や文法が決まっているように、AIツールが外部のサーバーが通信するとき「どんな形式でメッセージをおくるか」、「どんな順番でやり取りするか」というルールがMCPになります。
2024年にAnthropic社が発表し、“AI用のUSB-C”と例えられる標準的な規格で、これによりどんなAIツールにアクセスできるようになりました。
MCPの仕組み
MCPの仕組みについて、見ていきましょう。
MCPはクライアント(AIアプリ)とサーバー(データソース)間で双方向接続を実現するプロトコルです。
MCPでは「JSON-RPC 2.0」をベースとした通信により、安全かつ柔軟なデータのやり取りができます。
MCPの仕組みを簡単ですがイラストにすると下記になります。

たしかに上図をみると、そんな疑問が浮かんできますよね。
そこで従来の接続方法とMCPを比較してみましょう。
比較項目 | 従来のプラグイン / API連携 | MCP(Model Context Protocol) |
---|---|---|
セキュリティ | AIが直接APIキーを持つケースが多い | すべてのアクセスはユーザー承認制 |
拡張性 | サービスごとに専用実装が必要 | 共通プロトコルで再利用・統一可能 |
管理 | 開発者側が動作を制御 | ユーザー自身が使うツールを制御 |
実装難易度 | 個別API仕様の理解が必要 | MCP SDKで標準化された仕組みを利用 |
MCPではMCPサーバーを経由するため、アクセス制御がしやすくセキュリティ面が向上します。
また共通のプロトコルを使用するため、各サービスごとの実装が不要になり、拡張性や管理面でもメリットがあります。
PythonでMCPサーバーを作ってみる
実際にPythonでMCPサーバーを作ってみます。
下記の流れで見ていきます。
- uvのインストール
- MCPサーバー立ち上げ
MCPサーバーの構築には以下の条件があります、自身の環境が満たしているかあらかじめ確認しましょう。
- Python 3.10 以上がインストールされている
- Python MCP SDK 1.2.0 以上を使用する
公式サイトにも記載があるので参考にしてみて下さい。
uvのインストール
まずは事前準備として、「uv」というPythonのパッケージ管理・実行ツールをインストールします。
MCPのPython SDKではuvを使う前提で設計されており、uvを使うことで依存パッケージ(mcp[cli])の導入・ロック管理・実行までを一貫して行えます。
# uv をインストール(macOS/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh
# uv をインストール(windows)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
上記コマンドでuvをインストールします。
# プロジェクト作成
uv init mcp-demo
cd mcp-demo
# MCPのPython SDK(CLI入り)を追加
uv add "mcp[cli]"
“uv init“コマンドでMCPサーバー用プロジェクト(フォルダ)が新規作成されます。

これにより主に下記が自動で準備されます。
- .venv:プロジェクト専用のPython環境
- pyproject.toml:プロジェクト設定ファイル
- uv.lock :依存関係のロックファイル
このようにコマンド一つでフォルダ、仮想環境、設定ファイルを全部まとめて用意してくれる点がuvを利用するメリットになります。
# MCPのPython SDK(CLI入り)を追加
uv add "mcp[cli]"
上記はPythonのMCPサーバー環境に「MCP SDK+CLI」を追加するためのコマンドで、以下が実行されます。
- .venv仮想環境にmcp関連のライブラリが追加される
- pyproject.tomlにmcp[cli]の依存関係が記録される
- uv.lockにバージョン固定情報が保存される
- mcp runやmcp infoなどのコマンドが利用可能になる
これにより、プロジェクト内でMCPサーバーを開発・実行できるようになります。
uvを使えば、速く・安全に・確実に同じ環境でサーバーを動かせるよ!
MCPサーバー立ち上げ
事前準備が整ったところで実際にMCPサーバーを立ち上げてみます。
プロジェクトフォルダの配下に”server.py”を作成します。
# server.py
import logging
from mcp.server.fastmcp import FastMCP
# stdout は JSON-RPC で使われるため print 禁止。ログは stderr へ。
logging.basicConfig(level=logging.INFO)
# MCPサーバーのインスタンスを作成
mcp = FastMCP("toukei-lab-minimal")
@mcp.tool()
def hello(name: str) -> str:
"""名前を受け取って挨拶を返します。"""
return f"こんにちは、{name}さん!"
if __name__ == "__main__":
# Claude などのホストと stdio (JSON-RPC) で通信
mcp.run(transport="stdio")
それぞれ見ていきましょう。
「from mcp.server.fastmcp import FastMCP」では、MCPの公式Python SDKに含まれる”FastMCP“クラスを読み込んでいます。
“FastMCP“クラスでは、ツール/リソース/プロンプトの登録、JSON-RPC(2.0)の入出力、入出力スキーマ生成といったMCPサーバーを構築する役割を担います。
「mcp = FastMCP(“toukei-lab-minimal”)」で、先ほどのFastMCPクラスのインスタンス(mcpサーバー本体)を作成します。
最後に「@mcp.tool()」で作成したインスタンスに対して、デコレータを使ってツール(関数)を登録していきます。
今回は”hello関数”をがMCPツールとして登録されています。
MCPツールとは、AIクライアントがMCPサーバーにアクセスするときの窓口で、以下のようなものがあります。
- @mcp.tool():関数の呼び出し、動的に何かを実行(API・ファイル処理・分析など)
- @mcp.resource():状態・ファイル内容・設定情報などを読み取る
- @mcp.prompt():LLMが再利用するためのプロンプトテンプレートを提供する
AIクライアントはこのツールを通じて外部のデータやツールにアクセスすることが出来ます。
uv run server.py
上記コマンドでMCPサーバーが起動します。
Claudeとつないでみる
作成したMCPサーバーとClaudeをつないで動作確認してみましょう。
ここでは”Claude Desktop”を使って自身の環境にClaudeアプリからMCPサーバーと接続します。
Claude Desktopがない場合は、公式サイトを参考にインストールしてください。
設定ファイルの作成
ClaudeからMCPサーバーに接続するため、設定ファイル「claude_desktop_config.json」を各Caludeアプリディレクトリ内に作成します。
- Windows:”%APPDATA%\Claude\”に作成
- macOS:”~/Library/Application Support/Claude/”に作成
# claude_desktop_config.json
{
"mcpServers": {
"toukei-lab-minimal": {
"command": "uv",
"args": [
"--directory",
"MCPプロジェクトのディレクトリ絶対パス",
"run",
"server.py"
]
}
}
}
jsonファイル内には上記のように”mcpServers”内に接続するサーバーを定義します。
サーバーではキー名(今回は”toukei-lab-minimal”)とサーバーの起動コマンドを記載します。
Claude Desktopアプリを再起動することで、上記設定が読み込まれMCPサーバーと接続できます。

正しく設定できると「設定」>「開発者」からMCPサーバーが追加されていることを確認できます。
動作確認
Claudeのチャットから実際にMCPサーバーのツールを実行してみます。
「helloツールを使って、name=”スタビジ” で実行して。」とチャットを投げてみます。

ClaudeがMCPツールを認識して、実行するか確認が入ります。

実行を許可するとMCPサーバーで定義した関数が実行されて、レスポンスが返ってきました。
一つ一つ外部サービスとの接続設定をしなくていいのが楽だね!
MCPサーバー まとめ
「Model Context Protocol(MCP)」からMCPサーバーの立ち上げ、Claudeとの接続について解説していきました。
ここで、従来の接続方法とMCPの違いをおさらいしましょう。
比較項目 | 従来のプラグイン / API連携 | MCP(Model Context Protocol) |
---|---|---|
セキュリティ | AIが直接APIキーを持つケースが多い | すべてのアクセスはユーザー承認制 |
拡張性 | サービスごとに専用実装が必要 | 共通プロトコルで再利用・統一可能 |
管理 | 開発者側が動作を制御 | ユーザー自身が使うツールを制御 |
実装難易度 | 個別API仕様の理解が必要 | MCP SDKで標準化された仕組みを利用 |
実際にMCPツールをいくつか用意して試してみよう!
今回はClaudeとの簡単な接続までを見ていきましたが、もっと深く勉強したい方はぜひ以下のUdemy講座を受講してみて下さい。
【初心者向け】MCPサーバーをClaudeから動かしてみよう!またPythonで独自のMCPサーバーを構築していこう!

【時間】 | 4時間 |
---|---|
【レベル】 | 初級 |
MCPサーバーを立ち上げてLLMから使ってみたいならこのコース!
今なら購入時に「M7UFLCB5」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください!