.net AI MCP 入门 适用于模型上下文协议的 C# SDK 简介(MCP)
前言
最近看到很多文章都在谈mcp,但是很多文章都会给人一种感觉——看了,也好像啥也没看。本质上还是没懂,今天我们一起来学习下啥是mcp,让我们在一个极短的时间内,以说人话的方式,快速吃透它,让它为您所用。
起源
随着ai大模型的逐步崛起,各大ai大模型都已经变得非常厉害,它拥有很多知识,能写文章、能写代码、能识图。但是它们有一个局限性,就是在自己的圈子里很厉害,出了这个圈子啥也干不了。
啥意思? 给你举一个例子您就懂了。
-
比如,在我们的电脑上有一个文件夹,里面放着开发相关的资料,你可以轻易的读取和修改这里的资料,但是对于ai来说就很为难,因为它无法直接读取、修改你的文件。于是,你不得不,手动复制粘贴后告诉ai,是不是很麻烦
-
又比如,你有一个项目的原型设计放在
figma
上的,你可以自己拿着它做开发设计,但是ai也看不了;于是你只能,截图的方式告诉ai你的设计 -
再比如,在你电脑的本地运行这一个
mysql
数据库,对你来说要查找users
表里一个叫张三
的用户非常easy,但是ai它无法直接读取你的数据库。
看到了吧~,说起ai很厉害,但是一遇到具体点的事,ai
还得靠人,本质上就是大模型虽然智商很高,但是没有自己的手足,很多东西落不了地。
在没有mcp
的情况下,为了解决上面的问题有两种办法:
-
人工处理(比如手动复制粘贴,很繁琐)
-
使用大模型的一个叫函数调用的功能(但是每次都要针对某个大模型做定制,存在大量重复开发的问题)
在这种情况下,Anthropic
公司,也就是在代码编写方面拥有最强大模型Claude 3.7 sonnet
的那家公司提出了mcp
的概念。
为了解决这种混乱的局面,制定了mcp
协议,统一ai大模型与各种外部工具的通信方式
原理
这里大致说下原理,首先mcp
是一种协议,既然是一种协议它其实没什么神秘的,和我们常说的http
协议这些常见协议没有什么不同,只不过它是用于ai大模型与外部工具通信的协议
另外,它的是一个client和server端通信的协议,server端提供具体的服务,这是不是和我们熟悉的http差不多呢,下面是运行交互的图,你看一眼就明白了。
这里着重说明下,通常我们在使用时是在一个工具里面使用比如cursor
、windsurf
、vscode
里,在这些工具里使用时,本质是同时整合了ai大模型和mcp client端的。
mcp server
目前官方为python、typescript、java、c#都提供了mcp sdk,直接集成去写也比较简单。限于篇幅,就不展开了,如果您比较感兴趣,可以到[这里]看看(modelcontextprotocol.io/introductio…)
Introduction - Model Context Protocol
目前市面上,大部分mcp
的server都是通过python
或者typescript
写的。你想用mcp也不用自己去从头开始开发,因为大部分常用功能,已经有人开发好了。
去哪里获取mcp server呢? 主要有两个:
-
mcp.so/ 非常全啊,目前显示有4880个啦
-
mcp.composio.dev/ 这里要少一点,但是如果你使用cursor、windsurf会非常友好,它提供命令行直接复制运行就装上了很省事啊。
实操
前面说了那么多,总算来到实战了。说了那么多理论,那还不是为了我们更好的理解然后使用嘛,为了方便说明,我这里以windsurf
演示说明
PS: 如果在
cursor
中安装更简单。如果你使用的是vscode
可以通过cline
插件去体验安装,安装好后您可以看到一个mcp市场直接搜就行,也支持手动安装。
step1: 打开上面我们提供的任意一个mcp server网站,比如mcp.so/ 然后搜索我们需要的mcp server名,比如这里我需要安装一个playwright
——它是一个自动运行浏览器的mcp server.
step2:
-
点击进去后,切换到content tab,
-
然后下拉找到对应的example config位置,复制mcpservers 内部的这个json参数备用。
-
然后打开你的编辑器我这里打开的是windsurf(你打开你的编辑器找到对应配置位置就行) 在windsurf中打开聊天框,下面有一个类似锤子的按钮,点击它然后在配置文件中,把你第二部分的复制内容粘贴进行,然后点击聊天按钮下的一个刷新按钮就行,激活以后可以看到当前有几个mcp server,并且可以看到每个mcp下有哪些工具。
好啦现在你已经安装完毕了,剩下的事你就可以直接在聊天框里告诉ai要做什么事,然后ai会决定什么时候使用mcp server的
PS: 大部分mcp
的安装都非常简单,就是类似复制上面的配置json,粘贴,然后保存的事;要么就是一个命令行,直接粘贴到终端运行就行了。
最后,快去发现你想要的mcp server并安装它吧。
微软 适用于模型上下文协议的 C# SDK 简介(MCP)
发布日期2025年4月16日
欢迎使用适用于 MCP 的官方 C# SDK 的指南! 在此视频中,我们将引导你完成开始所需的一切,从设置开发环境到构建你自己的 MCP 服务器。 我们还将深入了解如何在 Visual Studio Code 中工作,展示改进编码体验的提示和技巧。 无论你是初学者还是经验丰富的开发人员,本教程都适合所有人。 让我们开始编码!
适用于模型上下文协议的 C# SDK 简介(MCP) | Microsoft Learn
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using ModelcontextProtocol.Server,
using System.ComponentModel;
var builder = Host.CreateEmptyApplicationBuilder(settings: null);
builder.Services
.AddMcpServer()
.WithStdioServerTransport().WithToolsFromAssembly();
await builder.Build().RunAsync( );
[McpServerToolType]
public static class EchoTool
[McpServerTool, Description("Echoes the message back to the client.")]public static string Echo(string message)=> $"Hello from C#: {message}".
IMcpServerTool, Description("Echoes in reverse the message sent.")]public static string ReverseEcho(string message)=> message.Reverse().
它簡單地將 消息並反轉它
modelcontextprotocol/csharp-sdk: The official C# SDK for Model Context Protocol servers and clients. Maintained in collaboration with Microsoft.
官方文档
.NET AI 和 MCP 入门 - .NET | Microsoft Learn