SchemaVault
MCP服务器,用于存储和检索LLM的数据库模式信息。
特性
- 自动加载copula Unity目录 启动时的模式
- 基于向量的语义搜索 具有可配置的嵌入服务
- 基于文件的存储 (无需外部数据库)
- MCP接口 通过HTTP/SSE实现LLM集成
- LM工作室兼容
快速开始
- 复制
.env.example到.env并配置:
cp .env.example .env- 配置您的
.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- 构建并运行:
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"]
}
}
}运作原理
- 启动时,清理现有数据并重新加载模式
- 从copula Unity目录加载所有模式(如果已配置)
- 使用配置的嵌入服务嵌入模式
- 将嵌入存储在Hnswlib向量索引中
- 通过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工作区
