test-my-mcpserver
LLM と MCP サーバーとの相互作用の標準化
モデルコンテキストプロトコル(MCP)は、アプリケーションがLLMにコンテキストを提供する方法を標準化するオープンプロトコルです。つまり、LLMベースのアプリケーションがデータソースに接続し、コンテキストを取得し、ツールを使用し、標準プロンプトを実行するための統一されたフレームワークを提供します。
MCP エコシステムは、次の 3 つの特定のコンポーネントを概説します。
MCP サーバーは、ツールの可用性 (利用可能な機能の公開)、ツールの実行 (要求されたときにそれらの機能を実行する)、リソースとしての静的コンテンツ (参照可能なデータの提供)、プリセット プロンプト (一般的なタスクの標準化されたテンプレート) を処理します。
クライアントは、サーバーへの接続、LLM統合、コンポーネント間のメッセージ受け渡しを管理します。
ホストは、フロントエンド インターフェース、MCP 機能のユーザーへの表示、エコシステム全体の統合ポイントを提供します。
このアーキテクチャは、相互運用性を維持しながら、異なるコンポーネントを独立して開発できるモジュール式システムを構築します。これにより、ユーザーはLLM関連の様々な機能に対応するMCPサーバーを作成し、サポートされている様々なアプリケーション間でプラグアンドプレイで利用できるようになります。一般的には、サービスAPIやツールの統合、または自身のマシン上のローカルデータソースへの接続に使用されます。
MCP サーバー コンポーネント
MCPサーバーは、明確に定義されたインターフェースを通じて標準化された機能を公開することで、プロトコルの基盤を形成します。ホストとクライアントはプロトコル標準を使用してこれらのサーバーに接続できますが、これらの機能をユーザーに提供する方法は開発者にとって柔軟かつオープンです。つまり、実際の実装とユーザーエクスペリエンスは、コマンドラインインターフェース、グラフィカルアプリケーション、あるいは大規模システムへの組み込みなど、開発者の裁量に完全に委ねられています。
このガイドでは、コア機能を備えたサンプルMCPサーバーの構築と、インタラクションパターンを示すためのシンプルなクライアント実装に焦点を当てます。まずは、MCPサーバーの主要コンポーネントを見ていきましょう。
ツール
ツールとは、LLMがアクションを実行したり情報を取得したりするために呼び出すことができる関数です。各ツールは以下のように定義されます。
{
name: string; // Unique identifier for the tool
description?: string; // Human-readable description
inputSchema: { // JSON Schema for the tool's parameters
type: "object",
properties: { ... } // Tool-specific parameters
}
}ツールは、LLMが外部システムとやり取りしたり、コードを実行したり、データベースにクエリを実行したり、計算を実行したりすることを可能にします。ツールは、効果をもたらしたり、新しい情報を計算したりするアクションを表します。
リソース
リソースとは、クライアントアプリケーションがアクセスできるデータソースを表します。リソースはURIで識別され、次のようなものが含まれます。
{
uri: string; // Unique identifier for the resource
name: string; // Human-readable name
description?: string; // Optional description
mimeType?: string; // Optional MIME type
}リソースは静的(設定ファイルなど)または動的(データベースレコードやAPIレスポンスなど)です。関数呼び出しを必要とせずに、LLMにコンテキストを提供します。
プロンプト
プロンプトは、特定のインタラクションパターンを定義する再利用可能なテンプレートです。これにより、サーバーは標準化された会話フローを公開できます。
{
name: string; // Unique identifier for the prompt
description?: string; // Human-readable description
arguments?: [ // Optional list of arguments
{
name: string; // Argument identifier
description?: string; // Argument description
required?: boolean; // Whether argument is required
}
]
}プロンプトは、一般的なタスクに対して一貫性のある専用のインタラクションを作成するのに役立ち、ユーザーはスラッシュ コマンドなどの UI 要素を通じてプロンプトを呼び出すことができます。
注: ツールはLLMインタラクション(関数呼び出しに類似)向けに特別に設計されていますが、プロンプトとリソースはMCPエコシステムにおいて異なる目的を果たします。プロンプトは通常、スラッシュコマンドなどのUI要素から直接呼び出すことができるユーザー制御のテンプレートであり、リソースはアプリケーション制御のデータソースであり、LLMコンテキストに組み込まれる前にユーザーに提示され、選択される場合があります。
詳細と追加機能については、MCP公式ドキュメントをご覧ください。
例の設定
MCPサーバーでは、ツール、リソース、プロンプトを重点的に紹介します。コアコンセプトは、以下の機能を備えたシンプルなナレッジベースチャットボットフローを作成することです。
LLMがツールを使用してベクトルデータベースにRAG応答を照会できるようにします
ユーザーが既存のリソースを選択してコンテキストを提供できるように
より複雑な分析ワークフローのために、ユーザーが標準プロンプトを実行できるようにする
上の図は、 mcp_server.pyに実装されているものと、 client.py内の対応するシンプルな CLI クライアントです。
便利なリソースとして、公式統合およびコミュニティ作成サーバーについては、 MCP のサーバー リストを確認してください。
セットアップとインストール
リポジトリをクローンする
git clone https://github.com/ALucek/quick-mcp-example.git
cd quick-mcp-exampleChromaDBデータベースを作成する
MCP_setup.ipynbの指示に従ってベクター データベースを作成し、そこに PDF を埋め込みます。
仮想環境を作成し、パッケージをインストールする
# Using uv (recommended)
uv venv
source .venv/bin/activate # On macOS/Linux
# OR
.venv\Scripts\activate # On Windows
# Install dependencies
uv syncクライアントとサーバーを実行する
python client.py mcp_server.pyThis server cannot be deployed
Maintenance
Related MCP Connectors
Create online knowledge tests and quizzes, share a link, see results. Search ready-made tests.
Test the voice agents you run: scored transcripts, pass/fail verdicts, latency and WER metrics.
Test a web app in a real browser from plain English. Passed, failed or cannot verify, with evidence.
Take a typing speed test without leaving the chat.
Related MCP Servers
- -
- -
- -
- ISC