使用说明

项目简介

MCP多功能服务平台是一个后端服务,旨在为通义千问等大型语言模型提供强大的上下文支持能力。它集成了文件访问、数据库连接、API集成和向量数据库等多种功能模块,可以帮助开发者快速构建功能丰富的LLM应用。通过标准化的API接口,MCP服务器可以安全、高效地为LLM客户端提供数据访问和功能调用服务。

主要功能点

  • 文件管理:支持文件的上传、下载、列表和删除,方便LLM应用处理和存储文件资源。
  • 数据库连接:集成MongoDB数据库,支持文档的增删改查操作,为LLM应用提供结构化数据存储和检索能力。
  • API集成:允许LLM应用调用外部API服务,扩展LLM的功能边界,例如访问实时信息、调用第三方工具等。
  • 向量数据库:支持向量数据的存储和相似度搜索,可以用于实现知识库检索、语义搜索等高级功能,提升LLM的上下文理解和生成能力。
  • 易于部署:提供完整的Docker配置,支持一键部署,快速搭建服务环境。
  • 客户端示例:提供Python客户端库和示例代码,方便开发者快速集成和使用MCP服务器。

安装步骤

  1. 克隆仓库

    git clone https://github.com/ningwenjie/mcp_server
    cd mcp_server
  2. 使用Docker Compose启动服务 确保已安装Docker和Docker Compose。在项目根目录下,执行以下命令启动服务:

    docker-compose -f docker/docker-compose.yml up -d

    这将启动MCP服务器及其依赖的MongoDB数据库。

  3. 验证服务 服务启动后,可以通过访问 'http://localhost:8000/health' 检查服务是否正常运行。如果返回 '{"status": "healthy"}',则表示服务已成功启动。

服务器配置

MCP服务器通过环境变量或命令行参数进行配置。以下是客户端连接MCP服务器时需要配置的关键信息,以JSON格式提供:

{
  "serverName": "mcp_server",
  "command": "python",
  "args": [
    "main.py",  // 主程序入口
    "--host", "0.0.0.0", // 服务器监听地址,0.0.0.0表示监听所有网络接口
    "--port", "8000"    // 服务器端口号,默认为8000
    // "--debug"         // 可选参数,启用调试模式,如果需要调试可以添加此参数
  ],
  "description": "MCP Server for LLM Context Service"
}

配置参数说明:

  • 'serverName': MCP服务器的名称,可以自定义,用于客户端标识。
  • 'command': 启动MCP服务器的命令,这里使用 'python' 解释器。
  • 'args': 启动命令的参数列表,包括:
    • '"main.py"': 指定执行 'main.py' 文件作为服务器入口。
    • '"--host", "0.0.0.0"': 设置服务器监听地址为 '0.0.0.0',允许从任何IP地址访问。
    • '"--port", "8000"': 设置服务器监听端口为 '8000'。
    • '"--debug"' (可选): 如果需要在调试模式下运行服务器,可以添加此参数。

注意:

  • 确保MongoDB数据库已运行,或者Docker Compose已经成功启动MongoDB服务。
  • 可以通过修改 'docker/docker-compose.yml' 文件或环境变量来配置MongoDB连接信息、API密钥等服务器参数。
  • 客户端需要根据实际部署的服务器地址和端口配置连接信息。

基本使用方法

  1. 安装Python客户端库 (如果需要使用Python客户端)

    pip install requests
  2. 使用客户端库 (以Python客户端为例) 参考 'examples/qwen_example.py' 和 'examples/qwen_client.py' 中的示例代码,可以使用 'QwenMCPClient' 类来连接MCP服务器,并调用文件上传、向量存储、数据库操作、API调用等功能。

    例如,上传文件:

    from examples.qwen_client import QwenMCPClient
    
    client = QwenMCPClient("http://localhost:8000") # 初始化客户端,指定服务器地址
    file_info = client.upload_file("example.txt")    # 上传本地文件 example.txt
    print(f"文件上传成功,文件ID: {file_info['id']}")

    更多功能的使用方法请参考示例代码和API文档。

信息

分类

数据库与文件