.net AI MCP 入门 适用于模型上下文协议的 C# SDK 简介(MCP)

前言

最近看到很多文章都在谈mcp,但是很多文章都会给人一种感觉------看了,也好像啥也没看。本质上还是没懂,今天我们一起来学习下啥是mcp,让我们在一个极短的时间内,以说人话的方式,快速吃透它,让它为您所用。

起源

随着ai大模型的逐步崛起,各大ai大模型都已经变得非常厉害,它拥有很多知识,能写文章、能写代码、能识图。但是它们有一个局限性,就是在自己的圈子里很厉害,出了这个圈子啥也干不了。

啥意思? 给你举一个例子您就懂了。

  • 比如,在我们的电脑上有一个文件夹,里面放着开发相关的资料,你可以轻易的读取和修改这里的资料,但是对于ai来说就很为难,因为它无法直接读取、修改你的文件。于是,你不得不,手动复制粘贴后告诉ai,是不是很麻烦

  • 又比如,你有一个项目的原型设计放在figma上的,你可以自己拿着它做开发设计,但是ai也看不了;于是你只能,截图的方式告诉ai你的设计

  • 再比如,在你电脑的本地运行这一个mysql数据库,对你来说要查找users表里一个叫张三的用户非常easy,但是ai它无法直接读取你的数据库。

看到了吧~,说起ai很厉害,但是一遇到具体点的事,ai还得靠人,本质上就是大模型虽然智商很高,但是没有自己的手足,很多东西落不了地。

在没有mcp的情况下,为了解决上面的问题有两种办法:

  1. 人工处理(比如手动复制粘贴,很繁琐)

  2. 使用大模型的一个叫函数调用的功能(但是每次都要针对某个大模型做定制,存在大量重复开发的问题)

在这种情况下,Anthropic公司,也就是在代码编写方面拥有最强大模型Claude 3.7 sonnet的那家公司提出了mcp的概念。

为了解决这种混乱的局面,制定了mcp协议,统一ai大模型与各种外部工具的通信方式

原理

这里大致说下原理,首先mcp是一种协议 ,既然是一种协议它其实没什么神秘的,和我们常说的http协议这些常见协议没有什么不同,只不过它是用于ai大模型与外部工具通信的协议

另外,它的是一个client和server端通信的协议,server端提供具体的服务,这是不是和我们熟悉的http差不多呢,下面是运行交互的图,你看一眼就明白了。

这里着重说明下,通常我们在使用时是在一个工具里面使用比如cursorwindsurfvscode里,在这些工具里使用时,本质是同时整合了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呢? 主要有两个:

  1. mcp.so/ 非常全啊,目前显示有4880个啦

  2. mcp.composio.dev/ 这里要少一点,但是如果你使用cursor、windsurf会非常友好,它提供命令行直接复制运行就装上了很省事啊。

实操

前面说了那么多,总算来到实战了。说了那么多理论,那还不是为了我们更好的理解然后使用嘛,为了方便说明,我这里以windsurf演示说明

PS: 如果在cursor中安装更简单。如果你使用的是vscode可以通过cline插件去体验安装,安装好后您可以看到一个mcp市场直接搜就行,也支持手动安装。

step1: 打开上面我们提供的任意一个mcp server网站,比如mcp.so/ 然后搜索我们需要的mcp server名,比如这里我需要安装一个playwright------它是一个自动运行浏览器的mcp server.

step2:

  1. 点击进去后,切换到content tab,

  2. 然后下拉找到对应的example config位置,复制mcpservers 内部的这个json参数备用。

  1. 然后打开你的编辑器我这里打开的是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

cs 复制代码
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( );
cs 复制代码
[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

相关推荐
工程师0076 小时前
C#中堆和栈的概念
c#·堆和栈
weixin_307779137 小时前
C#实现MySQL→Clickhouse建表语句转换工具
开发语言·数据库·算法·c#·自动化
阿喵派我来抓鱼9 小时前
深入理解 AI 流式接口:从请求到响应的完整解析
react.js·ai·前端框架·vue
CsharpDev-奶豆哥14 小时前
ASP.NET中for和foreach使用指南
windows·microsoft·c#·asp.net·.net
SuperHeroWu714 小时前
【HarmonyOS AI赋能】朗读控件详解
华为·ai·harmonyos·朗读·赋能·speechkit·场景化语音
cimeo17 小时前
【C 学习】12.2-函数补充
学习·c#
晚枫~21 小时前
零基础快速上手Playwright自动化测试
javascript·python·测试工具·c#·自动化
爱编程的鱼21 小时前
C# 变量详解:从基础概念到高级应用
java·算法·c#
阿里-于怀21 小时前
阿里云发布《AI 原生应用架构白皮书》
人工智能·阿里云·ai·架构·白皮书·ai原生