项目简介

SchemaCrawler AI MCP Server 是 SchemaCrawler 项目的一个组件,它将强大的数据库 schema 分析和报告能力通过 Model Context Protocol (MCP) 暴露给大型语言模型 (LLM) 客户端。它允许 AI 客户端连接到一个运行中的 SchemaCrawler 实例,查询数据库的结构、对象详情,甚至执行 schema 的设计检查(linting),从而让 AI 能够理解并基于当前的数据库 schema 提供更智能的交互和帮助。

主要功能点

  • 数据库 Schema 访问: 允许 AI 客户端获取连接数据库的完整 schema 信息,包括表、视图、存储过程、函数、序列、同义词等。
  • 工具调用: 暴露一系列 SchemaCrawler 的功能作为可由 AI 调用的“工具”,例如:
    • 列出数据库中的各种对象。
    • 获取特定数据库对象的详细描述。
    • 执行数据库 schema 设计问题的检查(Linting)。
  • AI 模型集成: 通过集成 LangChain4j 等框架,支持连接多种 AI 模型(如 OpenAI, Anthropic, GitHub Models)。
  • 上下文增强: 可选地将数据库元数据作为 RAG(检索增强生成)的上下文提供给 AI 模型,帮助 AI 更准确地理解数据库结构,例如在生成 SQL 查询时。
  • 服务器模式: 作为一个独立的服务器运行,等待 MCP 客户端连接并发送请求。

安装步骤

SchemaCrawler AI MCP Server 是 SchemaCrawler 发行版的一部分。要使用它,您需要下载并安装 SchemaCrawler。通常,您可以从 SchemaCrawler 的官方网站或 GitHub 发布页面获取最新的发行版。

  1. 访问 SchemaCrawler GitHub Releases 页面。
  2. 下载最新的 SchemaCrawler 发行版(通常是一个 ZIP 或 TGZ 文件)。
  3. 解压下载的文件到您选择的目录。这将包含 SchemaCrawler 的可执行文件('schemacrawler.cmd' 或 'schemacrawler')。

服务器配置

MCP 客户端需要配置如何连接并启动 SchemaCrawler AI MCP Server。这通常涉及指定 SchemaCrawler 的可执行文件路径、运行服务器的命令以及连接到数据库所需的参数。

以下是一个示例 JSON 配置结构,描述了 MCP 客户端如何启动 SchemaCrawler 并运行 'mcpserver' 命令。请根据您的实际 SchemaCrawler 安装路径和数据库连接信息进行调整:

{
  "server name": "SchemaCrawler Database AI", // 给服务器起一个易读的名称
  "command": "/path/to/your/schemacrawler", // 替换为您的 schemacrawler 可执行文件的实际路径
  "args": [
    "--command=mcpserver", // 指定运行 mcpserver 命令
    "--database.url=<your_jdbc_url>", // 替换为您的数据库 JDBC 连接字符串
    "--database.user=<your_username>", // 替换为连接数据库的用户名
    "--database.password=<your_password>", // 替换为连接数据库的密码
    "--api-key=<your_ai_api_key>", // 替换为您的 AI 提供商(如 OpenAI)的 API Key
    "--model=<ai_model_name>", // 替换为要使用的 AI 模型名称(如 gpt-4o-mini, claude-3-haiku-20240307)
    "--use-metadata=true", // 可选:是否允许分享数据库元数据给 AI
    "--context=10", // 可选:AI 对话上下文消息数量
    "--timeout=60" // 可选:AI 请求超时时间(秒)
    // 您还可以添加其他标准的 SchemaCrawler 连接或加载选项
  ]
}

将此 JSON 配置提供给支持 MCP 的 LLM 客户端,客户端将能够启动并连接到 SchemaCrawler AI MCP Server。

基本使用方法

  1. 配置客户端: 在您的 MCP 兼容 LLM 客户端中,使用上面提供的 JSON 结构配置 SchemaCrawler AI Database Server。
  2. 启动服务器: 客户端将根据配置自动启动 SchemaCrawler 进程,并运行 'mcpserver' 命令。该进程将连接到您的数据库并启动 MCP 服务器。
  3. 与 AI 交互: 通过 LLM 客户端与 AI 进行对话。当您询问与数据库 schema 相关的问题时(例如,“列出所有表格”,“描述用户表有哪些列”,“检查索引缺失问题”),AI 将识别出需要调用 SchemaCrawler 工具来获取信息。
  4. 接收结果: AI 客户端会向 SchemaCrawler MCP Server 发送工具调用请求。服务器执行相应的数据库操作,并将结果返回给客户端。AI 客户端接收结果后,会将其整合到回复中呈现给您。

关键词

数据库 schema, AI 集成, 数据库探索, SchemaCrawler, 智能数据库工具

信息

分类

AI与计算