写点什么

AI 搜索 MCP 最佳实践

  • 2025-07-04
    陕西
  • 本文字数:3779 字

    阅读完需:约 12 分钟

背景

那些 LLM 不知道的事

尝试直接询问 LLM“今天天气如何”时,会发现 LLM 无法回答——它既不知道“今天”是哪天,也无法获取地理位置信息。这揭示了 LLM 的局限:缺乏与外部工具和实时数据的交互能力


为解决这一问题,MCP(Model Context Protocol)应运而生。通过标准化协议,MCP 使 LLM 能够自主调用工具(如天气 API、地理位置服务),并解耦 Agent 与 Tools 的开发,显著降低维护和迭代成本。


当 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("http://ip-api.com/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

场景一:文件解析与总结

描述:通过阿里云 AI 搜索开放平台集成 MCP,快速调用文件解析工具,降低开发门槛。


  1. 前置准备:

1.1. 注册阿里云AI 搜索开放平台,获取API 密钥

1.2. VSCODE 配置 Cline 工具,集成阿里云 MCP 服务器。


1.3. Cline 配置 LLM 接口


API Provider 选择 OpenAI Compatible


Base URL 设为 https://dashscope.aliyuncs.com/compatible-mode/v1


1.4. 安装 UV,管理 Python 环境


curl -LsSf https://astral.sh/uv/install.sh | sh


或者


pip install uv


  1. 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>"            }        }    }}
复制代码


  1. 业务价值

  • 降低接入成本:通过阿里云标准化接口快速集成搜索服务。

  • 灵活扩展:支持以 AI 搜索为核心丰富的模型服务,可满足多样化的业务需求,加速产品迭代


立即体验阿里云AI搜索开放平台

场景二:向量检索及排序

描述:结合 OpenSearch 向量检索版,支持动态扩展与精准查询,优化成本。


1.前置准备

  1. (新增)开通 Opensearch向量检索版,构建一张向量表。

  2. (其他)同场景一


2.Cline 配置 MCP Server

下载 alibabacloud-opensearch-mcp-server

配置 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.业务价值

  • 精准检索:结合阿里云向量数据库,支持动态扩展和无缝集成。

  • 成本优化:按需付费模式,降低向量检索的计算成本。


立即体验阿里云OpenSearch向量检索

场景三:Elasticsearch 智能检索

描述:集成阿里云 ES 服务,实现高效实时数据分析与容灾保障。


1.前置准备

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

  2. (其他)同场景一

2.Cline 配置 MCP Server

2.1. 参考 elasticsearch-mcp-server

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.业务价值

  • 实时分析:支持全文搜索、复杂查询及实时数据分析。

  • 高可靠性:阿里云 ElasticSearch 提供多副本容灾,保障数据安全。


立即体验阿里云Elasticsearch

为什么选择阿里云 MCP 解决方案?

选择阿里云 MCP 解决方案的核心原因在于其通过标准化协议与全生命周期服务,显著降低工具链集成复杂度并加速 AI 应用落地。阿里云 MCP 以协议驱动替代传统硬编码模式,实现跨平台工具调用:


  • AI 搜索开放平台:提供丰富的 AI 搜索组件化服务服务,调用多模态数据解析、大语言模型、效果测评等数十个服务,实现智能搜索、检索增强生成(RAG)、多模态搜索等场景的搭建,例如:智能客服、对话式搜索、图谱增强、个性化推荐等。

  • OpenSearch:内置了各行业的查询语义理解、机器学习排序算法等能力,并充分开放了文本向量检索引擎能力,助力开发者快速搭建智能搜索服务。通过 AI 搜索开放平台,用户可以灵活调用多模态数据解析、文档切分、文本向量、大模型文本生成等组件化服务,满足多种搜索场景需求,例如:电商、内容资讯、游戏、金融等多种行业场景。

  • 阿里云 Elasticsearch:可以快速地、近乎于准实时地存储、查询和分析超大数据集,广泛应用于实时日志处理、信息检索、数据的多维查询和统计分析等场景,如:智能客服、企业内部知识库、电商导购、数据服务等。


通过 MCP 协议,可快速调用阿里云 OpenSearch 、ElasticSearch 等工具,帮助企业快速集成工具链、降低开发复杂度、提升业务效率。

更多资讯


用户头像

还未添加个人签名 2020-10-15 加入

分享阿里云计算平台的大数据和AI方向的技术创新和趋势、实战案例、经验总结。

评论

发布
暂无评论
AI搜索 MCP最佳实践_人工智能_阿里云大数据AI技术_InfoQ写作社区