此聊天机器人示例演示了如何将模型上下文协议(MCP)集成到一个简单的CLI聊天机器人中。该实现通过支持多个工具展示了MCP的灵活性,并且与遵循OpenAI API标准的任何大型语言模型(LLM)提供商兼容。
如果你发现这个项目有用,请不要忘记在仓库上给它⭐星,或者买我一杯☕咖啡。
python-dotenvrequestsmcpuvicorn克隆仓库:
git clone https://github.com/3choff/mcp-chatbot.git
cd mcp-chatbot
安装依赖项:
pip install -r requirements.txt
设置环境变量:
在根目录创建一个.env文件并添加你的API密钥:
LLM_API_KEY=your_api_key_here
配置服务器:
servers_config.json遵循与Claude桌面相同的结构,允许轻松集成多个服务器。
这是一个示例:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "./test.db"]
},
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}
同时也支持环境变量。传递方式与Claude桌面应用相同。
示例:
{
"mcpServers": {
"server_name": {
"command": "uvx",
"args": ["mcp-server-name", "--additional-args"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}
运行客户端:
python main.py
与助手交互:
助手会自动检测可用工具,并根据配置服务器提供的工具响应查询。
退出会话:
输入quit或exit以结束会话。
flowchart TD
A[开始] --> B[加载配置]
B --> C[初始化服务器]
C --> D[发现工具]
D --> E[为LLM格式化工具]
E --> F[等待用户输入]
F --> G{用户输入}
G --> H[发送输入到LLM]
H --> I{LLM决策}
I -->|调用工具| J[执行工具]
I -->|直接响应| K[返回响应给用户]
J --> L[返回工具结果]
L --> M[将结果发送到LLM]
M --> N[LLM解释结果]
N --> O[向用户呈现最终响应]
K --> O
O --> F
初始化:
运行时流程:
工具集成:
欢迎反馈和贡献。如果你遇到任何问题或有改进建议,请在GitHub仓库上创建一个新的问题。
如果你想为项目的开发做出贡献,请自由提交包含更改的拉取请求。
本项目根据MIT许可证授权。