数据库模式存储与检索服务

SchemaVault是一个用于存储和检索数据库模式信息的MCP服务器,支持向量语义搜索和LLM集成。

  • by gszecsenyi
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 gszecsenyi/SchemaVault_MCP

使用说明

SchemaVault

MCP服务器,用于存储和检索LLM的数据库模式信息。

特性

  • 自动加载copula Unity目录 启动时的模式
  • 基于向量的语义搜索 具有可配置的嵌入服务
  • 基于文件的存储 (无需外部数据库)
  • MCP接口 通过HTTP/SSE实现LLM集成
  • LM工作室兼容

快速开始

  1. 复制 .env.example 到 .env 并配置:
cp .env.example .env
  1. 配置您的 .env:
# Embedding API (default: local embedding service)
EMBEDDING_API_URL=http://localhost:8000/v1
EMBEDDING_API_KEY=your-secret-token
EMBEDDING_MODEL=nomic-embed-text

# Databricks (optional)
DATABRICKS_HOST=https://your-workspace.cloud.databricks.com
DATABRICKS_TOKEN=your-token
DATABRICKS_CATALOGS=main
  1. 构建并运行:
docker-compose up --build

服务器在上运行 http://localhost:8001

MCP工具

工具 说明
add_schema 存储表架构
query_model 表信息的语义搜索
list_models 列出所有存储的表

端点

  • GET /mcp/sse -MCP的SSE连接
  • POST /mcp/messages -MCP消息处理程序
  • GET /health -健康检查

LM工作室集成

增添 ~/.lmstudio/mcp.json:

{
  "mcpServers": {
    "schemavault": {
      "url": "http://localhost:8001/mcp/sse"
    }
  }
}

Claude桌面集成

增添 claude_desktop_config.json:

{
  "mcpServers": {
    "schemavault": {
      "command": "docker",
      "args": ["exec", "-i", "schemavault-schemavault-1", "python", "-m", "src.server"]
    }
  }
}

运作原理

  1. 启动时,清理现有数据并重新加载模式
  2. 从copula Unity目录加载所有模式(如果已配置)
  3. 使用配置的嵌入服务嵌入模式
  4. 将嵌入存储在Hnswlib向量索引中
  5. 通过MCP进行LLM查询以进行语义模式搜索

环境变量

变量 默认值 描述
EMBEDDING_API_URL http://localhost:8000/v1 嵌入服务URL
EMBEDDING_API_KEY your-secret-token 嵌入API密钥
EMBEDDING_MODEL nomic-embed-text 嵌入模型名称
DATABRICKS_HOST - Databricks工作区URL
DATABRICKS_TOKEN - Databricks PAT
DATABRICKS_CATALOGS main 要加载的目录(main, a,b,或 *)
DATABRICKS_SCHEMAS (all) 要加载的架构(可选: schema1,schema2 或 *)

存储

数据存储在 ./data/ (每次启动时刷新):

  • vectors.index -Hnswlib矢量索引(768维)
  • schemas.json -表元数据

需求

  • 码头工人
  • 嵌入服务(与OpenAI兼容的API)
  • (可选)具有Unity目录访问权限的copula工作区