在本快速入門中,您會使用適用於 MCP 的 C# SDK 來建置最小模型內容通訊協定 (MCP) 用戶端。 您也會瞭解如何設定用戶端以連線到 MCP 伺服器,例如在 建置最小 MCP 伺服器 快速入門中建立的伺服器。
先決條件
備註
您在前幾節中建置的 MCP 用戶端會從 建置最小 MCP 伺服器 快速入門連線到範例 MCP 伺服器。 如果您提供自己的連線設定,您也可以使用自己的 MCP 伺服器。
建立 .NET 主機應用程式
完成下列步驟以建立 .NET 控制台應用程式。 應用程式會作為連接到 MCP 伺服器的 MCP 用戶端主機。
建立專案
在終端機視窗中,流覽至您要建立應用程式的目錄,並使用
dotnet new命令建立新的控制台應用程式:dotnet new console -n MCPHostApp瀏覽至新建立的項目資料夾:
cd MCPHostApp執行下列命令以新增必要的 NuGet 套件:
dotnet add package Azure.AI.OpenAI --prerelease dotnet add package Azure.Identity dotnet add package Microsoft.Extensions.AI dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package ModelContextProtocol --prerelease在您選擇的編輯器中開啟項目資料夾,例如 Visual Studio Code:
code .
新增應用程式程序代碼
以下列程式碼取代 Program.cs 的內容:
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Extensions.AI;
using ModelContextProtocol.Client;
// Create an IChatClient using Azure OpenAI.
IChatClient client =
new ChatClientBuilder(
new AzureOpenAIClient(new Uri("<your-azure-openai-endpoint>"),
new DefaultAzureCredential())
.GetChatClient("gpt-4o").AsIChatClient())
.UseFunctionInvocation()
.Build();
// Create the MCP client
// Configure it to start and connect to your MCP server.
IMcpClient mcpClient = await McpClientFactory.CreateAsync(
new StdioClientTransport(new()
{
Command = "dotnet run",
Arguments = ["--project", "<path-to-your-mcp-server-project>"],
Name = "Minimal MCP Server",
}));
// List all available tools from the MCP server.
Console.WriteLine("Available tools:");
IList<McpClientTool> tools = await mcpClient.ListToolsAsync();
foreach (McpClientTool tool in tools)
{
Console.WriteLine($"{tool}");
}
Console.WriteLine();
// Conversational loop that can utilize the tools via prompts.
List<ChatMessage> messages = [];
while (true)
{
Console.Write("Prompt: ");
messages.Add(new(ChatRole.User, Console.ReadLine()));
List<ChatResponseUpdate> updates = [];
await foreach (ChatResponseUpdate update in client
.GetStreamingResponseAsync(messages, new() { Tools = [.. tools] }))
{
Console.Write(update);
updates.Add(update);
}
Console.WriteLine();
messages.AddMessages(updates);
}
上述程式代碼會完成下列工作:
- 初始化
IChatClient抽象,使用Microsoft.Extensions.AI庫。 - 建立 MCP 用戶端,並將其設定為連線到 MCP 伺服器。
- 從 MCP 伺服器擷取並顯示可用的工具清單,這是標準 MCP 函式。
- 實作對話迴圈,以處理使用者提示,並利用工具來回應。
執行及測試應用程式
完成下列步驟以測試 .NET 主機應用程式:
在開啟至您專案的根目錄中的終端機視窗中,執行下列命令以啟動應用程式:
dotnet run應用程式執行之後,請輸入執行 ReverseEcho 工具的提示:
Reverse the following: "Hello, minimal MCP server!"確認伺服器回應回聲訊息:
!revres PCM laminim ,olleH