当AI学会了"打电话":MCP协议如何重塑Agent生态
大家好,我是摘星。今天我们来聊聊一个正在悄悄改变AI行业格局的东西------MCP协议。
你没听错,不是那个卖显卡的NVIDIA,也不是什么发布会上的黑科技。而是一个看起来非常底层的通信协议,正在让AI从"单体智能"向"群体协作"进化。
过去一年,我见过太多团队在玩命做Agent:调Prompt、搭工作流、加记忆模块。但很多人遇到一个共同的瓶颈------Agent之间互相"听不懂"。做好的工具没法复用,接入新服务要重写一堆代码,不同厂商的模型各说各话。
MCP(Model Context Protocol)就是来解决这个问题的。它的野心不大,也就是------让任何AI Agent能无缝调用任何工具、访问任何数据源、跟任何其他Agent对话。就像USB之于硬件设备一样,MCP想要成为AI世界的"万能接口"。
这篇文章,我会从协议原理、核心架构、实操指南几个维度把MCP彻底拆解清楚。不管你是正在搭Agent系统的工程师,还是对AI应用感兴趣的产品经理,看完都会有收获。
一、MCP是什么------理解协议的底层逻辑
1.1 问题的起点:为什么AI Agent需要自己的"语言"
在聊MCP之前,我们先搞清楚一件事:为什么这个协议会出现在2024年,而不是更早?
答案很简单------因为2024年是Agent爆发的元年。当AI模型能力足够强之后,大家开始不满足于"问一个问题等一个回答"的交互方式,而是想让AI能做更多:自动执行任务、调用多个工具、跨系统协作。
但问题随之而来。每个团队、每个平台、每个模型都在定义自己的工具调用方式:
- OpenAI用Function Calling定义了工具调用的结构
- Anthropic用Tool Use做了类似的事情,但格式完全不同
- Google的Agent Development Kit又是另一套体系
- 各种LangChain、Hugging Face的生态各自有自己的工具注册机制
结果是:你在一个平台开发好的Agent,换到另一个环境几乎要重写。工具没法复用,经验没法积累,整个行业在重复造轮子。
MCP的出现,就是想成为这个"通用语言"。它的设计目标非常明确:
让任何MCP兼容的客户端(如Claude、Cursor、Cline)能够连接任何MCP兼容的服务器(如GitHub、Slack、数据库),实现工具调用和数据访问的标准化。
听起来有点像当年的USB------USB出现之前,鼠标、键盘、打印机各用各的接口,互相不兼容。USB统一了物理接口和通信协议,从此设备可以热插拔、互相兼容。
MCP正是想做AI世界的USB。
1.2 协议架构:客户端-服务器模型
MCP采用经典的客户端-服务器(Client-Server)架构,但跟我们传统理解的不太一样。
在整个MCP生态中,有三个核心角色:
1. MCP Host(主机)
这是用户直接交互的AI应用,比如Claude Desktop、Cursor IDE、Cline插件。Host负责:
- 维护与用户的对话上下文
- 协调多个工具的调用顺序
- 把结果整合后返回给用户
2. MCP Client(客户端)
嵌入在Host内部的一个组件,负责与MCP Server建立连接、管理会话、转发请求。简单理解:Client是Host的"通信官",专门负责跟外部服务打交道。
3. MCP Server(服务器)
每个外部服务(如GitHub、Slack、你的数据库)都会运行一个MCP Server。这个Server封装了该服务的API,暴露出一组标准化的工具(Tools)和资源(Resources)。
┌─────────────────────────────────────────────────────────┐
│ MCP Host │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ User Chat │ │ MCP Client │ │
│ └──────────────┘ └────────┬─────────┘ │
└────────────────────────────────────────┼──────────────┘
│
┌────────────────────────────────┼────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ MCP Server │ │ MCP Server │ │ MCP Server │
│ (GitHub) │ │ (Slack) │ │ (Database) │
└───────────────┘ └───────────────┘ └───────────────┘
在这个架构下,Host不需要知道每个服务的具体实现细节。它只需要通过MCP Client发送标准化的请求,Server返回标准化的结果。
举一个具体的场景:
你想让Claude帮你查询GitHub上某个仓库的issue数量,并自动发一条Slack消息给团队。
没有MCP的话,这需要:GitHub API + Slack API + 复杂的错误处理逻辑。
有了MCP,Claude(Host)只需要调用两个工具:
tools.call({
name: "github_search_repositories",
input: { query: "anthropic/mcp", per_page: 5 }
})
tools.call({
name: "slack_chat_postMessage",
input: { channel: "#team-updates", text: "..." }
})
具体的API调用细节,全部封装在各自的MCP Server里。Claude不需要关心GitHub怎么认证、Slack怎么发消息,它只管调用工具、处理结果。
1.3 三类核心能力:Tools、Resources、Prompts
MCP协议定义了三种核心能力,让Server能向Client暴露不同类型的功能:
Tools(工具)
这是最常用的能力。工具代表Agent可以执行的操作,比如"搜索GitHub"、"发送Slack消息"、"查询数据库"。
工具的定义格式:
json
{
"name": "github_create_issue",
"description": "在仓库中创建一个新的Issue",
"inputSchema": {
"type": "object",
"properties": {
"owner": { "type": "string" },
"repo": { "type": "string" },
"title": { "type": "string" },
"body": { "type": "string" },
"labels": { "type": "array", "items": { "type": "string" } }
},
"required": ["owner", "repo", "title"]
}
}
Resources(资源)
资源代表Server可以提供的数据访问能力。比如一个数据库MCP Server可以暴露"查询用户表"作为资源,一个文件系统MCP Server可以暴露"读取某目录下的文件列表"作为资源。
资源与工具的区别在于:工具是"执行操作",资源是"读取数据"。资源通常用于检索信息,不会产生副作用。
json
{
"uri": "file:///home/user/projects",
"name": "user_projects",
"description": "用户项目目录的文件列表"
}
Prompts(提示模板)
这是MCP 0.9+引入的新能力。Server可以预先定义一些提示模板,让Client可以直接使用。比如一个GitHub MCP Server可能提供这样的提示模板:
json
{
"name": "review_recent_prs",
"description": "审查某个仓库最近合并的PR",
"arguments": [
{ "name": "repo", "description": "仓库名称", "required": true },
{ "name": "days", "description": "查看最近几天的PR", "required": false }
]
}
这个设计非常聪明------它把领域知识沉淀在Server端。不同的MCP Server可以提供自己垂直领域的专业提示模板,Client直接复用,而不用每次都让大模型从头生成。
二、为什么科技巨头都在押注MCP
2.1 2025-2026:MCP生态的爆发
MCP最早由Anthropic在2024年11月提出,当时并没有引起太多关注。但进入2025年后,整个态势发生了戏剧性的变化。
2025年3月,Anthropic发布了 Claude 3.5 和 Computer Use功能,展示了AI操控电脑的能力。这个功能的核心就是基于MCP协议------Claude通过MCP Server访问文件系统、浏览器、终端,实现了"AI像人一样操作电脑"。
紧接着,Google、OpenAI、Microsoft开始跟进:
- Google:在Vertex AI和Gemini API中支持MCP,发布了一系列官方MCP Server
- OpenAI:在ChatGPT和Agent SDK中集成MCP协议,Workbench工具支持MCP连接
- Microsoft:Copilot Studio支持MCP,Azure AI Agent Service原生支持MCP
到了2026年,MCP已经成为事实上的行业标准。根据Anthropic的官方数据(截至2026年Q1),全球已有超过5000个MCP Server公开可用,覆盖GitHub、Slack、Salesforce、Notion、Google Drive、PostgreSQL等主流服务。
这个数字意味着什么?意味着任何MCP兼容的AI应用,可以立即访问数千个已有的服务集成,而不需要从头开发适配器。
2.2 开发者用脚投票:MCP解决了什么痛点
科技巨头的支持固然重要,但真正让MCP快速普及的,是开发者的真实需求。
让我们梳理一下在MCP出现之前,开发一个多工具Agent会遇到什么问题:
痛点1:每个工具要单独适配
假设你要让Agent同时调用GitHub API、Google Calendar和Slack API。每一个都需要:
- 研究该平台的API文档
- 编写认证代码(OAuth/API Key)
- 处理API的异常情况
- 维护代码更新(API版本变化)
如果还有新的工具要接入,又是新一轮重复劳动。
痛点2:跨Agent协作几乎不可能
如果你有两个Agent------一个负责代码审查,一个负责缺陷跟踪------它们之间想协作,需要写一堆胶水代码来让它们"对话"。没有标准协议,Agent之间就像说不同语言的人,没法直接交流。
痛点3:经验不可复用
你花了两个月开发的GitHub工具集成,换一个AI平台就要重写。之前踩过的坑、积累的配置经验,全部作废。
MCP解决这三个问题的方式很优雅:
- 标准化工具定义:所有工具都用同样的JSON Schema描述,Client只需要一种解析逻辑
- 可组合性:多个MCP Server可以同时连接到一个Client,形成工具矩阵
- 生态积累:一个平台开发好的MCP Server,可以被任何MCP Client复用
这就解释了为什么开发者用脚投票------MCP真的让开发效率产生了量级上的提升。
2.3 竞争格局:谁在主导MCP生态
虽然MCP是Anthropic发起的,但整个生态已经形成了多极竞争格局:
Anthropic:生态守护者
Anthropic的角色更像是MCP协议的维护者和推广者。他们主导协议的标准制定,提供官方Claude Desktop客户端,并维护一批核心MCP Server(filesystem、git等)。
Google:企业市场推手
Google把MCP集成到Vertex AI和企业AI平台,主打B2B市场。Google的优势在于云基础设施和企业客户资源,这帮助MCP进入了大型组织。
Cloudflare:开发者体验优化
Cloudflare在2025年推出了MCP Gateway服务,让开发者可以快速部署和管理MCP Server,并提供本地开发调试工具。这个定位很清晰------做开发者工具链。
独立MCP Server提供商
除了巨头,很多独立团队也在发布MCP Server。比如Supabase发布了PostgreSQL MCP Server,Snowflake发布了数据仓库MCP Server。这些垂直领域的专业Server,填补了官方支持的空白。
三、手把手搭建你的第一个MCP Agent
3.1 环境准备:安装MCP SDK
MCP协议有多种语言的SDK,最成熟的是TypeScript/Python。我们以Python为例,看看如何在10分钟内跑通一个MCP Server。
bash
# 创建项目目录
mkdir my-mcp-server && cd my-mcp-server
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装MCP SDK
pip install mcp
# 安装FastMCP(简化Server开发的框架)
pip install fastmcp
FastMCP是一个社区主流框架,它在原生MCP SDK基础上封装了更友好的API,让你不需要处理复杂的协议细节。
3.2 编写你的第一个MCP Server
假设我们想做一个"天气查询MCP Server",让AI可以查询各城市的天气。
python
from fastmcp import FastMCP
# 初始化FastMCP实例
mcp = FastMCP("Weather Service")
# 模拟天气数据(实际项目中会调用外部API)
WEATHER_DATA = {
"北京": {"temp": 22, "condition": "晴", "humidity": 45},
"上海": {"temp": 25, "condition": "多云", "humidity": 60},
"深圳": {"temp": 28, "condition": "阵雨", "humidity": 75},
}
@mcp.tool()
def get_weather(city: str) -> dict:
"""
查询指定城市的天气信息
Args:
city: 城市名称,如"北京"、"上海"
Returns:
包含温度、天气状况、湿度信息的字典
注意:
- 城市名称需要准确,输入"广州市"不会匹配到"深圳"
- 部分小城市可能没有数据,返回结果中会包含error字段
"""
if city not in WEATHER_DATA:
return {
"error": f"未找到城市'{city}'的天气数据",
"available_cities": list(WEATHER_DATA.keys())
}
data = WEATHER_DATA[city]
return {
"city": city,
"temperature": f"{data['temp']}°C",
"condition": data['condition'],
"humidity": f"{data['humidity']}%"
}
@mcp.tool()
def get_weather_forecast(city: str, days: int = 3) -> list:
"""
查询指定城市未来多天的天气预报
Args:
city: 城市名称
days: 预报天数,1-7之间,默认为3天
Returns:
每天的天气预报列表
"""
if city not in WEATHER_DATA:
return [{"error": f"未找到城市'{city}'的数据"}]
# 简化逻辑:假设每天天气略有变化
base = WEATHER_DATA[city]
forecast = []
conditions = ["晴", "多云", "阵雨", "阴", "晴"]
for i in range(min(days, 7)):
forecast.append({
"day": i + 1,
"temperature": f"{base['temp'] + (i % 3 - 1) * 2}°C",
"condition": conditions[i % len(conditions)]
})
return forecast
if __name__ == "__main__":
# 启动MCP Server,监听stdio
# stdio模式让Server可以通过标准输入输出与Client通信
mcp.run(transport="stdio")
保存为 weather_server.py,运行测试:
bash
python weather_server.py
如果一切正常,你会看到Server启动并等待输入。这个Server已经可以通过MCP协议被任何MCP Client调用了。
3.3 在Claude Desktop中配置MCP
让Claude Desktop连接我们的天气Server,需要修改配置文件。
macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
Windows : %APPDATA%\Claude\claude_desktop_config.json
json
{
"mcpServers": {
"weather-service": {
"command": "python",
"args": ["D:/path/to/weather_server.py"],
"env": {}
}
}
}
重启Claude Desktop后,在设置中应该能看到MCP Servers标签页显示"weather-service"已连接。
现在,你可以在Claude的对话中直接使用天气工具:
用户:深圳后天会下雨吗?
(Claude会自动调用get_weather_forecast工具,返回:
day 1: 28°C, 阵雨
day 2: 26°C, 多云
day 3: 27°C, 晴)
根据预报,深圳后天是多云天气,不会下雨。不过天气预报存在不确定性,建议出行前再确认一下。
3.4 进阶:用MCP连接真实外部服务
上面是一个简单的示例,实际开发中你需要调用真实API。假设我们要做一个GitHub MCP Server,核心逻辑如下:
python
from fastmcp import FastMCP
import requests
mcp = FastMCP("GitHub Integration")
# GitHub API基础配置
GITHUB_API = "https://api.github.com"
HEADERS = {
"Accept": "application/vnd.github.v3+json"
}
def _get_auth_header():
"""获取认证头,支持Personal Access Token"""
token = os.environ.get("GITHUB_TOKEN", "")
if token:
return {**HEADERS, "Authorization": f"Bearer {token}"}
return HEADERS
@mcp.tool()
def search_repositories(
query: str,
language: str = None,
per_page: int = 5
) -> list:
"""
搜索GitHub仓库
Args:
query: 搜索关键词,支持高级语法如 "language:python stars:>1000"
language: 编程语言筛选,如 "python", "javascript"
per_page: 返回结果数量,默认5
返回:
仓库信息列表,包含名称、描述、星标数、URL
"""
params = {"q": query}
if language:
params["q"] += f" language:{language}"
response = requests.get(
f"{GITHUB_API}/search/repositories",
headers=_get_auth_header(),
params={**params, "per_page": per_page}
)
response.raise_for_status()
items = response.json().get("items", [])
return [{
"name": repo["full_name"],
"description": repo["description"],
"stars": repo["stargazers_count"],
"url": repo["html_url"],
"language": repo.get("language", "Unknown")
} for repo in items]
@mcp.tool()
def create_issue(
owner: str,
repo: str,
title: str,
body: str = "",
labels: list = None
) -> dict:
"""
在指定仓库创建一个Issue
Args:
owner: 仓库所有者(用户名或组织名)
repo: 仓库名称
title: Issue标题,必填
body: Issue正文,支持Markdown
labels: 标签列表,如 ["bug", "help wanted"]
返回:
创建成功的Issue信息,包含编号和URL
注意:
- 需要GitHub Token才能创建Issue
- 标签名称必须已在仓库中存在
"""
payload = {"title": title, "body": body}
if labels:
payload["labels"] = labels
response = requests.post(
f"{GITHUB_API}/repos/{owner}/{repo}/issues",
headers=_get_auth_header(),
json=payload
)
response.raise_for_status()
issue = response.json()
return {
"number": issue["number"],
"title": issue["title"],
"url": issue["html_url"],
"state": issue["state"]
}
@mcp.resource("repo://{owner}/{repo}/readme")
def get_repo_readme(owner: str, repo: str) -> str:
"""
获取仓库的README内容
这个resource使用URI模板,支持路径参数
调用方可以用 repo://anthropic/claude-desktop/readme 获取内容
"""
response = requests.get(
f"{GITHUB_API}/repos/{owner}/{repo}/readme",
headers=_get_auth_header()
)
response.raise_for_status()
import base64
content = response.json()["content"]
# README是base64编码的,需要解码
return base64.b64decode(content).decode("utf-8")
if __name__ == "__main__":
mcp.run(transport="stdio")
这个GitHub MCP Server暴露了三个核心能力:
- 搜索仓库(工具)
- 创建Issue(工具)
- 读取README(资源)
如果你在Claude Desktop中配置了这个Server,就可以这样使用:
用户:帮我找找最近热门的Python AI项目,要1000星以上的
(Claude调用search_repositories,返回项目列表)
用户:给anthropic/claude-desktop仓库提一个Issue,反映MCP Server启动失败的问题
(Claude调用create_issue,自动填充title和body)
整个过程不需要你知道GitHub API怎么调用、大模型怎么生成符合API格式的请求------MCP协议帮你屏蔽了这些细节。
四、MCP架构深度解析
4.1 通信协议:JSON-RPC over stdio/SSE
MCP的通信层设计非常务实。它支持两种传输方式:
stdio模式(标准输入输出)
这是最常用的模式,特别适合本地开发和调试。Client和Server通过stdin/stdout进行JSON-RPC通信:
Client → Server: {"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}
Server → Client: {"jsonrpc": "2.0", "id": 1, "result": {"tools": [...]}}
stdio模式的优点是简单、隔离、易于调试。你只需要关注输入输出,不需要处理网络协议。
SSE模式(Server-Sent Events)
这种方式适合需要Server主动推送场景。比如一个实时监控MCP Server,需要在检测到异常时主动通知Client。
python
# 在FastMCP中切换到SSE模式
mcp.run(transport="sse", port=8080)
Client通过HTTP GET请求连接到SSE端点,Server通过同一个连接推送事件。这种模式适合长连接场景,但配置相对复杂。
4.2 消息类型:请求、响应、通知
MCP协议定义了三种消息类型:
请求(Request)
需要对方回复的消息,带id字段:
json
{
"jsonrpc": "2.0",
"id": 42,
"method": "tools/call",
"params": {
"name": "get_weather",
"arguments": {"city": "北京"}
}
}
对应的响应:
json
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"content": [
{"type": "text", "text": "北京天气:22°C,晴"}
]
}
}
响应(Response)
回答请求的消息,包含与请求相同的id。
通知(Notification)
不需要回复的消息,没有id字段。比如:
json
{
"jsonrpc": "2.0",
"method": "initialized",
"params": {}
}
这是一个初始化完成的通知,发送后不需要对方回复。
4.3 安全模型:认证与权限控制
MCP在安全设计上考虑了企业级需求:
认证机制
MCP支持多种认证方式:
- API Key:最简单,适合内部服务
- OAuth 2.0:适合需要用户授权的场景
- JWT Token:适合高安全要求的场景
权限控制
Server可以定义细粒度的权限控制。比如一个数据库MCP Server可能只允许Client读取数据,不允许写入:
json
{
"name": "query_users",
"description": "查询用户表",
"access": "read-only"
}
Client在连接时需要声明自己需要的权限,Server可以拒绝权限不足的请求。
沙箱隔离
每个MCP Server运行在独立的进程中,即使某个Server被攻击,也不会影响其他Server或Host的安全。
五、MCP生态现状与未来展望
5.1 2026年MCP生态全景图
根据最新数据(截至2026年5月),MCP生态已经形成了一个完整的工具链:
官方维护的MCP Servers(约50+个):
- 文件系统(filesystem)
- Git操作(git)
- 浏览器自动化(browser)
- 终端操作(terminal)
社区Servers(5000+个):
- GitHub、GitLab、Notion、Slack、Salesforce等主流服务
- PostgreSQL、MySQL、MongoDB等数据库
- AWS、Azure、GCP云服务
- 各种垂直领域工具
MCP Client支持:
- Claude Desktop(原生支持)
- Cursor IDE(通过插件)
- Cline(开源AI编程插件)
- Continue(开源VSCode插件)
- Zed(新一代编辑器)
5.2 表格:主流MCP Server对比
| MCP Server | 提供方 | 工具数量 | 认证方式 | 适用场景 |
|---|---|---|---|---|
| GitHub | 官方 | 12 | PAT/OAuth | 代码仓库管理 |
| PostgreSQL | Supabase | 6 | 连接字符串 | 数据库查询 |
| Slack | 社区 | 8 | Bot Token | 团队协作 |
| Filesystem | Anthropic | 5 | 无 | 本地文件操作 |
| Browser | Anthropic | 6 | 无 | 网页自动化 |
5.3 未来发展趋势
根据我的观察,MCP生态正在朝以下几个方向演进:
趋势1:从工具调用到工作流编排
目前的MCP主要解决"单次工具调用"的问题。但下一波热点会是"多步骤工作流"的标准化。想象一下,你告诉Claude"帮我分析竞品A的GitHub活跃度,然后生成报告发到Slack",这个复杂的跨系统操作能被标准化地编排执行。
趋势2:MCP Hub的出现
随着MCP Server数量爆炸,开发者需要一个"MCP应用商店"来发现、测试、部署Server。Anthropic已经推出了官方的MCP Registry,第三方平台也在涌现。
趋势3:企业级安全标准
MCP协议会引入更完善的安全标准,包括:
- 细粒度的权限审批流程
- 操作审计日志
- 敏感数据脱敏
- 跨组织MCP Server的信任验证
趋势4:多Agent协作协议
这是最令我兴奋的方向。当多个Agent需要协作时,MCP可能会扩展出"Agent间通信"的协议标准。比如一个"代码审查Agent"发现bug后,自动派发给"缺陷跟踪Agent"创建任务------这类跨Agent协作会催生新的协议层。
六、常见问题与避坑指南
6.1 为什么我的MCP Server连接失败?
这是最常见的问题,通常有几个原因:
Python路径问题
Windows上,如果你用完整路径运行Python,需要确保路径格式正确:
json
{
"command": "D:/Python39/python.exe",
"args": ["D:/projects/my-mcp-server/server.py"]
}
注意:Windows路径要用正斜杠 /,不要用反斜杠 \。
环境变量未传递
如果Server需要环境变量(如GitHub Token),需要在配置中显式传入:
json
{
"command": "python",
"args": ["server.py"],
"env": {
"GITHUB_TOKEN": "your-token-here",
"LOG_LEVEL": "DEBUG"
}
}
传输模式不匹配
默认是stdio模式,如果你改用SSE,Client配置也要相应调整。
6.2 如何调试MCP Server?
方法1:使用MCP Inspector
MCP官方提供了一个调试工具,可以单独测试Server:
bash
npx @anthropic-ai/mcp-inspector
# 或Python版本
pip install mcp[inspector]
python -m mcp.server.stdio
方法2:添加日志
在Server代码中加入结构化日志,方便追踪请求流程:
python
import logging
logging.basicConfig(level=logging.DEBUG)
@mcp.tool()
def my_tool(arg1: str):
logging.info(f"Called with arg1={arg1}")
# ... 执行逻辑
logging.info("Tool execution completed")
6.3 MCP和Function Calling有什么区别?
这是很多人会问的问题。简单来说:
- Function Calling:是模型层面的能力,让大模型知道"什么时候该调用什么工具"。它是模型决定的,不是协议。
- MCP:是通信层面的协议,定义工具如何被发现、如何被调用、结果如何返回。它跟具体模型无关。
关系是:MCP Server暴露的工具,可以通过MCP Client被大模型使用,大模型通过Function Calling决定调用哪个工具。
打个比方:Function Calling是大脑的"决策能力",MCP是"手"的执行能力。两者配合才能完成完整的工作。
总结
MCP协议的本质,是把AI Agent的"工具调用"从定制化变成了标准化。它的出现让AI从单点能力释放,进入到生态协作的时代。
这篇文章我们从协议原理、核心架构、实操指南、竞品生态几个角度全面拆解了MCP。希望你现在对MCP是什么、为什么重要、怎么用有了清晰的理解。
最后留几个思考题给大家:
- 如果你要开发一个垂直领域的MCP Server,你会选择什么场景?需要提供哪些工具?
- MCP生态的繁荣,会不会催生"MCP集成工程师"这个新岗位?
- 当MCP让工具调用变得无处不在时,AI应用开发者需要构建什么样的差异化能力?
我是摘星,这篇文章就到这里。如果对你有帮助,欢迎分享给需要的朋友。我们下期再见。