2025年除了DeepSeek,你还得会MCP

在全民AI的2025年,我原以为大家都对MCP耳熟能详了,至少搞技术的都应该清楚是怎么回事。然而现实总是出人意料。

前两天,一家专门做大数据的公司找到我咨询MCP Server的事情。与他们开发交流的过程中,我惊讶地发现他们对MCP的基本概念,甚至最基础的Function Calling都了解得不是很清楚。最后,他们领导决定让我线上给团队做了一个培训。

(原定三小时,但我只用了两小时就给他们研发组所有人都讲得清清楚楚!)

更让我惊讶的是,今天一位建筑行业的大哥也来咨询Cursor中MCP Server的配置问题。看到他的投屏我才知道,现在连建筑行业都开始用MCP了!大哥说近期他们行业,包括他们公司,都在主推AI,有些人会使用3D绘图的MCP Server,还给我介绍了前段时间爆火的blender-mcp (https://github.com/ahujasid/blender-mcp) 项目。

虽然大哥目前配置的只是一个让模型能够进行深度有序思考的Server-Sequential Thinking,但他这种积极拥抱AI的态度着实让我感动。

这些经历让我意识到,尽管AI技术日新月异,但仍有许多人对MCP这样的基础概念不够了解。所以我决定写这篇博客,希望能帮助大家初步了解MCP,不至于在这个AI时代掉队。

什么是MCP?用最简单的话说

MCP,全称Model Context Protocol(模型上下文协议),是一个开放的标准协议,用于规范应用程序如何向AI模型提供上下文信息。(其实就是一个标准而且,不要想的太复杂。只不过这个标准是由Anthropic——做Claude模型的那个公司制定的,比较有权威性而已。)

想象一下,MCP就像AI世界的"USB-C接口":

  • USB-C让你的电脑能连接各种外设(显示器、硬盘、键盘等)

  • MCP让AI模型能连接各种数据源和工具(文件系统、数据库、API等)

简单说,MCP就是让AI能够"看见"和"操作"外部世界的标准接口

换句话说,它只是一个中心化的翻译官,具体的任务还是需要对应工具去执行(对应到AI应用就是Funtion Calling,显示器、键盘等就是一个一个的tool。)

为什么我们需要MCP?

在没有MCP之前,让AI使用外部工具和数据是件麻烦事:

  1. 每集成一个新工具,你都要写特定的代码

  2. 不同AI供应商有不同的接口标准

  3. 数据安全问题难以统一管理

举一个比较通俗的例子,就像你的GPT插件Claude用不了,或者你的Dify插件Coze用不了。

MCP解决了这些问题,它提供:

  • 预构建集成:有大量现成的MCP服务器可以直接使用

  • 灵活切换:可以轻松在不同AI供应商之间切换

  • 安全标准:确保你的数据在你的基础设施内安全处理

就像有了JDBC规范,你可以随便连接使用任何实现这个规范的数据库(软件史上每一次统一规范,必会带来一次重大的变革!)

MCP的基本架构是什么样的?

MCP采用经典的客户端-服务器架构:

(来自官方:Introduction - Model Context Protocol

主要组件包括:

  • MCP Hosts:就是你用的 Claude Desktop、Cursor、Cline等想通过MCP访问数据的程序

  • MCP客户端:维持与服务器1:1连接的协议客户端

  • MCP服务器:通过标准化协议暴露特定功能的轻量级程序

  • 数据源:可以是本地文件、数据库,也可以是远程API

打个比方:如果把AI模型比作"大脑",MCP服务器就像各种"感官"和"肢体",让AI能"看到"(读取数据)和"动手"(执行操作)。

MCP的核心概念

MCP定义了三个主要概念(也叫"原语"),让我们用最简单的类比来理解:

1. 资源(Resources)

类比:相当于AI的"眼睛"和"耳朵",让AI能"看到"和"听到"信息。

实际上是:允许AI读取数据的接口,比如文件内容、数据库信息等。

例子

  • 读取本地Excel文件

  • 获取网页内容

  • 查看数据库结构

2. 工具(Tools)

类比:相当于AI的"手",让AI能"做事"。

实际上是:允许AI执行操作的函数,比如修改文件、发送请求等。

例子

  • 发送电子邮件

  • 查询数据库

  • 生成图片

  • 执行代码

3. 提示(Prompts)

类比:相当于AI的"工作指南",指导AI如何完成特定任务。

实际上是:可重用的模板,定义AI与用户交互的模式。

例子

  • 代码审查模板

  • 数据分析向导

  • 翻译助手

MCP在实际中是如何工作的?

让我们看一个简单例子,用MCP来完成一个任务:

假设你想让AI帮你分析一个Excel文件中的销售数据:

  1. 连接阶段

    • 你的Claude Desktop(主机)连接到Excel读取器MCP服务器

  2. 交互阶段

    • 你告诉Claude:"分析我的销售数据表"

    • Claude通过MCP的资源接口读取Excel文件内容

    • Claude分析数据后,可能想生成一个图表

    • Claude使用MCP的工具接口调用图表生成功能

    • 最后Claude呈现分析结果和图表

整个过程中,Claude不需要直接访问你的文件系统,所有访问都通过受控的MCP接口完成,既安全又高效。

比如你想从一堆波多野结衣老师的视频里找到一个叫“猴子万爆出装教学”的视频,只需要让MCP Sever(自己人)去查询就行,Claude是不会发现那些波老师的视频的,极大地保护了用户隐私。

MCP的实际应用场景

MCP已经在各行各业得到应用:

  1. 软件开发:连接代码库、文档系统,辅助编码和调试

  2. 数据分析:连接各种数据源,进行复杂分析

  3. 内容创作:连接设计工具、CMS系统,辅助创作

  4. 客户服务:连接CRM系统,提供智能客服

  5. 建筑设计:正如前面提到的,连接3D建模工具

免费的MCP Server 网站:

MCP Servers

Open-Source MCP servers | Glama

PulseMCP | Keep up-to-date with MCP

Smithery - Model Context Protocol Registry

Composio MCP Server

https://github.com/punkpeye/awesome-mcp-servers

如何开始使用MCP?

根据你的角色不同,开始使用MCP的方式也不同:

作为用户

如果你只是想使用预建的MCP服务器:

  1. 安装支持MCP的客户端(如Claude Desktop、Cursor、Cline等)

  2. 按照指南配置需要的MCP服务器

  3. 开始使用增强的AI功能

这里以Cursor为例演示配置一个可以连接MySQL的 MCP Server:

1. 在Smithery - Model Context Protocol Registry上搜索mysql:

2. 点击Cursor=>输入数据库连接信息=>点击 Save and Connect

3. 0.46及以下用命令,0.47及以上用json=>选择操作系统=>复制json/npm命令

4. 配置到Cursor=> 保存

5. 等待连接成功(信号灯变成绿色就连接成功了)

6. 开始享用(注意只有 Agent模式才能够使用MCP Server)

作为开发者

如果你想构建自己的MCP服务器:

  1. 选择合适的编程语言SDK(Python、Java等)

  2. 根据MCP规范开发服务器

  3. 测试并部署你的服务器

直观感受

最后通过不同MCP Server的配置来直观地感受一下为什么说MCP就是一个规范

{
    "mcpServers": {
      "fetch-mcp": {
        "command": "npx",
        "args": [
          "-y",
          "@smithery/cli@latest",
          "run",
          "fetch-mcp",
          "--config",
          "{}"
        ]
      }
    }
  }
{
    "mcpServers": {
      "fs": {
        "command": "cmd",
        "args": [
          "/c",
          "npx",
          "-y",
          "@smithery/cli@latest",
          "run",
          "@bunasQ/fs",
          "--config",
          "{}"
        ]
      }
    }
  }
{
    "mcpServers": {
      "excel-reader": {
        "name": "Excel文件读取器",
        "description": "提供通过路径读取Windows本地Excel文件的功能",
        "command": "python",
        "args": ["D:\\VS_WorkSpace\\mcp_class\\read_file_server.py"]
      }
    }
  }

机智如你是不是已经看出端倪了呢?

结语

AI技术的浪潮正在改变各行各业,MCP作为连接AI与外部世界的标准接口,将大大降低AI应用的门槛。无论你是技术专家还是普通用户,了解MCP都能帮助你更好地利用AI工具。

正如开头所说,我希望这篇文章能帮助所有人——无论是技术人员还是非技术人员——降低使用AI技术的门槛,一起享受人工智能带来的美好生活。

这期主要是讲了一些通识性的概念。下一期,我们将从实战角度出发,手动实现一个MCP Server和Client来理解清楚原理。敬请期待!(感兴趣的可以点个关注哦!)


如果你觉得这篇文章对你有帮助,别忘了点赞、分享,并在评论区告诉我们你的使用体验!

<think>好的,用户的问题是如何在Dify工作流中集成和调用其他MCP服务。首先,我需要回顾一下用户提供的引用内容,特别是引用[1]和引用[3],因为它们提到了Dify工作流和MCP服务的关系。 根据引用[1],用户开发了一个MCP Server应用,目的是让VS Code客户端的MCP Client能够调用Dify中的指定工作流,而Dify的配置文件在config.yaml中。这说明Dify工作流可能需要通过某种接口或配置来与MCP服务通信。引用[3]提到虽然有很多生成式AI框架,但缺乏调试工具,但用户的问题是关于集成方法,可能需要配置服务调用或API端点。 接下来,我需要确定Dify工作流如何调用外部服务。通常,工作流系统会提供HTTP请求节点或自定义代码节点来连接外部服务。查看引用[2],其中提到使用Prompt模板和LLMs结合CoT思维链来执行步骤,最后通过Action: Finish结束。这可能意味着在Dify中可以通过自定义动作(Action)来触发外部服务调用。 因此,可能的步骤是:1. 在Dify中配置MCP服务的API端点;2. 使用HTTP请求节点或自定义代码节点调用MCP服务;3. 处理响应并继续工作流。需要检查Dify的文档是否有相关节点支持,或者是否允许编写自定义代码。 用户可能需要示例,比如在config.yaml中定义MCP服务的配置,然后在工作流中添加HTTP请求节点,指向MCP的API,并处理返回的数据。另外,引用[1]中的Python代码示例可能提示用户熟悉Python,所以用Python编写自定义函数来调用MCP服务也是一个方法。 需要确保回答中提到配置文件的修改、API调用方式、以及可能的认证机制,如API密钥。同时,要提醒用户注意错误处理和超时设置,确保工作流的稳定性,如引用[3]提到的质量不佳问题,可能需要调试和优化这些调用。</think>### 如何在Dify工作流中集成和调用其他MCP服务 #### 1. 服务注册与配置 首先需要在Dify的配置文件(如`config.yaml`)中定义目标MCP服务的连接信息。例如: ```yaml mcp_services: search_service: endpoint: "http://mcp-search-service/api/v1" auth_key: "YOUR_API_KEY" data_processing: endpoint: "http://mcp-data-processor/api" timeout: 10 ``` 通过配置文件声明服务地址、认证方式等元数据,为后续调用提供基础[^1]。 #### 2. 工作流节点设计 在Dify工作流编辑器中添加自定义动作节点,支持通过HTTP请求或gRPC调用MCP服务: ```python # 示例:通过Python自定义节点调用MCP服务 import requests def call_mcp_service(service_name, params): config = load_config() # 读取config.yaml配置 endpoint = config['mcp_services'][service_name]['endpoint'] response = requests.post( endpoint, json=params, headers={"Authorization": config['mcp_services'][service_name]['auth_key']} ) return response.json() ``` 此代码演示了如何通过配置动态加载服务地址并实现API调用[^1][^2]。 #### 3. 逻辑编排 结合思维链(CoT)模式编排工作流: 1. **输入解析节点**:接收用户原始请求 2. **意图识别节点**:判断是否需要调用MCP服务 3. **服务调用节点**:通过前述方法调用MCP服务 4. **结果处理节点**:处理返回数据 5. **输出生成节点**:返回最终响应 例如在Prompt模板中定义: ``` Thought: 用户需要查询{{topic}}信息 ===> Action: Search[mcp_search_service] {{search_results}} ===> Action: Finish ``` 这种模式可实现自动化服务调用[^2]。 #### 4. 调试与优化 建议通过以下方式保证服务质量: - 添加服务调用超时机制 - 实现重试策略(指数退避) - 记录服务调用日志 - 设置熔断阈值(如错误率超过30%暂停调用) 这些措施可缓解引用[3]中提到的质量不稳定问题。 #### 5. 安全认证 推荐采用以下认证方式: ```python # JWT认证示例 import jwt def generate_auth_token(service_name): payload = { "service": service_name, "exp": datetime.utcnow() + timedelta(minutes=5) } return jwt.encode(payload, SECRET_KEY, algorithm="HS256") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值