日光浴室
知识库MCP服务器 Qdrant 具有局部嵌入的矢量数据库(nomic-embed-ext-v1.5 通过HuggingFace变压器+ONNX运行时)。
Solarium作为本地MCP服务器进程运行——嵌入在您的机器上计算,向量存储在您选择的Qdrant实例中(本地或云端)。
设置
先决条件
- Node.js 20+
- npm
安装依赖项
cd solarium
npm install构建和链接
npm run build
npm link这将构建服务器并创建全局 solarium PATH上的命令。
运行日光浴室二进制文件
solarium预下载嵌入模型(可选但推荐)
模型(约130MB)在首次使用时会自动下载,但您可以提前缓存:
./bin/download-model.sh配置Qdrant实例
在外壳配置文件中设置Qdrant API密钥(~/.zshrc 或 ~/.bashrc):
# Qdrant Cloud (Solarium)
export QDRANT_API_KEY=然后重新加载shell: source ~/.zshrc
添加到您的Claude Code MCP配置中
添加以下内容 .mcp.json 在您希望Solarium可用的任何回购中:
{
"mcpServers": {
"solarium": {
"command": "solarium",
"env": {
"QDRANT_URL": "https://your-cluster.cloud.qdrant.io:6333"
}
}
}
}QDRANT_API_KEY 从shell环境中自动读取。
验证
在Claude Code中,运行 /mcp 要确认Solarium已连接,请尝试:
在知识库中搜索“部署架构”
可用工具
| 工具 | 说明 |
|---|---|
store_document | 存储文档(用于语义搜索的块和嵌入) |
search | 跨所有文档的语义搜索 |
list_documents | 列出所有包含元数据的文档 |
read_document | 按ID读取完整文档内容 |
update_document | 更新内容或元数据(如果内容发生变化,则重新嵌入) |
delete_document | 删除文档及其所有块 |
list_tags | 列出所有带有计数的标签 |
tag_document | 向文档添加标签 |
untag_document | 从文档中删除标记 |
仪表盘
Solarium包括一个本地网络仪表板,用于浏览文档、语义搜索、标签管理和分析。
构建并运行仪表板
先重新加载你的shell。
npm run build:dashboard
solarium-dashboard然后打开 http://localhost:3333 在您的浏览器中。
仪表板要求相同 QDRANT_URL 和 QDRANT_API_KEY 环境变量作为MCP服务器。集 DASHBOARD_PORT 更改端口(默认值:3333)。
视图
- 概述 --收集统计数据(文档/向量/点数)、最近的文档、标签云
- 文件 --带标签过滤的分页文档列表,带渲染标记和块可视化的完整文档细节,内联标签管理(添加/删除)
- 搜索 --具有相关性得分、片段和标签过滤的语义搜索
- 分析 --文档随时间的变化、标签分布、块大小分布(Vega Lite图表)、收集统计数据
建筑
仪表板作为一个独立于MCP服务器(使用stdio)的进程运行。两者共享相同的源代码——Qdrant客户端、工具、配置和嵌入管道。
- 服务器驱动渲染 --HTML从ClojureScript打嗝在服务器上呈现,流式传输到浏览器
- SSE+异形 --通过DOM变形的服务器发送事件进行实时更新(每60秒轮询Qdrant一次)
- 顺风CSS +
@tailwindcss/typography--搭配prosemarkdown内容类 - Vega Lite --交互式图表,仅在分析页面上从CDN延迟加载
- 无前端框架 --没有React,就没有客户端状态管理;约30行客户端JS用于SSE布线
配置
所有配置都是通过环境变量进行的:
| 变量 | 默认值 | 描述 |
|---|---|---|
QDRANT_URL | http://localhost:6333 | Qdrant服务器URL |
QDRANT_API_KEY | _(无)_ | Qdrant API密钥(云需要) |
COLLECTION_NAME | knowledge | Qdrant集合名称 |
MODEL_NAME | nomic-ai/nomic-embed-text-v1.5 | 拥抱人脸嵌入模型 |
CHUNK_MAX_CHARS | 1600 | 每个块的最大字符数 |
CHUNK_OVERLAP | 200 | 块之间的重叠 |
DASHBOARD_PORT | 3333 | 仪表板HTTP服务器端口 |
发展
# Watch mode — MCP server
npm run watch
# Watch mode — dashboard
npm run watch:dashboard
# Watch both
npm run watch:all
# Run tests
npm test使用shadow cljs(ClojureScript)构建。
