MCP连接器
通过MCP协议将本地LLM连接到外部工具(计算器、知识库),实现自动工具检测和执行,从而增强查询响应。
服务介绍
此项目通过MCP协议将本地LLM(例如Qwen)与计算器或知识库等工具连接起来。助手能够自动检测并调用这些工具来帮助回答用户查询。
📦 功能
- 🔧 通过MCP服务器执行工具
- 🧠 通过HTTP或OpenAI SDK集成本地LLM
- 📚 支持知识库 (
data.json) - ⚡ 支持
stdio和sse传输
🗂 项目文件
| 文件 | 描述 |
|---|---|
server.py |
注册工具并启动MCP服务器 |
client-http.py |
使用aiohttp与本地LLM通信 |
clientopenai.py |
使用兼容OpenAI的SDK进行LLM + 工具调用逻辑 |
client-stdio.py |
使用stdio的MCP客户端 |
client-sse.py |
使用SSE的MCP客户端 |
data.json |
问答知识库 |
📥 安装
要求
Python 3.8+
安装依赖项:
bash
pip install -r requirements.txt
requirements.txt
aiohttp==3.11.18
nest_asyncio==1.6.0
python-dotenv==1.1.0
openai==1.77.0
mcp==1.6.0
🚀 开始使用
1. 运行MCP服务器
bash
python server.py
这将启动包含如add、multiply和get_knowledge_base等功能的工具服务器。
2. 启动客户端
选项A: HTTP客户端(通过原始API访问本地LLM)
bash
python client-http.py
选项B: OpenAI SDK客户端
bash
python client-openai.py
选项C: stdio传输
bash
python client-stdio.py
选项D: SSE传输
确保server.py设置为:
python
transport = "sse"
然后运行:
bash
python client-sse.py
💬 示例提示
数学工具调用
8乘以3是多少?
响应:
八乘以三是24。
知识库问题
新加坡员工可享受哪些医疗福利?
响应将包括来自data.json的相关答案。
📁 示例:data.json
json
[
{
"question": "新加坡的公共假期安排是什么?",
"answer": "新加坡有几个公共假期..."
},
{
"question": "如何在新加坡申请永久居留权?",
"answer": "通过ICA网站提交在线申请..."
}
]
🔧 配置
在client-http.py或clientopenai.py中,更新以下内容:
python
LOCAL_LLM_URL = "..."
TOKEN = "your-api-token"
LOCAL_LLM_MODEL = "your-model"
确保您的LLM提供与OpenAI兼容的API端点。
🧹 清理
客户端会自动处理工具调用和响应。您可以使用Ctrl+C停止服务器或客户端。
🪪 许可证
MIT许可证。参见LICENSE文件。