5分钟上手mcp-agent:从安装到运行你的第一个AI代理
你还在为构建AI代理(Agent)时的复杂配置和多工具集成而头疼吗?本文将带你快速上手mcp-agent,通过简单几步即可搭建并运行你的第一个AI代理,无需深入技术细节,让你轻松体验AI代理的强大功能。读完本文,你将掌握mcp-agent的安装方法、项目初始化流程、配置文件设置以及如何运行和调试你的第一个AI代理。
准备工作
在开始之前,请确保你的环境满足以下要求:
- Python 3.10+:mcp-agent基于Python开发,需要Python 3.10或更高版本。
- Node.js(可选):部分MCP服务器(如文件系统服务器)通过npx分发,需要Node.js环境。
安装mcp-agent
使用uvx快速运行CLI
你可以使用uvx工具在不全局安装的情况下直接运行mcp-agent命令,这对于快速试用非常方便:
uvx mcp-agent --version
首次运行时,uvx会将mcp-agent包下载到缓存中,后续运行将瞬间启动。
在项目中添加mcp-agent
如果你希望在项目中集成mcp-agent,可以按照以下步骤进行:
- 创建项目文件夹并进入:
mkdir mcp-agent-demo
cd mcp-agent-demo
- 使用uv初始化项目并添加mcp-agent依赖:
uv init
uv add mcp-agent
如果你习惯使用pip,可以执行:
pip install mcp-agent
安装LLM提供商扩展(可选)
mcp-agent支持多种LLM提供商,你可以根据需要安装相应的扩展:
- OpenAI:
uv add "mcp-agent[openai]"或pip install "mcp-agent[openai]" - Anthropic:
uv add "mcp-agent[anthropic]" - Azure OpenAI:
uv add "mcp-agent[azure]" - AWS Bedrock:
uv add "mcp-agent[bedrock]" - Google Gemini:
uv add "mcp-agent[google]"
如果你需要支持所有提供商,可以执行:
uv add "mcp-agent[openai,anthropic,azure,bedrock,google]"
初始化项目
完成安装后,我们需要初始化一个mcp-agent项目。在项目文件夹中执行以下命令:
uvx mcp-agent init
该命令会生成项目所需的基本文件结构,包括配置文件和示例代码。初始化完成后,你的项目文件夹中会包含以下关键文件:
mcp_agent.config.yaml:mcp-agent的配置文件mcp_agent.secrets.yaml.example:密钥配置示例文件main.py:主程序文件
配置你的AI代理
修改配置文件
首先,将密钥配置示例文件复制为正式的密钥配置文件:
cp mcp_agent.secrets.yaml.example mcp_agent.secrets.yaml
然后,编辑mcp_agent.secrets.yaml文件,添加你的LLM提供商API密钥。以OpenAI为例:
openai:
api_key: "你的OpenAI API密钥"
接下来,编辑mcp_agent.config.yaml文件,配置执行引擎和MCP服务器:
execution_engine: asyncio
logger:
transports: [console]
level: info
mcp:
servers:
fetch:
command: "uvx"
args: ["mcp-server-fetch"]
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem"]
openai:
default_model: gpt-4o-mini
了解项目结构
初始化后的项目结构如下:
mcp-agent-demo/
├── mcp_agent.config.yaml
├── mcp_agent.secrets.yaml
├── main.py
├── pyproject.toml
└── uv.lock
其中,main.py是我们实现AI代理逻辑的主要文件。
编写你的第一个AI代理
打开main.py文件,我们将实现一个简单的AI代理,该代理能够连接到MCP服务器,获取工具列表并执行基本操作。以下是一个示例代码:
import asyncio
from mcp_agent.app import MCPApp
from mcp_agent.mcp.gen_client import gen_client
from mcp_agent.mcp.mcp_agent_client_session import MCPAgentClientSession
from mcp_agent.mcp.mcp_connection_manager import MCPConnectionManager
app = MCPApp(name="mcp_hello_world")
async def example_usage():
async with app.run() as hello_world_app:
context = hello_world_app.context
logger = hello_world_app.logger
logger.info("Hello, world!")
logger.info("Current config:", data=context.config.model_dump())
# 使用异步上下文管理器连接到fetch服务器
async with gen_client(
"fetch", server_registry=context.server_registry
) as fetch_client:
logger.info("fetch: Connected to server, calling list_tools...")
result = await fetch_client.list_tools()
logger.info("Tools available:", data=result.model_dump())
# 使用持久连接连接到文件系统服务器
connection_manager = MCPConnectionManager(context.server_registry)
await connection_manager.__aenter__()
try:
filesystem_client = await connection_manager.get_server(
server_name="filesystem",
client_session_factory=MCPAgentClientSession,
)
logger.info(
"filesystem: Connected to server with persistent connection."
)
fetch_client = await connection_manager.get_server(
server_name="fetch", client_session_factory=MCPAgentClientSession
)
logger.info("fetch: Connected to server with persistent connection.")
result = await filesystem_client.session.list_tools()
logger.info("filesystem: Tools available:", data=result.model_dump())
result = await fetch_client.session.list_tools()
logger.info("fetch: Tools available:", data=result.model_dump())
finally:
await connection_manager.disconnect_server(server_name="filesystem")
logger.info("filesystem: Disconnected from server.")
await connection_manager.disconnect_server(server_name="fetch")
logger.info("fetch: Disconnected from server.")
await connection_manager.__aexit__(None, None, None)
if __name__ == "__main__":
asyncio.run(example_usage())
代码解析
上述代码创建了一个名为"mcp_hello_world"的MCP应用,并实现了以下功能:
- 初始化MCP应用和上下文
- 连接到"fetch"和"filesystem"两个MCP服务器
- 获取并打印服务器提供的工具列表
- 演示了两种连接服务器的方式:异步上下文管理器和持久连接
运行你的AI代理
完成代码编写后,执行以下命令运行你的AI代理:
uv run main.py
如果一切正常,你将看到类似以下的输出:
INFO: Hello, world!
INFO: Current config: {'execution_engine': 'asyncio', 'logger': {'transports': ['console'], 'level': 'info'}, ...}
INFO: fetch: Connected to server, calling list_tools...
INFO: Tools available: [{'name': 'fetch', 'description': 'Fetch content from a URL', ...}]
INFO: filesystem: Connected to server with persistent connection.
INFO: fetch: Connected to server with persistent connection.
INFO: filesystem: Tools available: [{'name': 'read_file', 'description': 'Read a file from the filesystem', ...}]
INFO: fetch: Tools available: [{'name': 'fetch', 'description': 'Fetch content from a URL', ...}]
INFO: filesystem: Disconnected from server.
INFO: fetch: Disconnected from server.
这表明你的AI代理已成功连接到MCP服务器,并能够获取工具列表。
扩展你的AI代理
现在你已经成功运行了第一个mcp-agent AI代理,接下来可以尝试扩展它的功能。以下是一些建议:
- 添加更多工具调用:修改
main.py,使用服务器提供的工具执行实际任务,如读取文件或获取网页内容。 - 集成LLM:使用
OpenAIAugmentedLLM等类将大型语言模型集成到代理中,实现更复杂的逻辑。 - 尝试不同的MCP服务器:查看mcp-agent-sdk/mcp/文档,了解更多可用的MCP服务器及其功能。
- 部署到云端:使用
uvx mcp-agent deploy命令将你的代理部署为云端MCP服务器,使其可以被远程访问。
总结
通过本文的步骤,你已经成功安装并运行了mcp-agent,创建了你的第一个AI代理。mcp-agent提供了灵活的框架和丰富的功能,使你能够轻松构建复杂的AI代理系统。无论是本地应用还是云端服务,mcp-agent都能满足你的需求。
如果你想深入了解mcp-agent的更多功能,可以参考以下资源:
- 官方文档:docs/
- 示例代码:examples/
- API参考:docs/reference/
祝你在mcp-agent的世界中探索愉快,构建出强大而智能的AI代理!
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00