# MCP

# Introduction

https://modelcontextprotocol.io/introduction

MCP 是一种开放协议,它对应用程序如何向大语言模型(LLMs)提供上下文进行了标准化。可以把 MCP 想象成人工智能应用程序的 USB - C 接口。正如 USB - C 为将设备连接到各种外围设备和配件提供了一种标准化方式一样,MCP 也为将人工智能模型连接到不同数据源和工具提供了一种标准化方式。通过 MCP 协议,开发者不用为每个外部工具编写复杂的接口,应用也能够接入海量第三方工具。

阿里云 MCP 市场:https://bailian.console.aliyun.com/?tab=mcp#/mcp-market

MCP 有助于你在大语言模型(LLMs)之上构建智能体和复杂工作流程。大语言模型常常需要与数据和工具集成,而 MCP 则提供了

  1. 一系列不断增加的预构建集成,你的大语言模型(LLM)可直接接入。
  2. 可在大语言模型提供商和供应商之间灵活切换。
  3. 在你的基础设施中保护数据安全的最佳实践。

image-20250701010842862

# architecture

MCP 的核心遵循客户端 - 服务器架构,其中主机应用程序可以连接到多个服务器

image-20250701010850795

  • MCP 主机 :希望通过 MCP 访问数据的 Claude Desktop、IDE 或 AI 工具等程序。(比如 Cline 和 Cursor)。主机负责发起与 MCP 服务器的连接,并协调用户请求、LLM 处理和外部工具之间的整体流程。
  • MCP 客户端 :主机应用程序中管理与特定 MCP 服务器通信的组件。在主机应用程序内与服务器保持 1:1 连接
  • MCP 服务器 :轻量级程序,每个程序都通过标准化的 Model Context Protocol 公开特定功能。向客户端提供上下文、工具和提示
  • 本地数据源 :MCP 服务器可以安全访问的计算机文件、数据库和服务 (例如,通过 MCP 实现查询本地 PG 数据库信息)
  • 远程服务 :MCP 服务器可以连接到的 Internet 上可用的外部系统(例如,通过 API 获取天气,获取地图导航)

# MCP client

MCP client 充当 LLM 和 MCP server 之间的桥梁,MCP client 的工作流程如下:

  • MCP client 首先从 MCP server 获取可用的工具列表。
  • 将用户的查询连同工具描述通过 function calling 一起发送给 LLM。
  • LLM 决定是否需要使用工具以及使用哪些工具。
  • 如果需要使用工具,MCP client 会通过 MCP server 执行相应的工具调用。
  • 工具调用的结果会被发送回 LLM。
  • LLM 基于所有信息生成自然语言响应。
  • 最后将响应展示给用户。

# MCP server

MCP server 是 MCP 架构中的关键组件,它可以提供 3 种主要类型的功能:

  1. 资源(Resources):类似文件的数据,可以被客户端读取,如 API 响应或文件内容。
  2. 工具(Tools):可以被 LLM 调用的函数(需要用户批准)。
  3. 提示(Prompts):预先编写的模板,帮助用户完成特定任务。

开源社区在 Local MCP Server 的支持上相对成熟。这里 Local 的意思是将一个 MCP Server 以一个独立进程的方式部署在本地,这个本地的 MCP Server 可以和远端的其他 Server 做交互。

https://mcp.so/

本地 MCP Server 具有隔离性好,数据不出边缘,弱依赖网络等优点,但是也具有以下几个缺点:

  • 每个节点单独部署,维护 / 升级成本高,难以统一管理
  • 无法统一聚合数据,状态分散
  • 多实例资源开销高,不适合大规模 Agent 扩展
1
2
3
4
5
6
将问题发送给 Claude
Claude 分析了可用的工具并决定使用哪一个
客户端通过 MCP 服务器执行所选工具
结果将发送回给 Claude
Claude 制定自然语言响应
展示响应结果

# 百度地图 MCP server

1、更新 Cursor,在首选项 -> Cursor settings 中选择 MCP

image-20250701010905783

2、https://lbsyun.baidu.com/faq/api?title=mcpserver/quickstart 在百度地图开发者平台上获取 AK,配置 MCP

image-20250701010913560

1
2
3
4
5
6
7
{
"mcpServers": {
"baidu-maps": {
"url": "https://mcp.map.baidu.com/sse?ak=您的AK"
}
}
}

3、选择 Agent 方式,提问地图相关问题,Agent 中配置 auto

image-20250701011025748

此时,MCP Host 是 Cursor,MCP client 是 Cursor 中的 Agent,MCP server 是百度地图

# 阿里云百炼 Agent 调用

1、开通 Amap Mapshttps://bailian.console.aliyun.com/?tab=mcp#/mcp-market

image-20250701011037621

2、在应用中创建 Agent,在技能 -> MCP 服务中选择 Amap Maps,模型选择支持 MCP 的模型

image-20250701011047159

image-20250701011054006

3、测试 推荐北京大钟寺1号楼附近烧烤

image-20250701011100060

https://bailian.console.aliyun.com/?tab=doc#/doc/?type=app&url=https%3A%2F%2Fhelp.aliyun.com%2Fdocument_detail%2F2879604.html

# 通过 MCP 实现查询本地 PG 数据

https://juejin.cn/post/7463005171515621417

Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

John Doe WeChat Pay

WeChat Pay

John Doe Alipay

Alipay

John Doe PayPal

PayPal