项目简介

该仓库提供了一个MCP (Model Context Protocol) 服务器实现,用于集成阿里云Lindorm数据库。它允许大型语言模型 (LLM) 客户端通过标准化的协议访问Lindorm的搜索、向量和宽表引擎,执行知识检索和SQL查询等操作。

主要功能点

  • 知识库检索: 允许LLM在Lindorm中已建立的知识库(索引)中进行全文检索和向量检索,获取相关文档内容。
  • 知识库信息查询: 提供获取知识库(索引)列表及字段结构的能力,帮助LLM理解可用知识源。
  • SQL查询执行: 允许LLM对Lindorm宽表执行SELECT查询,获取结构化数据。
  • 数据库表信息查询: 提供列出数据库中的表以及查看表结构的能力,帮助LLM理解数据库模式。

安装步骤

  1. 克隆仓库到本地:
    git clone https://github.com/aliyun/alibabacloud-lindorm-mcp-server.git
    cd alibabacloud-lindorm-mcp-server
  2. 安装 'uv' 工具(如果尚未安装):
    pip install uv
  3. 创建并编辑 '.env' 配置文件,填入您的Lindorm连接信息(根据'.env.example'文件创建):
    cp .env.example .env
    # 编辑 .env 文件,填入实际信息
    LINDORM_INSTANCE_ID=your_instance_id
    USING_VPC_NETWORK=true_or_false
    USERNAME=your_username
    PASSWORD=your_password
    TEXT_EMBEDDING_MODEL=your_embedding_model_name
    TABLE_DATABASE=default_database_name
  4. 使用 'uv' 安装项目依赖:
    uv pip install .

服务器配置(供MCP客户端使用)

MCP客户端(如Cline)需要配置如何启动和连接到这个服务器。以下是典型的配置结构,您需要根据您的环境调整路径和参数:

{
  "name": "Lindorm",
  "command": "python",
  "args": [
    "-m",
    "src.lindorm_mcp_server.server"
  ],
  // 客户端可能还需要配置其他参数,例如传输协议、工作目录等
  // "protocol": "stdio",
  // "cwd": "/path/to/alibabacloud-lindorm-mcp-server"
}
  • 'name': 服务器的标识名称,此处为 "Lindorm"。
  • 'command': 执行服务器的命令,此处为 'python'。
  • 'args': 传递给命令的参数,此处为 '-m src.lindorm_mcp_server.server',用于以模块方式运行服务器主程序。

请注意,Lindorm连接信息(如实例ID、用户名、密码等)不是在客户端配置中提供,而是在服务器启动前配置在其 '.env' 文件或通过命令行参数传递给服务器。

基本使用方法

配置好MCP客户端并启动Lindorm MCP服务器后,LLM客户端即可通过MCP协议调用服务器暴露的工具(Tools),例如:

  1. 调用 'lindorm_list_all_index' 工具获取所有可用的知识库名称。
  2. 调用 'lindorm_get_index_fields' 工具查看特定知识库的结构,获取内容字段和向量字段名称。
  3. 调用 'lindorm_retrieve_from_index' 工具,指定知识库名称、查询文本、内容字段、向量字段和期望结果数量,执行知识检索。
  4. 调用 'lindorm_show_tables' 或 'lindorm_describe_table' 工具探索数据库结构。
  5. 调用 'lindorm_execute_sql' 工具执行特定的SQL查询(目前仅支持SELECT)。

LLM会根据其能力和用户指令,自动选择并调用合适的工具,并将工具返回的结果作为上下文信息,用于生成更准确、更相关的回复。

信息

分类

数据库与文件