一个简单的应用,展示了如何使用FastAPI和Gradio实现模型上下文协议(MCP)(因为我不喜欢处理Streamlit带来的问题)。
该项目演示了一个基本的MCP服务器,前端使用Gradio(Streamlit带来了太多麻烦,生命太短暂,不值得承受不必要的痛苦)。用户可以通过所谓的“简单界面”与AI模型进行对话,而开发者则认为这是“在我继续前进之前能做的最好尝试”。
⚠️ 请注意
这个项目非常适合使用uv,这是一个超级快速的Python包安装器!无需等待pip在下一个世纪完成安装,您可以使用uv在几秒钟内安装依赖项。强烈推荐这种方式以获得更流畅的体验(并夺回盯着进度条的时间)。
uv)克隆此项目:
git clone https://github.com/yourusername/basic-mcp-app.git
cd basic-mcp-app
创建虚拟环境(因为全局依赖是情感伤害的道路):
python -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
安装所需包:
使用pip(乌龟方式):
pip install -r requirements.txt
使用uv(兔子方式,实际上赢得了比赛):
# 如果没有安装uv,请先安装
curl -LsSf https://astral.sh/uv/install.sh | sh
或者
pip install uv
然后使用uv安装依赖项:
uv pip install -r requirements.txt
使用uv让Python包安装变得飞快!比普通的pip快得多(母亲保证🤞)。在pip意识到您的请求时,uv已经完成了安装,甚至为您冲了杯咖啡,并开始编写您的下一个应用程序。
设置您的API密钥(这些是您不应该提交到GitHub的东西,但总有人会这样做):
cp .env.example .env
# 打开.env并添加您的API密钥
使用一条命令启动两个服务器(就像魔法一样,但有更多的分号):
python run.py
这将同时启动后端和前端。就像既吃到了蛋糕又吃了它,但热量更低。
如果需要,也可以分别启动它们(对于控制狂来说):
uvicorn backend.main:app --reloadpython frontend/app.py打开您的网络浏览器,访问http://localhost:8501(如果不起作用,请尝试重启设备 😑)
看看这个美丽的目录结构,在开发真正开始后它将永远不再这么整洁:
basic-mcp-app/
├── .env.example # API密钥模板(请不要公开您的API密钥🙏)
├── .gitignore # Git忽略的文件(就像情感包袱)
├── README.md # 这个帮助文件,直到绝望才有人阅读
├── requirements.txt # 需要的包(即依赖地狱)
├── run.py # 启动两个服务器的脚本
├── backend/
│ └── main.py # 包含MCP的后端服务器代码(真正的魔法发生的地方)
└── frontend/
└── app.py # Gradio前端界面(漂亮的按钮放在这里)
MIT(因为我很好,也不想读冗长的许可证)