使用说明
MCP_服务器
用于训练目的的模型上下文协议(MCP)服务器实现。
概述
本项目演示了如何创建和集成MCP服务器与各种组件,包括:
- RAG(检索增强生成)实现
- LangChain集成
- Olama模型支持
- 数据预处理和嵌入存储
项目结构
MCP_Server/
├── MCP/
│ ├── load_data.py # Data loading utilities
│ ├── preprocess.py # Data preprocessing pipeline
│ ├── embedding_store.py # Vector embedding storage and retrieval
│ ├── rag_query.py # RAG query interface
│ └── main.py # Main entry point
├── MCP_Server/
│ ├── dummy_mcp_server.py # MCP Server implementation
│ └── test_client.py # Test client for MCP Server
├── Notebooks/
│ ├── ollama_course.ipynb # Ollama course materials
│ └── langchain_retrieval.ipynb
├── assets/
│ ├── filtered_dataset.csv # Training data
│ └── retrieval_resources/
└── README.md
入门指南
先决条件
- Python 3.8+
- Ollama(用于模型推理)
- LangChain
- langchain mcp适配器
- 下面列出了所需的依赖关系
安装
- 克隆存储库:
git clone <repository-url>
cd MCP_Server
- 安装依赖项:
pip install langchain-ollama langchain-mcp-adapters langchain
- 设置Ollama并拉一个模型:
ollama pull llama3.2:1b
用法
运行MCP服务器
启动MCP服务器:
python MCP_Server/dummy_mcp_server.py
与客户进行测试
运行测试客户端以验证服务器:
python MCP_Server/test_client.py
这将:
- 从MCP服务器加载可用工具
- 演示LLM代理与工具的集成
- 显示直接工具调用
运行RAG查询
使用RAG实现执行检索增强生成:
python MCP/rag_query.py
使用嵌入执行检索增强生成
使用自定义的国家灾害数据集进行演示
ℹ️ 注:本项目中使用的国家灾害数据集包含在assets/filtered_dataset.csv中。您可以直接访问和探索它进行实验。
可用工具
MCP服务器为LLM集成提供了以下工具:
实用工具
- random_number(最小值:int=0,最大值:int=100)->int:在指定边界之间生成随机整数
- reverse_string(文本:str)->str:反转输入字符串
- is_even(n:int)->bool:检查数字是否为偶数
- get_country_capital(国家:str)->str:返回给定国家的首都(支持瑞士、法国、德国)
数学工具
- 计算(表达式:str)->浮点:安全地计算简单的数学表达式
- list_operations(数字:list[int])->dict:返回数字列表的统计信息(总和、平均值、最小值、最大值、计数)
文本处理工具
- word_count(文本:str)->字典:返回字数统计信息,包括总字数、字符数和平均字长
转换工具
- convert_temperature(温度:浮动,从_unit:str到_unit:sstr)->浮动:在摄氏度、华氏度和开尔文之间转换温度
日期/时间工具
- get_current_datetime()->str:以格式化字符串的形式返回当前日期和时间
主要特点
- MCP服务器实现:基于标准的工具通信传输
- 综合工具集:9种不同的工具,涵盖各种实用功能
- 朗链代理:使用ChatOllama的LLM动力剂
- RAG支持:使用嵌入进行检索增强生成
- 数据管道:完成数据加载和预处理工作流程
故障排除
导入错误: langchain_mcp_adapters
确保软件包已安装:
pip install langchain-mcp-adapters
在VS Code中重新启动Python解释器:
- 按
Ctrl+Shift+P - 搜索“Python:重新启动语言服务器”
