项目介绍
LangGraph FastAPI MCP Server Demo
这是一个示例项目,它将一个购物清单的FastAPI应用程序转变为一个MCP服务器,并连接了一个基于LangGraph的聊天机器人到该MCP服务器,以便通过聊天管理用户的购物清单。

技术栈
- FastAPI:一个现代、快速(高性能)的Web框架,用于使用Python 3构建API
- FastAPI-MCP:一个开源库,可以将您的FastAPI端点暴露为模型上下文协议(MCP)工具(带认证)
- MCP(模型上下文协议):一个开放协议,便于AI模型与外部数据源或工具之间的无缝交互
- LangChain:一个开源框架,帮助开发者构建由大型语言模型(LLMs)驱动的应用程序
- LangGraph:一个由LangChain提供的开源框架,用于使用基于图的架构构建和管理复杂的AI代理
- ChatGPT:OpenAI提供的一款流行的大型语言模型
- Gradio:一个流行的开源库,用于为机器学习模型构建Web界面。本项目使用Gradio创建了聊天机器人的Web界面。
- LangSmith:一个由LangChain提供的开源框架,用于跟踪和监控LLM应用程序。
- uv:一个快速的开源Python包管理器——作为
pip、conda和virtualenv的替代品。
快速开始
1. 安装 uv
如果您还没有安装,请按照这里的说明进行安装。
2. 安装依赖项
uv sync
3. 设置OpenAI API密钥
在项目根目录下创建一个.env文件:
# .env
OPENAI_API_KEY=your-openai-api-key-here
4. 运行FastAPI应用
uv run uvicorn server.main:app --host 0.0.0.0 --port 8000 --reload
访问http://localhost:8000/docs尝试FastAPI应用
5. 运行聊天机器人
uv run chatbot.py
聊天机器人将在http://localhost:7860可用
使用示例
在聊天机器人中尝试以下示例查询:
- "我需要买个西瓜"
- "我的购物清单里有什么?"
- "让我们添加意大利面和番茄酱"
- "我已经买了西瓜"
- "移除番茄酱"
- "我还需要多一份意大利面"
依赖项
- LangGraph:用于创建React代理
- Gradio:用于聊天界面
- LangChain OpenAI:用于语言模型集成
- LangChain Core:用于工具定义
- FastAPI:用于MCP服务器
- SQLAlchemy:用于数据库操作
许可证
本项目是开源的,并且在MIT许可证下可用。