打破AI与现实的次元壁!MCP协议:程序员的“万能转接头”来了

背景

大模型Agent相信很多技术小伙伴已经听得耳朵起茧了吧,虽然之前爆火的Manus只是“昙花一现”,但Agent肯定是后续大模型真正干实活的关键,也就是不限于人工一对一操作的那种,下面是Agent的关键图信息:

所谓Agent,简单理解为代理,就是大模型对自然语言的文本信息的处理后,配合大模型调用一些工具进行对应业务的处理,但也不仅仅是调用工具这么简单,如上图,包含Memory、Planning等,但今天我们不细说Agent,而是先从一个小好奇点开始:如何让大模型调用工具呢?之前很多大模型都支持Function Calling的方式,但很多标准也不太一样,对于后续工具的开发和维护又是一个难题,所以最近爆火的MCP(模型上下文协议)就出现了,统一标准,大模型调用也简单,开发者也不用愁兼容各种调用标准。

大模型这么牛,为什么还要调用工具呢?

简单理解:大模型只是懂的多,很多场景是根据具体业务具体处理,还有实时性限制,所以有必要针对不同的情况调用不同的业务工具进行处理。

MCP 概述

MCP(模型上下文协议)是一种开放协议,它就像AI世界的USB-C接口,让大语言模型(LLM)能像插U盘一样,“即插即用”地连接数据库、API、本地文件甚至硬件设备,这样就能真正的去干活啦,比如:提交代码、操作文件、下单等等,不用手动编排流程,而是释放双手自动的干;MCP是由Anthropic提出,短短几个月就引发众多关注,节奏必须是要跟上的。

主要组成部分

如上图,主要分为三部分:

  1. 1. MCP Host — LLM 管理连接的应用程序(例如 Cursor、Claude等);

  2. 2. MCP 客户端 — 与 MCP 服务器保持 1 对 1 连接;

  3. 3. MCP 服务器 — 为LLMs提供上下文、业务处理相关工具等;

大概的流程,当用户给大模型发送一段自然语言信息时,MCP 主机首先调用 MCP 服务器以询问哪些工具可用,大模型接收信息后,根据对输入的解析选择使用对应的工具,通过 Host 向 MCP 服务器发送请求,接收到结果后,再通过大模型进行解析、整理返回给用户。

优势
  1. 1. 数据安全与隐私保护

  2.     MCP通过本地服务器与数据建立连接,不用将大量数据上传其他平台,避免敏感信息暴露。

  3. 2. 扩展AI能力

  4.    大模型能力在隐私领域是无招的,比如企业的业务数据分析、医院患者信息分析,这些都是超敏感数据,但可以基于MCP开发对应的工具供大模型调用;

  5. 3. 简化开发流程

  6.     统一标准,对于开发者来说不用再考虑兼容各种平台的调用方式,只需按照MCP协议进行开发,不用再因为每一次更新去手动更新调用方式;

实战

理论先聊到这,实战出真理,这次先来个简单的操作;

现在很多MCP Server工具都是使用NodeJs或Python开发的,但我们这次用C#实现一个,原理都差不多。

建一个控制台项目,导入mcpdotnet包,在Program.cs中编写代码如下:

.WithStdioServerTransport :使用本地进程通信方式, 后面会详细说;

.WithTools:自动注册带[McpToolType]标记的工具类;

编写工具

这里新建一个类文件,然后在里面标记对应Atrribute, 在类上标注:[McpToolType],在对应工具方法上标注[McpTool]和[Description],后面会细说为什么标注这些,这里就先跳过了;业务代码就返回一行字符串,这里其实就是业务逻辑处理的地方。

准备环境

上面的测试的编码就完成,现在要准备环境了,要有一个MCP Host和MCP Client,这里就用VsCode+Cline插件,Cline支持MCP Server。

安装好VsCode之后,在插件管理中搜索Cline安装上,然后就可以配置MCP Server了,具体安装就不截图了,相信小伙伴们肯定都会。

在配置MCPServer前,需要配置一下Cline使用的大模型,选择平台,然后生成Key填入就行,我用的OpenRouter平台,有免费的模型使用,如下:

接下来就开始配置MCP Server了,如下:

"HelloMcp": {
      "command": "dotnet",
      "args": [
        "H:\\DotNetProject\\DotNetMCPServer\\DotNetMCPServer\\bin\\Debug\\net8.0\\DotNetMCPServer.dll"
      ],
      "disabled": false,
      "autoApprove": [
        "HelloMcp"
      ]
    }

Windows也可以如下配置:

"HelloMcp": {
    "command":"cmd",
    "args":[
      "/c",
      "dotnet",
      "H:\\DotNetProject\\DotNetMCPServer\\DotNetMCPServer\\bin\\Debug\\net8.0\\DotNetMCPServer.dll"
    ],
    "disabled":false,
    "autoApprove":[
    "HelloMcp"
    ]
   }

上面的配置其实就是通过dotnet命令执行编译出来的dll文件,disabled就是表示McpServer是否启用,autoApprove配置对应的工具之后就减少弹框提示确认啦。

这样就可以开始使用我们写好的MCP Server了,如下:

如上,只是发给大模型一句话,然后就自动选择合适的工具进行执行分析,有参数和返回值,然后最后进行整理,是不是有点那么回事了。 (测试这里写英文,不是我英文有多屌,而是程序没有处理中文,返回是乱码,偷懒没改!!!)

注:如果要使用其他MCP Server,看看是用什么语言实现了,需要安装对应的运行环境,比如是用NodeJs开发的MCP Server,就要安装一下NodeJs环境。

总结:

上面的案例只是小试牛刀,下一期我们来个复杂的,多搞几个工具,结合实际应用场景,看看能不能一句话让大模型干大事,MCP的开发后面肯定是趋势,大模型这么火,咱不能不会呀。哈哈哈,小伙伴们下期见喽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值