【干货】MCP+AI Agent 保姆级实战教程:从入门到精通
【干货】MCP+AI Agent 保姆级实战教程:从入门到精通
本文将系统介绍模型上下文协议(MCP)与AI Agent的核心概念,手把手演示如何用Python搭建MCP Server并在VSCode中调用,再结合轻量级Agent框架Smolagents实现集成调用,最后分享提升开发效率的进阶技巧,助你快速掌握这一前沿技术组合。
一、MCP与AI Agent核心解析
什么是模型上下文协议(MCP)?
模型上下文协议(Model Context Protocol, MCP)是Anthropic于2024年11月开源的大模型领域关键技术,堪称连接AI与外部世界的“通用接口”:
- 定义与背景:作为开放标准协议,MCP解决了传统大模型“封闭黑箱”问题——以往模型无法直接访问实时数据库、调用API,对接新资源需重复开发。而MCP通过标准化接口,让模型能像安装插件一样连接数据库、文件系统甚至企业内网系统,大幅降低集成成本。
- 架构设计:采用“客户端-服务器”模式。以Claude Desktop为代表的大模型应用作为客户端发起请求,中间件处理协议转换与权限验证,最终由数据库服务器等具体资源节点返回结果。这一设计让模型从“文本生成器”升级为“能执行操作的智能体”,可完成查询、工具调用等复杂任务。

核心价值:
- 效率倍增:开发者无需重复编写适配代码,可减少70%以上开发工作量(例如电商平台接入实时库存查询,传统需3天,MCP模式仅需4小时)。
- 安全可控:数据访问权限由服务器端统一管理,避免敏感信息直接暴露给模型,尤其适合金融、医疗等领域。
- 扩展灵活:覆盖从本地文件分析到跨平台自动化流程,例如医院本地系统处理病历数据、企业自动生成跨系统会议纪要等。
简言之,MCP让大模型成为“连接万物的智能中枢”,为AI与现实世界的集成提供了标准化解决方案。
AI Agent的核心概念
AI Agent是能自主或半自主感知环境、处理信息、决策并执行行动以达成目标的软件实体,是AI落地的“执行层核心”。
AI Agent的核心价值:
- 提效降重:自动处理数据录入、文件分类等重复性工作,释放人力专注高价值任务(某企业客服部门引入Agent后,工单处理效率提升40%)。
- 决策增强:快速处理海量数据并识别规律,为决策者提供精准洞察(如金融领域用Agent分析市场趋势,投资决策准确率提升25%)。
- 成本优化:替代部分人工岗位,同时减少人为错误(物流行业用Agent规划路线,运输成本降低15%)。
- 个性服务:基于用户行为分析提供定制化体验(如内容平台的智能推荐Agent,用户留存率提升30%)。
- 场景拓展:从金融风控到医疗辅助诊断,持续开辟新业务领域(某医院的影像分析Agent,诊断效率提升50%)。
二、MCP与Agent融合的深层价值

如上图所示,MCP为Agent提供了“能力扩展接口”,使其能访问多元资源,同时带来三大关键价值:
- 
  职责分离:Agent专注任务调度与决策,资源访问、工具执行交由MCP Server负责,避免Agent代码与具体资源逻辑耦合(例如电商Agent只需决策“查库存”,无需关心库存数据库的类型)。 
- 
  权限可控:将AI Agent与MCP Server物理分离,便于企业内跨部门或跨企业协作时,安全授予资源使用权而不暴露底层访问能力(如A公司Agent调用B公司的客户数据MCP Server时,仅能获取统计结果而非原始数据)。 
- 
  生态扩展:企业可部署多类MCP Server(如财务数据、供应链系统、用户行为分析等),Agent能根据任务自主选择合适资源,实现“智能驱动的全流程自动化”(例如企业风控Agent可联动征信MCP Server与交易记录MCP Server,实时生成风险评估)。 
三、MCP Server开发实战
用Python搭建自定义MCP Server
环境准备
MCP Server通常依赖uv(高效Python包管理工具)运行,以下是Windows环境的安装步骤:
- PIP安装(推荐):在命令提示符/PowerShell中执行pip install uv,兼容性最佳。
- PowerShell脚本安装:执行irm https://astral.sh/uv/install.ps1 | iex,自动完成下载安装。
- Pipx安装(适合全局管理):已安装pipx的用户可执行pipx install uv,将uv隔离在独立环境中。
安装完成后,通过uv -v和uvx -v验证,输出版本号即表示成功。

项目初始化
切换到项目的目录,并在命令行下执行命令
 uv init documentation
该命 令回在指定目录下生成缺省的项目结构。
创建一个虚拟Python环境:在当前目录下执行命令
 uv venv
然后用下面命令激活虚拟环境
 .venv\Scripts\activate
安装mcp包,执行命令:
uv add "mcp[cli]"
请用同样方法安装其他库: duckduckgo-search, bs4, requests
接着把main.py修改为以下代码,简单说这段代码开发了一个MCP Server,这个Server提供了一个工具可以根据提示在指定网站上搜索特定内容的功能,不用担心代码的输入问题,所有相关代码我已经放到了Github,链接在文末。
from mcp.server.fastmcp import FastMCP
from duckduckgo_search import DDGS
from bs4 import BeautifulSoup
import requests
# Initialize FastMCP with "docs" as the name
mcp = FastMCP("docs")
# User agent string for making HTTP requests
USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
# Dictionary of documentation URLs for different frameworks
docs_urls={
	"crewai": "docs.crewai.com/introduction",
	"llamaindex": "docs.llamaindex.ai/en/stable",
	"smolagents": "huggingface.co/docs/smolagents/index",    
}
async def search_web(query: str) -> list | None:
	"""
	Perform a web search using DuckDuckGo and return the results.
	Args:
		query: The search query.
	Returns:
		list | None: A list of search results or None if the search fails.
	"""
	try:
		ddgs = DDGS()
		results = ddgs.text(query, max_results=3)  # Limit to 3 results
		return list(results)  # Convert generator to list
	except Exception as e:
		print(f"Search failed: {str(e)}")
		return None
async def fetch_url(url: str):
	"""
	Fetch the content of a given URL and return the text.
	Args:
		url: The URL to fetch.
	Returns:
		str | None: The text content of the URL or None if the fetch fails.
	"""
	try:
		response = requests.get(url, headers={"User-Agent": USER_AGENT}, timeout=30)
		soup = BeautifulSoup(response.text, "html.parser")
		return soup.get_text()
	except Exception as e:
		print(f"Fetch failed: {str(e)}")
		return None
#Tool exposed to MCP client
@mcp.tool() 
async def get_docs(query: str, framework: str):
	"""
	Search the docs of a specified framework for a given query and return the top 3 results.
	Args:
		query: The query to search for.
		framework: The framework to search for (crewai, llamaindex, or smolagents).
	Returns:
		str: Text from the docs or an error message if the framework is not supported.
	"""
	if framework not in docs_urls:
		return f"Framework {framework} not supported"
	query = f"{query} site:{docs_urls[framework]}"
	results = await search_web(query)
	if not results:
		return "No results found"
	text = ""
	for result in results:
		text += await fetch_url(result["href"])
	return text
if __name__ == "__main__":
	mcp.run(transport="stdio")
MCP Server完成以后,通常就可以通过MCP Client来调用了,下面演示如何用VSCode+Cline插件调用,我的习惯一般是Cline可以正常使用后,再给自己写的Agent调用。要在VSCode里使用Cline,你需要先安装这个插件,步骤如下图,不赘述:

  在Cline里配置MCP Server
按照下面的顺序1,2打开配置文件,在3加入下面的代码后保存

{
  "mcpServers": {
    "get-docs": {
      "command": "uv",
      "args": [
        "--directory",
        "D:/01Projects/MCP/documentation",
        "run",
        "main.py"
      ],
    }
  }
}
注意代码里面这部分要修改为你自己的路径
D:/01Projects/MCP/documentation”
保存后可以看到如下变化,表示MCP Server成功配置,点击4(Done)完成
测试MCP Server
在输入框中输入一段话,比如“search docs for how to implement multi-agents with llamaindex” (你也可以用中文), 大语言模型会被调用并自动决定使用get-docs来获取内容,而且参数都根据输入的内容准备好了,如下图:
  注意:感叹号的地方需要你预先配置好了需要调用的LLM,我这里使用的是免费的硅基流动的额度,你也可以换成其他的付费或者免费API,如果你本地机器够强悍,在本地用ollma或者LM_Studio这里也是支持的,具体请参考对应的文档来设置。
四、AI Agent调用MCP Server
以轻量级框架Smolagents为例,实现Agent对MCP Server的自动化调用。
代码实现(my_agent.py)
from smolagents import ToolCollection, CodeAgent, OpenAIServerModel
from mcp import StdioServerParameters
# Define API parameters for the OpenAI-compatible server
API_BASE = "http://127.0.0.1:1234/v1"
API_KEY = "sk-whatever"
MODEL_ID = "qwen-2.5-coder-14b-instruct"
# Initialize the OpenAIServerModel with specified parameters
model = OpenAIServerModel(
    api_base=API_BASE,
    api_key=API_KEY,
    model_id=MODEL_ID,
)
# Set up server parameters for the MCP Server
server_parameters = StdioServerParameters(
    command="uv",
    args=[
        "--directory",
        "D:/01Projects/MCP/documentation",
        "run",
        "main.py"
    ],
)
# Create a ToolCollection from the MCP server parameters and use it to initialize a CodeAgent
with ToolCollection.from_mcp(server_parameters) as tool_collection:
    agent = CodeAgent(model=model,tools=[*tool_collection.tools], add_base_tools=True)
    # Run the agent with a specific task
    agent.run("Search docs for how to implement multi-agents with llamaindex")
关键说明
- 需额外安装依赖:uv add smolagents[mcp, openai];
- 替换API_BASE、API_KEY等参数为实际配置;
- 运行后,Agent会自动解析任务、调用MCP Server,并返回处理结果(可通过日志查看调用过程)。
五、进阶技巧与最佳实践
MCP Server调试工具
利用MCP Inspector可视化调试:
- 安装Node.js(确保npm可用); 
- 项目目录执行命令:npx @modelcontextprotocol/inspector uv run main.py;
- 浏览器访问http://localhost:5173,输入参数即可调试工具调用流程。
多MCP Server协同调用
当需要访问多个资源时,可通过工具集组合实现:
from smolagents import ToolCollection, CodeAgent, OpenAIServerModel
from mcp import StdioServerParameters
# Define API parameters for the OpenAI-compatible server
API_BASE = "http://127.0.0.1:1234/v1"
API_KEY = "sk-whatever"
MODEL_ID = "qwen-2.5-coder-14b-instruct"
# Initialize the OpenAIServerModel with specified parameters
model = OpenAIServerModel(
    api_base=API_BASE,
    api_key=API_KEY,
    model_id=MODEL_ID,
)
#MCP server 1
server_1= StdioServerParameters(
    command="uv",
    args=[
        "--directory",
        "D:/01Projects/MCP/documentation",
        "run",
        "main.py"
    ],
)
#MCP server 2
server_2= StdioServerParameters(
    command="uv",
    args=[
        "--directory",
        "D:/01Projects/MCP/credit-risk",
        "run",
        "credit-risk.py"
    ],
)
# Use the ToolCollection to create tool sets from MCP servers
with ToolCollection.from_mcp(server_1) as tool_collection1, \
     ToolCollection.from_mcp(server_2) as tool_collection2:
    # Combine tools from both collections into a single list
    combined_tools = list(tool_collection1.tools) + list(tool_collection2.tools)
    # Initialize a CodeAgent with the model and combined tools
    agent = CodeAgent(model=model, tools=combined_tools, add_base_tools=False)
    # Run the agent with a specific query about the credit risk dataset
    agent.run("get me columns of the credit risk dataset, and tell me how many columns are there")
性能优化技巧
- 连接池设置:在MCP Server中配置HTTP连接池(如requests.Session),减少重复建立连接的开销;
- 结果缓存:对高频查询结果进行本地缓存(如用functools.lru_cache),降低重复调用成本;
- 异步处理:优先使用异步IO(如aiohttp替代requests),提升并发处理能力。
六、总结与注意事项
本文通过实战案例,完整演示了MCP Server的开发、VSCode调用、Smolagents集成,以及多Server协同等进阶技巧。核心价值在于:通过MCP标准化接口,让AI Agent能安全、高效地访问多元资源,为企业级AI应用提供了可扩展的技术框架。
成本提示:网页内容抓取与分析对Token消耗较大(测试中两次简单查询消耗43万Token),建议在生产环境中使用私有部署的LLM,或通过结果缓存、批量处理等方式优化成本。
未来,随着MCP生态的完善,AI Agent将能更无缝地对接现实世界的资源与工具,推动自动化流程从“单一任务”向“全链路智能”演进。
七、如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】


八、为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。


九、大模型入门到实战全套学习大礼包
1、大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

2、大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

3、AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

4、大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

5、大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

适用人群

第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

 
 为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。
更多推荐


所有评论(0)