Mcp Server について
MCP SDK を使って MCP サーバーを構築する TypeScript の練習用プロジェクトです。ツールとリソースの定義に加え、SSE 接続例を示します。
主な機能
- 01TypeScript 製
- 02MCP SDK によるサーバー作成
- 03ツールとリソースの定義
- 04SSE 接続例
活用シーン
- 01MCP サーバー構築の練習
- 02クライアント向けツールの提供
- 03URI パターンによるリソース提供
- 04SSE によるリアルタイムデータ転送
MCP 対応
MCP クライアントにツールとリソースを公開し、SSE トランスポートで接続する例を示します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP(Model Context Protocol)とは? **MCP(Model Context Protocol)**は、AI モデルとアプリケーション間のやり取りを標準化するプロトコルです。 簡単に言うと、LLM および AI モデルとクライアント(アプリ、サービス)との間でデータをやり取りする方法を定めたプロトコルです。
🛠️ MCP の主な概念 MCP は一般に、AI モデルとデータをやり取りするための通信構造を提供します。 OpenAI API、LangChain、Function Calling と同様の概念を含む場合があります。
1️⃣ MCP サーバー(McpServer) AI モデルとやり取りできるサーバーを作成する役割です。
特定の機能(ツール、API)を定義し、クライアントからリクエストがあった際に処理する構造です。
📌 例(McpServer の作成)
typescript 복사 편집 import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
const server = new McpServer({ name: "My MCP Server", version: "1.0.0", }); 2️⃣ MCP ツール(ツール) AI モデルが使用できる関数(Function Calling)のような概念です。
たとえば、2 つの数値を加算する add というツールを作成できます。
📌 例(add ツールの追加)
typescript 복사 편집 import { z } from "zod";
server.tool( "add", { a: z.number(), b: z.number(), }, async ({ a, b }) => { return { content: [{ type: "text", text: String(a + b) }], }; } ); tool(name, schema, function) の形式でツールを定義します。
クライアントが add を呼び出すと、a + b の結果を返します。
3️⃣ MCP リソース(リソース) 特定のデータを定義し、クライアントが取得できるようにする機能です。
URL パターンに基づいてデータを提供する方法です。
📌 例(greeting リソースの追加)
typescript 복사 편집 import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
server.resource(
"greeting",
new ResourceTemplate("greeting://{name}", { list: undefined }),
async (uri, { name }) => ({
contents: [
{
uri: uri.href,
text: Hello, ${name}!,
},
],
})
);
greeting://John のような URI を呼び出すと、「Hello, John!」が返されます。
4️⃣ SSE(Server-Sent Events)のサポート MCP はリアルタイムのデータ転送に SSE(Server-Sent Events)もサポートしています。
LLM のストリーミング応答を処理する際に便利です。
📌 例(SSE 接続)
typescript 복사 편집 import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
app.get("/sse", async (req, res) => { const transport = new SSEServerTransport("/messages", res); await server.connect(transport); }); クライアントが /sse エンドポイントに接続すると、リアルタイムでデータを受信できます。
📌 MCP はどのような用途に使えるでしょうか? LLM とアプリケーションを接続する API サーバー
AI 機能を提供するマイクロサービスの構築
AI モデルの Function Calling をサポートするフレームワーク
LangChain のような AI フレームワークを置き換える、または補完するソリューション
サーバーとクライアント間の AI ベースの対話型アプリケーションの開発
🚀 まとめ MCP(Model Context Protocol)は、AI モデルとアプリケーション間のやり取りを標準化するプロトコルです。 これにより、ツール、リソース、ストリーミング(SSE)などの機能を簡単に実装できます。
💡 簡単に言うと? 👉 MCP = AI モデル向けの API サーバーを簡単に作成するフレームワーク! 🚀
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。