MCP Server Example について
ドキュメント検索を行う、学習用のシンプルな MCP サーバーの例です。動画チュートリアルと併せて提供されています。さまざまな LLM クライアントと連携できる基本的なサーバーの構築方法と、Claude Desktop での設定手順を示しています。
主な機能
- 01uv を用いた Python によるサーバー実装
- 02リソース、ツール、プロンプトの概要説明
- 03Claude Desktop の設定手順
- 04一般的な接続問題のトラブルシューティング
活用シーン
- 01MCP サーバーの構築方法の学習
- 02ローカルのドキュメント検索サーバーを Claude Desktop に接続
MCP 対応
MCP サーバーの実装方法を示す例であり、Claude Desktop などの MCP ホストアプリケーションに接続する手順を説明しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーの例
このリポジトリには、教育目的の Model Context Protocol(MCP)サーバーの実装が含まれています。このコードでは、さまざまな LLM クライアントと連携できる、実用的な MCP サーバーの構築方法を紹介します。
チュートリアルの全編は、YouTube の動画チュートリアルをご覧ください。
MCP とは?
MCP(Model Context Protocol)は、アプリケーションが LLM にコンテキストを提供する方法を標準化するオープンプロトコルです。MCP は、AI アプリケーション用の USB-C ポートのようなものです。AI モデルをさまざまなデータソースやツールに接続するための標準化された方法を提供します。

主なメリット
- LLM が直接接続できる、事前構築済みの連携機能が増え続けています
- LLM プロバイダーやベンダーを柔軟に切り替えられます
- インフラストラクチャ内でデータを保護するためのベストプラクティスを活用できます
アーキテクチャの概要
MCP はクライアント・サーバーアーキテクチャに従っており、ホストアプリケーションは複数のサーバーに接続できます。
- MCP ホスト:MCP を通じてデータにアクセスする Claude Desktop、IDE、AI ツールなどのプログラム
- MCP クライアント:サーバーとの 1 対 1 の接続を維持するプロトコルクライアント
- MCP サーバー:標準化された Model Context Protocol を通じて特定の機能を公開する軽量プログラム
- データソース:MCP サーバーがアクセスできる、ローカル(ファイル、データベース)およびリモートのサービス(API)
MCP の主要な概念
MCP サーバーは、主に 3 種類の機能を提供できます。
- リソース:クライアントが読み取れるファイルのようなデータ(API の応答やファイルの内容など)
- ツール:LLM が呼び出せる関数(ユーザーの承認が必要)
- プロンプト:ユーザーが特定のタスクを達成するのに役立つ、あらかじめ作成されたテンプレート
システム要件
- Python 3.10 以降
- MCP SDK 1.2.0 以降
uvパッケージマネージャー
はじめに
uv パッケージマネージャーのインストール
MacOS/Linux の場合:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv コマンドが認識されるように、作業後にターミナルを再起動してください。
プロジェクトのセットアップ
- プロジェクトを作成して初期化します。
# Create a new directory for our project
uv init mcp-server
cd mcp-server
# Create virtual environment and activate it
uv venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate
# Install dependencies
uv add "mcp[cli]" httpx
- サーバーの実装ファイルを作成します。
touch main.py
サーバーの実行
- MCP サーバーを起動します。
uv run main.py
- サーバーが起動し、接続を受け付けられる状態になります
Claude Desktop への接続
- 公式ウェブサイトから Claude Desktop をインストールします
- MCP サーバーを使用するように Claude Desktop を設定します。
~/Library/Application Support/Claude/claude_desktop_config.json を編集します。
{
"mcpServers": {
"mcp-server": {
"command": "uv", # It's better to use the absolute path to the uv command
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/YOUR/mcp-server",
"run",
"main.py"
]
}
}
}
- Claude Desktop を再起動します
トラブルシューティング
Claude Desktop がサーバーを認識しない場合:
- 設定ファイルのパスとアクセス権限を確認します
- 設定内の絶対パスが正しいことを確認します
- uv が正しくインストールされ、アクセス可能であることを確認します
- Claude Desktop のログにエラーメッセージがないか確認します
ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細については、LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。