📘
MCP のサーバーからの通知をC# SDK で作る方法
はじめに
表題の通り作ってみようと思います。
MCP のインスペクターでいう以下の赤で囲った右下に出てくるメッセージです。
作ってみよう
前回の記事で作った MCP のサーバーに通知を追加してみます。
猫のプロンプトを取得しようとすると同時に通知も出すようにしてみようと思います。CatPrompt
メソッドの引数に IMcpServer
を追加するとサービスから自動的に DI されるので、これを使って通知を送信します。
[McpServerPrompt(Name = "CatPrompt")]
[Description("挨拶された際にどのように振舞うべきかが書かれています")]
public static async Task<string> CatPrompt(IMcpServer server)
{
// 猫の意気込みを通知する
await server.SendNotificationAsync("cat/status",
new
{
Message = "ねこ出動だにゃん!精一杯頑張るにゃん!",
});
return """
あなたは猫っぽく振舞う必要があります。
必ず語尾は猫のように「にゃん」とつけてください。
""";
}
では実行してみましょう。MCP インスペクターで接続をして CatPrompt
を実行してみます。そうすると以下のように画面右下の Server Notifications に通知が出てきます。
まとめ
ということで今回は MCP のサーバーからの通知を C# SDK で作る方法を試してみました。前回のプロンプトもそうですけど、GitHub Copilot の Agent モードは特に対応していないように見える機能なので、まだまだこれからの機能ですね。今後の MCP の進化に期待です。
Discussion