内容
# MCP REST API 和 CLI 客户端
一个简单的 **REST API** 和 **CLI 客户端**,用于与 [模型上下文协议(MCP)](https://modelcontextprotocol.io/) 服务器交互。
## 主要功能
### 1. MCP 兼容服务器
- 支持任何 [MCP 兼容服务器](https://github.com/punkpeye/awesome-mcp-servers) 服务器。
- 预配置的默认服务器:
- **SQLite** (已提供 test.db,包含示例产品数据)
- **Brave 搜索**
- 可以在 [mcp-server-config.json](mcp-server-config.json) 文件中添加其他 MCP 服务器。
### 2. 与 LangChain 集成
- 利用 LangChain 执行 LLM 提示。
- 使多个 MCP 服务器能够协作并同时响应特定查询。
### 3. LLM 提供商支持
- 与任何支持具有函数功能的 API 的 LLM 提供商兼容。
- 示例:
- **OpenAI**
- **Claude**
- **Gemini**
- **AWS Nova**
- **Groq**
- **Ollama**
- 实际上,所有 LLM 提供商都支持,只要它们提供基于函数的 API。请参阅 [LangChain 文档](https://python.langchain.com/docs/integrations/chat/) 以获取更多详细信息。
## 设置
1. 克隆仓库:
```bash
git clone https://github.com/rakesh-eltropy/mcp-client.git
```
2. **导航到项目目录**
克隆仓库后,移动到项目目录:
```bash
cd mcp-client
```
3. 设置 OPENAI_API_KEY 环境变量:
```bash
export OPENAI_API_KEY=您的-openai-api-key
```
您也可以在 [mcp-server-config.json](mcp-server-config.json) 文件中设置 `OPENAI_API_KEY`。
您还可以在 [mcp-server-config.json](mcp-server-config.json) 文件中设置 `provider` 和 `model`。
例如,`provider` 可以是 `ollama`,`model` 可以是 `llama3.2:3b`。
4. 设置 BRAVE_API_KEY 环境变量:
```bash
export BRAVE_API_KEY=您的-brave-api-key
```
您也可以在 [mcp-server-config.json](mcp-server-config.json) 文件中设置 `BRAVE_API_KEY`。
您可以在 [Brave 搜索 API](https://brave.com/search/api/) 获取免费的 `BRAVE_API_KEY`。
5. 从 CLI 运行:
```bash
uv run cli.py
```
要探索可用的命令,请使用 `help` 选项。您可以使用 `chat` 命令与 LLM 聊天。
示例提示:
```bash
印度首都城市是什么?
```
```bash
从数据库搜索最昂贵的产品并从亚马逊查找更多详细信息?
```
6. 从 REST API 运行:
```bash
uvicorn app:app --reload
```
您可以使用以下 curl 命令与 llm 聊天:
```bash
curl -X POST -H "Content-Type: application/json" -d '{"message": "列出我本地数据库中的所有产品?"}' http://localhost:8000/chat
```
您可以使用以下 curl 命令与 llm 聊天并流式传输:
```bash
curl -X POST -H "Content-Type: application/json" -d '{"message": "列出我本地数据库中的所有产品?", "streaming": true}' http://localhost:8000/chat
```
## 贡献
欢迎提交问题和拉取请求以进行改进或错误修复。