# 2026年了还不懂MCP协议?一文带你彻底搞懂AI Agent的“万能接口“

> 📢 **导读**:MCP(Model Context Protocol)正在成为AI Agent领域的事实标准。本文从零开始,带你理解MCP的核心概念、架构设计,并手把手实现一个MCP Server。建议收藏!

---

## 一、什么是MCP?

MCP(Model Context Protocol,模型上下文协议)是 **Anthropic** 于2024年底提出的一套开放协议,旨在为大语言模型(LLM)提供 **标准化的外部工具调用和上下文获取能力**。

你可以把它理解为:

```

MCP 之于 AI Agent = USB 协议 之于 电脑外设

```

在MCP出现之前,每个AI应用对接外部工具都需要写一套定制代码。有了MCP,**一次实现,到处复用**。

### 1.1 核心架构

MCP采用 **Client-Server 架构**:

```

┌─────────────┐       ┌─────────────┐       ┌─────────────┐

│  MCP Host    │◄─────►│  MCP Client │◄─────►│  MCP Server │

│ (AI应用/IDE) │       │  (协议层)    │       │  (工具提供者) │

└─────────────┘       └─────────────┘       └─────────────┘

```

- **MCP Host**:宿主应用,如Claude Desktop、Cursor、VS Code等

- **MCP Client**:负责与Server建立连接、发送请求

- **MCP Server**:对外暴露具体能力(工具、资源、提示词)

### 1.2 三大核心能力

| 能力 | 说明 | 示例 |

|------|------|------|

| **Tools** | 可被LLM调用的函数 | 查询数据库、发送邮件、调用API |

| **Resources** | 可被读取的上下文数据 | 文件内容、数据库记录 |

| **Prompts** | 预定义的提示词模板 | 代码审查模板、翻译模板 |

---

## 二、快速上手:用Python实现一个MCP Server

### 2.1 环境准备

```bash

# 安装uv(Python包管理器)

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

# 创建项目

uv init my-mcp-server

cd my-mcp-server

# 安装MCP SDK

uv add "mcp[cli]"

```

### 2.2 编写MCP Server

创建 `server.py`:

```python

from mcp.server.fastmcp import FastMCP

# 创建MCP Server实例

mcp = FastMCP(

    name="my-tools",

    version="1.0.0"

)


 

# 定义一个工具:查询天气

@mcp.tool()

async def get_weather(city: str) -> str:

    """查询指定城市的天气信息

    Args:

        city: 城市名称,如"北京"、"上海"

    """

    # 这里模拟返回,实际项目中可对接天气API

    weather_data = {

        "北京": "晴,25°C,空气质量良",

        "上海": "多云,22°C,东南风3级",

        "深圳": "阵雨,28°C,湿度85%",

    }

    return weather_data.get(city, f"暂不支持查询 {city} 的天气")


 

# 定义一个工具:代码格式化

@mcp.tool()

async def format_code(code: str, language: str = "python") -> str:

    """对代码进行格式化

    Args:

        code: 待格式化的代码

        language: 编程语言,默认python

    """

    if language == "python":

        try:

            import black

            return black.format_str(code, mode=black.Mode())

        except ImportError:

            return "请先安装black: pip install black"

    return f"暂不支持 {language} 的格式化"


 

# 定义一个资源:提供项目信息

@mcp.resource("info://project")

async def get_project_info() -> str:

    """返回当前项目的基本信息"""

    return """

    项目名称:My MCP Server

    版本:1.0.0

    作者:你的名字

    描述:一个示例MCP Server,演示如何暴露工具和资源

    """


 

# 启动服务

if __name__ == "__main__":

    mcp.run(transport="stdio")

```

### 2.3 配置Claude Desktop

编辑 `claude_desktop_config.json`:

```json

{

  "mcpServers": {

    "my-tools": {

      "command": "uv",

      "args": ["--directory", "/path/to/my-mcp-server", "run", "server.py"]

    }

  }

}

```

重启Claude Desktop,你就能在对话中使用自定义工具了!

---

## 三、进阶:Streamable HTTP传输方式

除了 `stdio`,MCP还支持 **Streamable HTTP** 传输,适合远程部署:

```python

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("remote-tools")

@mcp.tool()

async def search_docs(query: str) -> str:

    """搜索文档"""

    return f"搜索结果: {query} 相关文档共3篇..."

if __name__ == "__main__":

    # 使用HTTP传输,监听8080端口

    mcp.run(transport="streamable-http", host="0.0.0.0", port=8080)

```

客户端连接:

```json

{

  "mcpServers": {

    "remote-tools": {

      "url": "http://your-server:8080/mcp"

    }

  }

}

```

---

## 四、MCP生态现状

截至目前,MCP生态已经非常丰富:

| 类别 | 代表项目 |

|------|---------|

| **数据库** | PostgreSQL、MySQL、SQLite、Redis |

| **开发工具** | GitHub、GitLab、Jira、Linear |

| **文件系统** | 本地文件、Google Drive、S3 |

| **搜索** | Brave Search、Tavily、Perplexity |

| **通讯** | Slack、Discord、邮件 |

| **云服务** | AWS、GCP、Azure |

> 💡 **推荐**:去 [mcp.so](https://mcp.so) 或 [Smithery](https://smithery.ai) 浏览更多MCP Server。

---

## 五、常见问题

### Q1: MCP和Function Calling有什么区别?

| 对比项 | Function Calling | MCP |

|--------|-----------------|-----|

| 标准化 | 各厂商各实现 | 统一开放协议 |

| 复用性 | 绑定特定模型 | 跨模型、跨应用 |

| 能力范围 | 仅工具调用 | 工具+资源+提示词 |

| 生态 | 碎片化 | 统一生态 |

### Q2: MCP Server只能用Python写吗?

不是!官方SDK支持:

- **Python**:`mcp[cli]`

- **TypeScript/Node.js**:`@modelcontextprotocol/sdk`

- **Java/Kotlin**、**Go**、**Rust** 等社区SDK也在快速发展

### Q3: 安全性如何保障?

- MCP Server运行在本地,数据不经过第三方

- 支持OAuth 2.1认证

- 工具调用需要用户确认(可配置)

---

## 六、总结

MCP协议正在快速成为AI Agent领域的 **"USB标准"**。掌握MCP意味着:

1. ✅ 你能为任意AI应用扩展能力

2. ✅ 你的工具可以被所有支持MCP的Host复用

3. ✅ 你站在了AI Agent开发的前沿

**动手试试吧!** 从上面的示例开始,5分钟就能跑通你的第一个MCP Server。

---

> 📌 **觉得有帮助?点赞👍 + 收藏⭐ + 关注,持续分享AI开发干货!**

>

> 💬 评论区聊聊:你在用MCP做什么项目?

---

**标签**:`MCP` `AI Agent` `大模型` `Claude` `工具调用` `Python` `LLM`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值