项目简介

MCP ODBC数据连接服务器是一个基于Model Context Protocol (MCP) 构建的后端应用,它允许大型语言模型(LLM)客户端通过标准化的方式访问任何支持ODBC连接的数据库。通过该服务器,LLM可以执行查询、获取数据库结构信息等,从而增强其与外部数据的交互能力。

主要功能点

  • 数据库元数据访问: 能够列出数据库中的Schema(模式)、Table(表),并提供表的详细结构描述(包括列名、数据类型、主键、外键等)。
  • 灵活的数据查询: 支持执行标准的SQL查询,并能将结果以JSON、JSON Lines (JSONL) 或Markdown表格格式返回。
  • 高级查询支持: 对于特定的数据库系统(如Virtuoso),支持执行SPASQL(SQL/SPARQL混合)和SPARQL查询。
  • AI集成工具: 提供调用后端AI功能(例如Virtuoso的AI支持函数)的工具。

安装步骤

  1. 安装 Node.js: 确保您的系统安装了 Node.js 21.1.0 或更高版本。推荐使用 'nvm' 进行安装和管理。
    nvm install v21.1.0
    nvm use 21.1.0
  2. 安装 unixODBC (或其他ODBC驱动管理器): 根据您的操作系统安装ODBC驱动管理器,并确保配置了您需要访问的数据库的ODBC驱动和DSN (Data Source Name)。请参考系统的ODBC配置文档。
  3. 克隆仓库:
    git clone https://github.com/OpenLinkSoftware/mcp-odbc-server.git
    cd mcp-odbc-server
  4. 安装项目依赖:
    npm install
  5. 配置环境变量: 在项目根目录创建 '.env' 文件,配置数据库连接信息和其他可选设置。
    ODBC_DSN=Your_DataSource_Name
    ODBC_USER=your_db_user
    ODBC_PASSWORD=your_db_password
    # 可选:指定 ODBC INI 文件路径
    # ODBCINI=/path/to/odbc.ini
    # 可选:配置用于AI工具的API Key
    # API_KEY=your_ai_api_key
    将 'Your_DataSource_Name', 'your_db_user', 'your_db_password' 替换为您实际的ODBC DSN、用户名和密码。

服务器配置

MCP客户端(如Claude Desktop, Cline, Cursor等)需要配置如何启动和连接这个MCP服务器。您需要在MCP客户端的设置中添加一个新的MCP服务器配置,通常需要提供服务器的名称、启动命令和参数。以下是常见的配置格式示例(具体配置界面和格式可能因客户端而异):

{
    "mcpServers": {
        "ODBC": {
            "name": "MCP ODBC Server",
            "command": "/path/to/your/node/executable",
            "args": [
                "/path/to/mcp-odbc-server/node_modules/.bin/tsx",
                "/path/to/mcp-odbc-server/src/main.ts"
            ],
            "env": {
                "ODBCINI": "/path/to/your/odbc.ini"
                // 其他需要的环境变量,例如 PATH
            },
            "disabled": false,
            "autoApprove": []
        }
    }
}
  • '"ODBC"': 这是您在MCP客户端中为该服务器设置的内部名称或ID。
  • '"name"': 服务器向客户端声明的友好名称,会显示在客户端界面上。
  • '"command"': 启动 Node.js 可执行文件的完整路径。请替换为实际路径。
  • '"args"': 传递给 Node.js 可执行文件的参数列表。
    • 第一个参数通常是 'tsx' 的路径,用于执行 TypeScript 文件。请替换 '/path/to/mcp-odbc-server/node_modules/.bin/tsx' 为您实际安装后的路径。
    • 第二个参数是服务器主入口文件 'src/main.ts' 的路径。请替换 '/path/to/mcp-odbc-server/src/main.ts' 为您实际的项目路径。
  • '"env"': 启动服务器进程时需要设置的环境变量。'ODBCINI' 可能需要指定您系统上 'odbc.ini' 文件的位置,请替换为实际路径。根据您的Node.js安装方式,可能还需要在PATH中包含Node.js bin目录。
  • '"disabled"': 如果设置为 'true',客户端将不会启动该服务器。
  • '"autoApprove"': 自动批准该服务器调用的工具列表。

完成配置后,您的MCP客户端应该能够检测并连接到该MCP ODBC服务器。

基本使用方法

通过配置好的MCP客户端与服务器交互。在LLM的对话或指令界面中,您可以直接提出需要数据库访问的问题。客户端会自动识别并调用MCP ODBC服务器提供的相应工具。

例如,您可以尝试以下类型的提示:

  • "List all schemas in the database." (使用 'get_schemas' 工具)
  • "Show tables in the 'Demo' schema." (使用 'get_tables' 工具)
  • "Describe the 'Customers' table in schema 'Demo'." (使用 'describe_table' 工具)
  • "Execute the following SQL query: SELECT TOP 10 * FROM Orders WHERE OrderDate > '2023-01-01'" (使用 'query_database' 工具)
  • "Execute the SPARQL query: SELECT ?s ?p ?o WHERE { ?s ?p ?o } LIMIT 5" (使用 'sparql_query' 工具)

LLM会根据您的提示,结合其对可用工具的理解,调用MCP ODBC服务器的工具来获取信息或执行操作,并将结果反馈给您。部分客户端可能需要您显式地引用服务器(例如在Cursor中使用 '@odbc' 前缀),请参考您使用的MCP客户端文档。

信息

分类

数据库与文件