Token导航 LogoToken导航TokenDH.com
Azure AI MCP logo
运维云端未说明官方级别未说明来源级核验

Azure AI MCP

MCP Server

MCP服务器是一个标准化协议,用于连接AI模型与不同数据源、提示和工具,提供资源、工具和提示以增强与大型或小型语言模型的通信。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
C#云端部署Docker

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

RobertEichenseer

提供方

RobertEichenseer

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP服务器

概述

主控程序 是一种开放协议,规范了应用程序如何向LLM提供上下文,通常被称为“AI应用程序的USB-C端口”。MCP提供了一种标准化的方法,将AI模型连接到不同的数据源、提示和工具。

MCP(模型上下文协议)服务器为应用程序提供资源、工具和提示,使其能够增强与大型语言模型(LLM)或小型语言模型(SLM)的通信。应用程序启动MCP服务器(通常在其自己的安全上下文中),并通过标准I/O(stdio)与其通信

Overview

应用程序不限于单个MCP服务器;它可以同时启动多个MCP服务器并与之交互,每个服务器都提供不同的资源、工具和提示。虽然每个MCP客户端(由应用程序启动)与其相应的MCP服务器之间存在一一对应的关系,但应用程序可以管理多个这样的对。在给定的示例中,启动了三个MCP服务器,每个服务器都贡献了自己的上下文资产来增强模型交互。

*工具*:通常用于为应用程序提供功能(例如检索私人信息、执行特定任务等)。应用程序可以向LLM/SLM实例(具有函数调用功能)提供可用MCP服务器工具的列表,其中大多数SDK会自动将必要的函数或工具调用打包到MCP服务器。

*资源*:应用程序可以从MCP服务器请求的数据,例如地面LLM/SLM呼叫。该应用程序还可以订阅MCP资源以获得持续更新(如果有新信息可用)。MCP服务器执行必要的更新逻辑。

*鼓励*:MCP服务器可以为应用程序提供提示模板,以发送给LLM/SLM。

回购内容

该仓库包含一个简化的c#MCP服务器和一个c#控制台应用程序,该应用程序使用工具、资源和脚本来设置一个部署了gpt-4模型实例的Azure OpenAI实例:

文件夹应用程序
./zh/SportApp一个简化的c#控制台应用程序,使用来自的工具、提示和资源 SportKnowHow_McpServer
./src/SportKnowHow_McPServer一个简化的c#Mcp服务器\
./setup/setup.azcli一个powershell Azure CLI脚本,用于使用部署的gpt-4实例设置必要的Azure OpenAI实例

演示应用程序

概述“SportsApp”

Repo Content

  • SportApp使用netsrun和stdio启动提供的MCP服务器
      //MCP Server: start parameter
      string command = "dotnet";
      string[] arguments = new string[] {
          "run",
          "--project",
          "./src/SportKnowHow_MCPServer/SportKnowHow_MCPServer.csproj"};

      //MCP Server: communication protocol
      StdioClientTransportOptions stdioClientTransportOptions = new StdioClientTransportOptions()
      {
          Name = "Sport Know How (MCP Server)",
          Command = command,
          Arguments = arguments,
      };
      StdioClientTransport stdioClientTransport = new StdioClientTransport(stdioClientTransportOptions);

      //Start MCP Server
      await using IMcpClient mcpClient = await McpClientFactory.CreateAsync(stdioClientTransport);
  • 列出了MCP服务器提供的所有可用工具
  • id为的工具 RetrieveWinner 带参数 eventName' and eventDate已执行
      //List available tools
      IList mcpClientTools = await mcpClient.ListToolsAsync();
   
      //Manual tool call
      string toolName = "RetrieveWinner";
      Dictionary callParameter = new Dictionary
      {
          { "eventName", "Super Sports Champtionship" },
          { "eventDate", "2025-01-01"}
      };
      CallToolResponse callToolResponse = await mcpClient.CallToolAsync(toolName, callParameter);
  • MCP服务器工具通过以下方式提供给LLM/SLM完成调用 Microsoft.Extensions.AI。不需要拦截LLM/SLM功能工具请求,因为 chatClient.RetResponse() 负责根据LLM的请求调用MCP服务器工具,并将结果提供回LLM。
      //Use tools in chat completions
      ...
      string systemMessage = "You help with information around international sport events.";
      string userMessage = "Who won the Super Sports Championship 2025?";
      var chatMessages = new List
      {
          new ChatMessage (Microsoft.Extensions.AI.ChatRole.System, systemMessage),
          new ChatMessage (Microsoft.Extensions.AI.ChatRole.User, userMessage)
      };
      ChatResponse chatResponse = await chatClient.GetResponseAsync(
          chatMessages,
          new ChatOptions
          {
              Tools = mcpClientTools.ToArray()
          }
      );
      ...
  • 在MCP服务器中,列出了定义的提示和特定的提示(CreateMatchSummaryPrompt)请求参数。
      // List available prompts
      IList mcpClientPrompts = await mcpClient.ListPromptsAsync();
      
      // Retrieve specific prompt
      string promptName = "CreateMatchSummaryPrompt";
      Console.WriteLine($"Retrieve prompt: {promptName}");
      Dictionary promptParameter = new Dictionary
      {
          { "eventName", "Munich Flying Dolphins vs. Berlin Bears" },
          { "winner", "Munich Flying Dolphins" },
          { "score", "24:31" },
          { "enthusiasm", "high" }
      };
      GetPromptResult getPromptResult = await mcpClient.GetPromptAsync(promptName, promptParameter);
  • 在MCP服务器中,列出并请求了定义的资源模板和资源。
      //List available resource templates
      string resourceTemplateUri = "";
      IList mcpClientResourceTemmplates = await mcpClient.ListResourceTemplatesAsync();
      
      //Retrieve a specific resource template
      resourceTemplateUri = resourceTemplateUri.Replace("{id}", "NurembergFlyingTigers"); 
      ReadResourceResult readResourceTemplateResult = await mcpClient.ReadResourceAsync(resourceTemplateUri);
      
      //List available resources
      string resourceUri = "";
      IList mcpClientResources = await mcpClient.ListResourcesAsync();
      
      // Retrieve a specific resource
      ReadResourceResult readResourceResult = await mcpClient.ReadResourceAsync(resourceUri);
  • 创建了MCP服务器的订阅。MCP服务器可以在底层资源发生更改时发送更新。
      // Subscribe to resources
      mcpClient.RegisterNotificationHandler("notifications/resource/updated", NotificationHandler);
      await mcpClient.SubscribeToResourceAsync("sportIntelligence://team/MunichFlyingDolphins");

概述“SportKnowHow_McpServer

  • 使用工具、提示和资源支持创建MCP服务器。
  //create MCP server
  HostApplicationBuilder hostApplicationBuilder = Host.CreateApplicationBuilder(args);
  hostApplicationBuilder.Logging.AddConsole(consoleLogOptions =>
  {
      consoleLogOptions.LogToStandardErrorThreshold = LogLevel.Trace;
  });

  hostApplicationBuilder.Services
      .AddMcpServer()
      .WithStdioServerTransport()
      .WithTools()
      .WithPrompts()
      .WithResources()
      .WithSubscribeToResourcesHandler(SubscribeToResourcesHandler)
      .WithUnsubscribeFromResourcesHandler(UnsubscribeFromResourcesHandler)
      .WithReadResourceHandler(ReadResourceHandler);

  hostApplicationBuilder.Services.AddSingleton(resourceSubscriptions);
  hostApplicationBuilder.Services.AddHostedService();

总结

MCP服务器通常在调用应用程序的安全上下文中执行,这使得为调用应用程序提供工具、资源和提示变得容易。如示例所示 SportApp 应用程序 ModelContextProtocol nuget包 简化了Mcp Server和Mcp Host应用程序的开发。

目录标签

目录标签

C#云端部署DockerAI协议本地部署模型通信数据标准化工具集成提示管理

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP