基于 Model Context Protocol (MCP) 的 AI Agent 应用实现教程与多场景示例集合。
本项目是一个基于 Model Context Protocol (MCP) 的 AI Agent 应用实现教程与示例集合。项目展示了如何利用 MCP 协议与 LangChain/LangGraph 构建生成式 AI Agent 应用,解决 AI Agent 接入异构数据源时的工具集成碎片化问题。
核心能力#
MCP 协议集成#
- 实现完整的 MCP Client/Server 架构,基于 JSON-RPC 2.0 协议
- 支持 stdio 和 SSE (Server-Sent Events) 两种传输方式
- 涵盖 Tools(模型控制)、Resources(应用控制)、Prompts(用户控制)三大核心组件
Agent 构建与编排#
- 使用 LangGraph 构建可定制的 ReAct 模式 StateGraph
- 通过 langchain-mcp-adapters 将 MCP Server tools 桥接为 LangGraph ToolNode
- 支持对话历史管理与多轮交互异步执行(astream)
检索增强生成 (RAG)#
- 依托 Amazon Bedrock Knowledge Base 实现托管式 RAG
- 支持多模态内容解析(图像/表格分析)
- 通过 AWS Lambda 构建 API 接口供 MCP Server 调用
多领域工具集成示例#
- 云原生分析:AWS Cost Analysis(成本可视化)、AWS Documentation(文档查询)、AWS Diagram(架构图绘制,基于 Graphviz)
- 生成式能力:Amazon Nova Canvas 图像生成
- 信息检索:Google Search (Smithery)、Tavily、Perplexity、Riza
- 科学研究:Drug Discovery(arXiv、ChEMBL、ClinicalTrials.gov、PubMed 检索)
- 文本处理:Text Extraction、Editor、Web Fetch
- 办公协作:Notion、Slack、Confluence、Google Docs、Obsidian
- 自动化与数据:Playwright(浏览器自动化)、OpenSearch(日志分析)、Airbnb/Twitter(数据分析)
架构概览#
[Browser] → [CloudFront + ALB (HTTPS)] → [Streamlit UI (EC2)]
↓
[LangGraph Agent]
↙ ↘
[MCP Client] [MCP Client]
↓ ↓
[MCP Server] [MCP Server]
(stdio/SSE) (stdio/SSE)
↓ ↓
[AWS Knowledge Base] [AWS Lambda APIs]
[Search Engines] [External APIs]
[AWS Cost Explorer] [Image Generation]
- Agent 层:LangGraph 驱动的 ReAct 工作流,包含 agent 节点(大模型推理)和 action 节点(ToolNode 工具调用)
- MCP 适配层:利用 MultiServerMCPClient 管理多个 Server 连接,通过 load_mcp_tools 动态获取并转换工具列表
- 数据与执行层:各类 MCP Server 作为独立进程或服务运行,屏蔽后端差异
- 基础设施层:全面依托 AWS(EC2、ALB、CloudFront、Lambda)
安装与部署#
环境要求:Python ≥ 3.9
快速安装核心依赖:
pip install mcp langchain-mcp-adapters
完整依赖安装:
pip install -e .
容器化部署支持 Docker 及 Docker Swarm 编排,提供 build-docker.sh、run-docker.sh 脚本及 installer.py/uninstaller.py 环境管理工具。
配置示例#
MCP Server 定义#
from mcp.server.fastmcp import FastMCP
mcp = FastMCP(name="retrieve")
@mcp.tool()
def rag_search(keyword: str) -> str:
"""search keyword"""
return retrieve(keyword)
if __name__ == "__main__":
mcp.run(transport="stdio")
MCP Client 配置 (config.json)#
{
"mcpServers": {
"search": {
"command": "python",
"args": ["application/mcp-server.py"]
}
}
}
典型应用场景#
- 企业知识库问答 — 利用 AWS Knowledge Base 构建 RAG,通过 MCP 提供给 AI Agent 使用
- AWS 成本分析与可视化 — 通过 MCP Tool 获取并分析 AWS 账单数据
- 药物发现研究 — 整合 arXiv、ChEMBL、ClinicalTrials.gov 等科学数据库进行文献检索
- AWS 文档查询与架构图生成 — 自动查询 AWS 文档并绘制架构图
- 多源信息聚合 Agent — 将搜索引擎、内部数据库、外部 API 统一通过 MCP 接入 Agent
- 图像生成 — 利用 Amazon Nova Canvas 通过 MCP 调用图像生成能力
- 协作工具集成 — 通过 MCP 连接 Notion、Slack、Confluence 等办公系统
待确认事项#
- 许可协议不一致:仓库 LICENSE 文件为 Apache-2.0,pyproject.toml 中声明为 MIT
- pyproject.toml 中 Homepage 和 Bug Tracker URL 使用占位符
- pyproject.toml 中作者信息标注为 AWS,可能为占位信息,实际作者为 GitHub 用户 kyopark2014
- 版本号为 0.1.0,但仓库已有 903 次提交,版本号可能未及时更新