一、引言
在当今数字化时代,.NET 开发领域不断演进,而 C# 官方 MCP(Model Context Protocol,模型上下文协议)的出现,无疑为开发者们带来了全新的机遇与挑战。随着人工智能技术的迅猛发展,将 AI 集成到应用程序中已成为众多开发者的追求目标。C# 官方 MCP 作为连接 AI 模型与各种数据源和工具的桥梁,其重要性不言而喻。
想象一下,你在开发一款智能办公应用,需要让 AI 助手能够查询企业内部的数据库、调用文件系统中的文档,还要与第三方的协作工具进行交互。在没有 C# 官方 MCP 之前,你可能需要针对每个数据源和工具编写大量不同的接口代码,不仅工作量巨大,而且容易出现兼容性问题。但有了 C# 官方 MCP,这一切变得简单高效。它就像是一个万能的 “适配器”,为大型语言模型(LLMs)提供标准化的上下文信息传递方式,实现了 LLMs 与各种数据源和工具之间的安全集成,极大地提升了开发效率,让开发者能够更专注于业务逻辑的实现 。
接下来,让我们深入探索 C# 官方 MCP 的奥秘,了解它如何在.NET 开发中发挥关键作用,以及如何利用它实现与 AI 模型的高效交互。
二、MCP 基础扫盲
2.1 MCP 是什么
MCP 即 Model Context Protocol(模型上下文协议) ,是 Anthropic 推出的一个开放协议,旨在统一 LLM 应用与外部数据源和工具之间的通信协议,为 AI 开发提供了标准化的上下文交互方式。简单来说,它就像是 AI 世界的 “USB - C 扩展坞”。在日常生活中,USB - C 接口可以连接多种设备,实现数据传输和充电等功能,而 MCP 的作用与之类似,它能够让 AI 模型(如 Anthropic 的 Claude)轻松地与外部的数据源和工具连接起来,像数据库、文件系统、API 等。有了 MCP,AI 模型通过这个标准协议就能直接获取数据或执行操作,无需每次都重新开发连接方式,大大简化了开发流程。
2.2 MCP 工作机制剖析
MCP 采用客户端 - 服务器(C/S)架构模式,客户端和服务端之间采用 JSON - RPC(一种基于 JSON 的轻量级远程过程调用协议)消息格式进行通信。当 AI 模型(作为客户端)需要获取数据或执行操作时,它会向 MCP 服务器发送 JSON - RPC 请求消息。请求消息中包含了要调用的方法名(对应服务器上的某个工具或操作)以及相关参数。例如,当你在基于 AI 的聊天应用中询问关于数据库中特定数据的问题时,聊天应用(客户端)会将这个问题转化为 MCP 请求消息,发送给连接的 MCP 服务器。
MCP 服务器接收到请求后,会解析消息,找到对应的方法并执行相应操作,比如查询数据库。完成操作后,服务器会将结果封装成 JSON - RPC 响应消息返回给客户端。客户端接收到响应后,再将结果传递给 AI 模型,AI 模型就能根据这些数据生成回答。此外,AI 模型还可以通过这些消息理解指令,例如通过一些提示词模板,LLM 可以知道如何使用数据和工具 。这种通信方式使得 AI 模型能够与各种数据源和工具进行交互,实现更强大的功能。
2.3 MCP 主要特点展示
-
标准化的工具调用接口:MCP 为 AI 模型调用外部工具提供了统一的标准接口。以往,不同的 AI 模型对接不同的工具需要编写不同的代码,而现在有了 MCP,开发者只需按照 MCP 标准,就能让 AI 模型轻松调用各种工具,极大地提高了开发效率和工具的可重用性。比如,无论你是使用 Claude 还是其他支持 MCP 的 AI 模型,连接数据库工具的方式都是一致的。
-
安全的双向通信:在数据传输过程中,安全性至关重要。MCP 支持在 AI 应用和数据源之间建立双向的、安全的通信通道,确保数据的隐私性和交互的完整性。它采用了一系列安全机制,如身份验证、数据加密等,保护 API 密钥不被泄露,防止数据在传输过程中被窃取或篡改,让用户可以放心地使用 AI 与外部数据源进行交互。
-
支持多种传输方式:为了适应不同的应用场景和环境,MCP 支持多种传输方式,包括标准输入输出(stdio) 、Server - Sent Events(SSE)、WebSocket 等。stdio 适用于本地集成与命令行工具,通过标准输入输出流实现客户端与服务器之间的通信;SSE 通过 HTTP POST 请求实现客户端到服务器通信,同时支持服务器到客户端流式传输,适用于仅需要服务器到客户端的流式通信、运行在受限网络环境等场景;WebSocket 则提供了全双工通信通道,适用于需要实时双向通信的场景。开发者可以根据具体需求选择合适的传输方式。
三、C# 官方 MCP SDK 深度解读
3.1 SDK 核心功能一览
C# 官方 MCP SDK 为.NET 开发者提供了一系列强大的功能,使其能够轻松实现与 MCP 客户端和服务器的交互 。通过这个 SDK,开发者可以在.NET 应用程序中快速连接到 MCP 服务器,就像使用普通的网络连接一样简单。例如,使用McpClientFactory.CreateAsync方法,能够快速实例化并连接到服务器,获取一个IMcpClient对象,通过这个对象,开发者可以与服务器进行交互 。
一旦连接到服务器,开发者可以使用 SDK 列出服务器上所有可用的工具。这就好比在一个工具库中查看所有的工具清单,了解有哪些工具可供使用。以一个智能数据分析应用为例,通过 SDK 列出的工具可能包括数据查询工具、数据清洗工具、统计分析工具等。而且,开发者还能调用这些工具,实现各种复杂的操作。比如调用数据查询工具,从数据库中获取特定的数据;调用统计分析工具,对获取的数据进行分析,生成统计报表等。
此外,C# 官方 MCP SDK 还支持多种传输类型和选项,这为开发者在不同的应用场景中提供了极大的灵活性。无论是需要低延迟的实时交互场景,还是对稳定性要求较高的大数据传输场景,都能找到合适的传输方式 。
3.2 与其他相关技术的对比
在.NET 生态系统中,除了 C# 官方 MCP SDK,还有一些其他与 MCP 相关的技术,如 MCPSharp、mcpdotnet 等。MCPSharp 是一个.NET 库,旨在帮助开发者构建 Model Context Protocol(MCP)服务器和客户端。它提供了创建 MCP 合规的工具和函数、连接现有 MCP 服务器、将.NET 方法暴露为 MCP 端点等功能 。mcpdotnet 则是一个.NET 实现的模型上下文协议(MCP),使.NET 应用程序能够与 MCP 客户端和服务器进行交互。
与这些技术相比,C# 官方 MCP SDK 具有明显的优势。在标准化方面,作为官方推出的 SDK,它严格遵循 MCP 协议标准,确保了不同应用程序和服务之间交互的一致性和兼容性 。而其他一些非官方的实现可能在某些细节上与标准存在差异,导致在集成过程中出现问题。例如,在与不同的 AI 模型集成时,C# 官方 MCP SDK 能够更好地保证数据传输和工具调用的准确性,减少因协议不一致而产生的错误。
在兼容性上,C# 官方 MCP SDK 经过了大量的测试和优化,能够与各种主流的.NET 框架和工具完美兼容。无论是最新的.NET 版本,还是一些常用的开发工具,都能无缝集成,为开发者提供了便利 。而其他相关技术可能在兼容性上存在一定的局限性,需要开发者花费额外的精力去解决兼容性问题。
3.3 实际应用场景探讨
C# 官方 MCP SDK 在实际应用中有着广泛的场景。在智能客服领域,企业可以利用该 SDK 将客服系统与 AI 模型相结合,通过 MCP 连接到企业的知识库、客户信息数据库等数据源。当客户咨询问题时,AI 模型可以借助 MCP SDK 调用这些数据源中的信息,快速准确地回答客户问题,提高客服效率和服务质量 。比如客户询问关于产品的使用方法,AI 客服可以通过 MCP SDK 查询知识库中的产品使用手册,为客户提供详细的解答。
在数据分析场景中,C# 官方 MCP SDK 同样发挥着重要作用。数据分析师可以使用基于该 SDK 开发的工具,连接到各种数据源,如关系型数据库、数据仓库、日志文件等,获取原始数据。然后调用 MCP 服务器上的数据分析工具,对数据进行清洗、转换、统计分析等操作 。例如,在分析电商销售数据时,通过 SDK 获取不同时间段的销售记录,利用数据分析工具计算销售额、销售量、客单价等指标,为企业的决策提供数据支持。
内容生成领域也是 C# 官方 MCP SDK 的一个重要应用场景。开发者可以基于该 SDK 构建内容生成应用,将 AI 模型与各种文本数据源(如新闻文章、小说、论文等)连接起来。AI 模型根据用户的需求,通过 MCP SDK 调用数据源中的文本信息,生成高质量的文章、报告、故事等内容 。比如在创作一篇科技评论文章时,AI 可以借助 MCP SDK 从相关的科技资讯网站获取最新的技术动态,融入到生成的文章中,使文章更具时效性和专业性。
四、使用 C# 官方 MCP SDK 开发实战
4.1 开发环境搭建指南
在开始使用 C# 官方 MCP SDK 进行开发之前,我们需要搭建好相应的开发环境。首先,确保你的开发机器上安装了.NET 8.0 及以上版本的 SDK。你可以从微软官方网站(https://dotnet.microsoft.com/download)下载并安装最新的.NET SDK 。安装过程中,按照安装向导的提示进行操作,选择合适的安装路径和选项,确保安装成功。
接下来,你需要一个集成开发环境(IDE)来编写代码。推荐使用 Visual Studio 2022 及以上版本,它提供了丰富的功能和便捷的开发体验 。如果你的电脑上尚未安装 Visual Studio 2022,你可以从微软官网(https://visualstudio.microsoft.com/vs/)下载安装包,根据安装向导完成安装过程。安装完成后,打开 Visual Studio,创建一个新的项目或打开现有的项目。
然后,我们要安装 C# 官方 MCP SDK。在 Visual Studio 中,右键点击项目名称,选择 “管理 NuGet 程序包” 。在 NuGet 包管理器中,搜索 “ModelContextProtocol”,找到 C# 官方 MCP SDK,点击 “安装” 按钮,将其添加到项目中。安装完成后,你就可以在项目中使用 MCP SDK 提供的各种功能了 。
4.2 创建 MCP Server 步骤详解
-
创建.NET 8.0 控制台应用:打开 Visual Studio,点击 “创建新项目”。在项目模板中,选择 “控制台应用 (.NET)”,点击 “下一步” 。在 “配置新项目” 页面,输入项目名称(例如 “McpServerDemo”),选择项目存放的位置,然后点击 “创建” 。在弹出的 “框架选择” 窗口中,选择 “.NET 8.0 (Long - Term Support)”,点击 “创建”,这样就创建了一个.NET 8.0 的控制台应用项目。
-
安装 MCP SDK:右键点击刚刚创建的项目,选择 “管理 NuGet 程序包”。在 NuGet 包管理器中,搜索 “ModelContextProtocol”,找到 C# 官方 MCP SDK,点击 “安装” 按钮 。安装过程中,NuGet 会自动下载并添加 SDK 的相关依赖项到项目中。安装完成后,在项目的 “依赖项” 中可以看到 “ModelContextProtocol”,表示安装成功。
-
创建工具类并注册:在项目中创建一个新的文件夹,命名为 “Tools” 。在 “Tools” 文件夹下,添加一个新的 C# 类文件,例如 “TimeTool.cs” 。在 “TimeTool.cs” 文件中,编写如下代码:
using ModelContextProtocol.Server;
using System.ComponentModel;namespace McpServerDemo.Tools
{[McpServerToolType]public static class TimeTool{[McpServerTool, Description("Get the current time for a city")]public static string GetCurrentTime(string city) => $"It is {DateTime.Now.Hour}:{DateTime.Now.Minute} in {city}.";}
}
上述代码定义了一个名为 “TimeTool” 的工具类,其中包含一个 “GetCurrentTime” 方法,用于获取指定城市的当前时间 。通过[McpServerToolType]和[McpServerTool]特性,将这个方法注册为 MCP 服务器的工具。
\4. 修改 Program.cs 启动 MCP Server:打开项目中的 “Program.cs” 文件,修改代码如下:
using Microsoft.Extensions.Hosting;
using ModelContextProtocol;
using McpServerDemo.Tools;try
{Console.WriteLine("Starting MCP Server...");var builder = Host.CreateEmptyApplicationBuilder(settings: null);builder.Services.AddMcpServer().WithStdioServerTransport().WithToolsFromAssembly();await builder.Build().RunAsync();return 0;
}
catch (Exception ex)
{Console.WriteLine($"Host terminated unexpectedly : {ex.Message}");return 1;
}
这段代码通过Host.CreateEmptyApplicationBuilder创建一个应用程序生成器,然后使用builder.Services.AddMcpServer()添加 MCP 服务器服务,WithStdioServerTransport()配置服务器使用标准输入输出作为传输方式,WithToolsFromAssembly()自动注册当前程序集中的所有 MCP 工具 。最后,通过builder.Build().RunAsync()启动 MCP 服务器。运行该项目,MCP 服务器就会启动,等待客户端的连接和工具调用请求。
4.3 创建 MCP Client 步骤详解
-
创建.NET 8.0 控制台应用:同样在 Visual Studio 中,点击 “创建新项目”,选择 “控制台应用 (.NET)”,点击 “下一步” 。输入项目名称(例如 “McpClientDemo”),选择项目存放位置,点击 “创建” 。在框架选择窗口中,选择 “.NET 8.0 (Long - Term Support)”,点击 “创建”,创建一个新的.NET 8.0 控制台应用项目。
-
安装 MCP SDK:右键点击 “McpClientDemo” 项目,选择 “管理 NuGet 程序包” 。在 NuGet 包管理器中搜索 “ModelContextProtocol”,安装 C# 官方 MCP SDK,安装完成后项目依赖项中会出现 “ModelContextProtocol”。
-
在 Program.cs 中创建 MCP Client:打开 “McpClientDemo” 项目的 “Program.cs” 文件,编写如下代码:
using ModelContextProtocol;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;class Program
{static async Task Main(){await using var mcpClient = await McpClientFactory.CreateAsync(new{Id = "time",Name = "Time MCP Server",TransportType = TransportTypes.StdIo,TransportOptions = new{["command"] = @"..\..\..\McpServerDemo\bin\Debug\net8.0\McpServerDemo.exe"}});// 列出可用的Toolsvar tools = await mcpClient.ListToolsAsync();foreach (var tool in tools){Console.WriteLine($"{tool.Name} ({tool.Description})");}// 直接执行Toolvar result = await mcpClient.CallToolAsync("GetCurrentTime", new Dictionary<string, object?> { ["city"] = "Shanghai" }, System.Threading.CancellationToken.None);Console.WriteLine(result.Content.First(c => c.Type == "text").Text);}
}
上述代码首先通过McpClientFactory.CreateAsync创建一个 MCP 客户端,连接到指定的 MCP 服务器(这里假设 MCP 服务器的可执行文件路径为…\McpServerDemo\bin\Debug\net8.0\McpServerDemo.exe,实际使用时请根据你的项目结构进行调整) 。然后使用mcpClient.ListToolsAsync列出服务器上可用的工具,并通过mcpClient.CallToolAsync调用 “GetCurrentTime” 工具,获取上海的当前时间并输出结果。
4.4 基于 LLM 的调用实现
要在 LLM 中调用 MCP 工具,我们可以基于 Microsoft.Extensions.AI 核心库或 Semantic Kernel 库来实现。以 Microsoft.Extensions.AI 核心库为例,首先需要安装相关的 NuGet 包。在 Visual Studio 中,右键点击项目,选择 “管理 NuGet 程序包”,搜索并安装 “Microsoft.Extensions.AI.OpenAI” 等相关包 。
假设我们使用 OpenAI 的模型,在代码中可以这样实现:
using Microsoft.Extensions.AI.OpenAI;
using ModelContextProtocol;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;class Program
{static async Task Main(){// 创建MCP客户端await using var mcpClient = await McpClientFactory.CreateAsync(new{Id = "time",Name = "Time MCP Server",TransportType = TransportTypes.StdIo,TransportOptions = new{["command"] = @"..\..\..\McpServerDemo\bin\Debug\net8.0\McpServerDemo.exe"}});// 获取MCP服务器的工具var mcpTools = await mcpClient.ListToolsAsync();// 配置OpenAI客户端var apiKeyCredential = new ApiKeyCredential("YOUR_OPENAI_API_KEY");var aiClientOptions = new OpenAIClientOptions();aiClientOptions.Endpoint = new Uri("https://api.openai.com/v1");var aiClient = new OpenAIClient(apiKeyCredential, aiClientOptions).AsChatClient("gpt-3.5-turbo");var chatClient = new ChatClientBuilder(aiClient).UseFunctionInvocation.Build();// 聊天历史IList<ChatMessage> chatHistory = [new(ChatRole.System, "You are a helpful assistant.")];// 聊天选项,包含MCP工具var chatOptions = new ChatOptions{Tools = [..mcpTools]};while (true){Console.Write("User> ");var question = Console.ReadLine();if (string.IsNullOrEmpty(question)) break;chatHistory.Add(new ChatMessage(ChatRole.User, question));var response = await chatClient.GetResponseAsync(chatHistory, chatOptions);Console.WriteLine($"Assistant> {response.Text}");chatHistory.Add(response);}}
}
在上述代码中,首先创建 MCP 客户端并获取服务器工具 。然后配置 OpenAI 客户端,包括设置 API 密钥和端点。接着创建聊天客户端,并将 MCP 工具添加到聊天选项中。在聊天循环中,用户输入问题,聊天客户端根据问题和工具生成回答,实现了基于 LLM 调用 MCP 工具的功能。如果使用 Semantic Kernel 库,实现方式会有所不同,但核心思想都是将 MCP 工具集成到 LLM 的调用流程中,让 LLM 能够利用这些工具完成更复杂的任务。
五、C# 官方 MCP 应用案例分享
5.1 案例一:智能文档处理系统
某大型企业每天需要处理大量的文档,包括合同、报告、文件等 。为了提高文档处理效率,企业开发了一套智能文档处理系统,该系统利用 C# 官方 MCP 连接 AI 模型和各种文档处理工具,实现了文档内容提取、总结和格式转换等功能。
在文档内容提取方面,当一份新的合同文档上传到系统中时,AI 模型通过 MCP 调用 OCR(光学字符识别)工具,将文档中的图像文字转换为可编辑的文本。然后,利用自然语言处理工具,提取文档中的关键信息,如合同双方的名称、合同金额、生效日期、关键条款等 。例如,通过 MCP 调用专门的合同解析工具,能够快速准确地识别出合同中的违约责任条款,将其内容提取出来并整理成结构化的数据。
对于文档总结功能,AI 模型根据用户的需求,通过 MCP 连接到文本摘要工具。当用户需要获取一份冗长报告的要点时,AI 模型会将报告内容传递给文本摘要工具,该工具利用先进的算法生成报告的摘要,突出关键信息和结论 。这样,用户无需花费大量时间阅读整个报告,就能快速了解其核心内容。
在文档格式转换场景中,系统同样借助 C# 官方 MCP 实现了高效的转换功能。比如,当用户需要将一份 Word 文档转换为 PDF 格式时,AI 模型通过 MCP 调用格式转换工具,轻松完成格式转换操作 。而且,该系统还支持多种格式之间的相互转换,满足了企业在不同业务场景下的需求。通过使用这个智能文档处理系统,企业的文档处理效率大幅提高,原本需要人工花费数小时处理的文档,现在通过系统能够在几分钟内完成,大大节省了人力成本和时间成本,提升了企业的工作效率和竞争力。
5.2 案例二:智能数据分析平台
一家互联网电商企业为了更好地了解市场趋势、用户行为和销售情况,开发了智能数据分析平台。该平台基于 C# 官方 MCP,实现了 AI 模型与各种数据分析工具的深度集成,能够高效地处理和分析海量数据,并生成可视化报表,为企业的决策提供有力支持。
在数据处理阶段,平台每天会收集来自电商网站的各种数据,如用户浏览记录、购买行为数据、商品信息等 。AI 模型通过 MCP 调用数据清洗工具,对原始数据进行清洗和预处理,去除重复数据、纠正错误数据、填补缺失值等 。例如,当发现用户购买记录中存在一些异常数据(如购买数量为负数)时,数据清洗工具会根据预设的规则进行纠正,确保数据的准确性和可靠性。
在数据分析环节,AI 模型利用 MCP 连接到统计分析工具和机器学习算法库 。当企业需要分析不同地区的销售趋势时,AI 模型会调用统计分析工具,对销售数据进行分组、求和、平均值计算等操作,生成不同地区的销售数据报表 。同时,借助机器学习算法库,平台可以对用户的购买行为进行预测分析。比如,通过分析用户的历史购买记录和浏览行为,建立用户购买预测模型,预测用户未来可能购买的商品,为企业的精准营销提供依据。
为了更直观地展示数据分析结果,平台利用 C# 官方 MCP 连接到数据可视化工具 。将分析后的数据生成各种可视化报表,如柱状图、折线图、饼图、雷达图等 。企业的管理人员可以通过这些可视化报表,清晰地了解销售趋势、用户行为模式、商品销售分布等信息,从而做出更明智的决策。例如,通过柱状图对比不同时间段的销售额,能够直观地看出销售的增长或下降趋势;通过饼图展示不同商品类别的销售占比,帮助企业了解市场需求,优化商品结构。通过这个智能数据分析平台,企业能够快速、准确地从海量数据中获取有价值的信息,为企业的市场策略制定、产品优化、用户服务提升等方面提供了重要的决策依据,助力企业在激烈的市场竞争中取得优势 。
六、未来展望与总结
6.1 MCP 的发展趋势预测
随着 AI 技术的持续发展,C# 官方 MCP 有望在多个方面取得显著进展 。在 AI 应用开发领域,MCP 很可能成为连接 AI 模型与各种数据源和工具的重要标准。越来越多的 AI 应用将基于 MCP 构建,实现更高效的数据交互和工具调用 。例如,在智能医疗领域,医生使用的诊断辅助 AI 系统可能会通过 MCP 连接到患者的电子病历数据库、医学影像分析工具、最新的医学研究文献库等,为医生提供全面准确的诊断建议。
MCP 的应用场景也将不断拓展 。除了目前已有的智能客服、数据分析、内容生成等场景,它还可能在智能物联网、金融风险预测、智能制造等领域发挥重要作用 。在智能物联网场景中,各种智能设备产生的数据可以通过 MCP 被 AI 模型快速获取和分析,实现设备的智能控制和优化。比如智能家居系统中的传感器数据,通过 MCP 传递给 AI 模型,模型根据这些数据自动调节室内温度、灯光亮度等,为用户提供更舒适便捷的生活体验。
此外,MCP 还将与其他新兴技术不断融合创新 。随着量子计算技术的发展,MCP 可能会在量子计算与 AI 的结合中发挥桥梁作用,使 AI 模型能够利用量子计算的强大算力进行更复杂的数据分析和模型训练 。在区块链技术方面,MCP 可以与区块链结合,实现数据的安全共享和可信交互,为 AI 应用提供更可靠的数据来源 。例如,在供应链金融领域,通过 MCP 连接区块链上的供应链数据和 AI 风险评估模型,AI 模型可以更准确地评估企业的信用风险,为金融机构的贷款决策提供依据。
6.2 对.NET 开发者的建议
对于.NET 开发者而言,C# 官方 MCP 带来了新的机遇和挑战 。建议开发者积极学习和使用 C# 官方 MCP SDK,掌握其核心功能和使用方法,以便在开发中充分发挥 MCP 的优势 。通过实践项目,深入理解 MCP 的工作机制和应用场景,提升自己在 AI 与.NET 开发融合领域的能力 。例如,可以尝试开发一些基于 MCP 的小型 AI 应用,如智能个人助手、简单的数据分析工具等,积累经验。
同时,开发者要密切关注 MCP 相关技术的发展动态 。AI 技术日新月异,MCP 也在不断演进和完善 。关注官方文档、技术论坛和开源社区,及时了解 MCP 的更新内容和新特性,能够帮助开发者在第一时间将最新的技术应用到项目中 。例如,当 MCP 发布新的版本,增加了对某种新数据源的支持时,开发者可以迅速跟进,利用这一特性为自己的应用拓展功能。
积极参与 MCP 相关的社区交流和贡献也是非常重要的 。在社区中,开发者可以与其他同行分享经验、交流心得,解决开发过程中遇到的问题 。同时,通过参与开源项目,为 MCP 的发展贡献自己的代码和想法,不仅能够提升自己的技术水平,还能为整个.NET 开发者社区的发展做出贡献 。比如在 GitHub 上的 MCP 相关开源项目中,提交自己的代码改进、功能扩展或者参与项目的讨论,与其他开发者共同推动 MCP 技术的进步。