模型上下文协议服务器

一个用于训练目的的模型上下文协议(MCP)服务器实现,支持检索增强生成(RAG)、LangChain集成和Ollama模型支持。

  • by SemaIstek
  • Jupyter Notebook
  • 本地部署
  • 更新于
在 GitHub 查看 SemaIstek/MCP_Server

使用说明

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适配器
  • 下面列出了所需的依赖关系

安装

  1. 克隆存储库:
git clone <repository-url>
cd MCP_Server
  1. 安装依赖项:
pip install langchain-ollama langchain-mcp-adapters langchain
  1. 设置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:重新启动语言服务器”

许可证