mpc-csharp-semantickernel について
mpc-csharp-semantickernel は、Microsoft Semantic Kernel、OpenAI、公式 C# MCP SDK の利用例を示す、メンテナンス終了のサンプルです。コードで宛先を設定したメールツールを呼び出せる Web チャットエンドポイントを備えています。
主な機能
- 01Semantic Kernel と OpenAI の連携例
- 02公式 C# MCP SDK の利用
- 03宛先を設定するメールツール
- 04リクエスト送信用の Web チャットエンドポイント
活用シーン
- 01C# の Semantic Kernel と MCP の例を確認
- 02メールツールを呼び出すチャットリクエストをテスト
MCP 対応
公式 C# SDK で構築した MCP サーバーを含みます。Web アプリは Semantic Kernel と OpenAI を使い、メールツールを呼び出せるチャットリクエストを処理します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
$${\color{red}この \space リポジトリ \space は \space メンテナンス \space されません。 \space 簡単な \space サンプル \space として \space 作成 \space した \space ものです。}$$
mpc-csharp-semantickernel
Microsoft Semantic Kernel と OpenAI、および https://github.com/modelcontextprotocol/csharp-sdk にある Model Context Protocol の公式 C# SDK を使用する例です。
前提条件
SMTP メールサーバー(EmailTools 用) OpenAI の API キー
サンプルの実行方法
- OpenAI Developer Dashboard を使用して API キーを取得します。
- 各プロジェクトの appsettings を設定します。
- 送信可能なメールアドレスは、Tools/EmailTool.cs 内のディクショナリにハードコードされています。ディクショナリを更新して、メールアドレスのリストを登録してください。必要であれば、この設定を追加してもかまいません。
- プロジェクトを実行します。デフォルトの launchSettings は http://localhost:5109 に設定されています。
Appsettings
WebAppMCPPoc プロジェクト
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"OpenAI": {
"ApiKey": "<yourApiKey>",
"ChatModelId" : "gpt-4o-mini"
}
}
MCPServer プロジェクト
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"EmailSettings": {
"SMTPServer": {
"MailPort": "465",
"MailServer": "<yourserver.com>",
"Sender": "<[email protected]>",
"SenderName": "<AIEmailSender>",
"Password": "<EmailPassword>",
"Username": "<EmailUsername>"
}
}
}
リクエストの送信:
リクエストの送信には、Postman などのツールを使用できます。
リクエストの例:
POST https://localhost:7113/chat
本文:{ "text": "send and email toaFriend and tell him that you are an ai in 250 words. Tell him you're using C# to do this.."}
{someone} は、EmailTool のメールアドレスディクショナリに追加した名前に置き換えてください。
private static readonly Dictionary<string, string> emails = new Dictionary<string, string>
{
{ "example", "[email protected]" },
{ "aFriend", "[email protected]" }
};
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。