Token导航 LogoToken导航TokenDH.com
Query Tool logo
搜索检索未说明官方级别未说明来源级核验

Query Tool

MCP Server

一个基于MCP协议的服务器,用于查询由lance-embedder项目创建的向量存储和知识图谱,支持语义搜索和关系感知检索。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
向量搜索TypeScriptClaude搜索Claude DesktopClaudeCursorWindsurf

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mark-hingston

提供方

mark-hingston

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

嵌入查询服务器

MCP(模型上下文协议)服务器,用于查询由 喷枪嵌入器 项目。

特性

  • 矢量搜索:使用语义搜索查询LanceDB矢量存储
  • 图形搜索:使用GraphRAG构建的查询知识图,用于关系感知检索
  • 自动模式:在可用时自动使用图形搜索,回退到矢量搜索
  • 标准运输:与Claude Desktop、Cursor和Windsurf等MCP客户端兼容

安装

npm install
npm run build

用法

必需参数

  • `--index-path

` -embedder创建的embeddings目录的路径

  • --base-url -用于生成查询嵌入的LM Studio基本URL
  • --model -嵌入模型名称(必须与用于索引的名称匹配)

可选参数

索引设置:

  • --table-name -LanceDB表名(默认:“嵌入”)
  • --dimensions -嵌入尺寸(默认值:1024)

查询设置:

  • --top-k -要返回的结果数(默认值:10)

图形设置:

  • --enable-graph -启用图形搜索模式(默认:禁用以快速启动)
  • --graph-threshold -图查询的相似性阈值(默认值:0.7)
  • --random-walk-steps -图遍历步骤(默认值:100)
  • --restart-prob -随机游走的重启概率(默认值:0.15)
  • --preload-graph -启动时在后台开始构建图形(允许通过矢量搜索进行即时查询)

性能设置:

  • --verbose -启用详细日志记录以进行调试和性能监控

例子

基本矢量搜索(快速启动):

node dist/index.js \
  --index-path ./embeddings \
  --base-url http://localhost:1234/v1 \
  --model text-embedding-model \
  --top-k 5

使用图搜索(延迟加载-基于第一个查询构建):

node dist/index.js \
  --index-path ./embeddings \
  --base-url http://localhost:1234/v1 \
  --model text-embedding-model \
  --enable-graph \
  --top-k 5

预加载背景图(最适合生产):

node dist/index.js \
  --index-path ./embeddings \
  --base-url http://localhost:1234/v1 \
  --model text-embedding-model \
  --enable-graph \
  --preload-graph \
  --verbose

对于大型索引(10K+文件),建议设置:

node dist/index.js \
  --index-path ./embeddings \
  --base-url http://localhost:1234/v1 \
  --model text-embedding-model \
  --enable-graph \
  --preload-graph \
  --top-k 10 \
  --verbose

MCP工具:查询索引

服务器公开了一个名为 query_index.

输入参数

  • query (字符串,必填)-搜索查询文本
  • mode (枚举:“auto”|“vector”|“graph”,默认值:“自动”)-搜索模式

- auto:如果存在图形数据,则使用图形搜索,否则使用矢量搜索 - vector:仅通过LanceDB进行力矢量搜索 - graph:强制图形搜索(如果没有图形数据则出错)

输出

返回一个按分数排序的结果数组(最高者优先),每个结果包含:

  • text -块内容
  • source -块来源的文件路径
  • score -相似性得分(嵌入相似性)
  • chunkIndex -块在源文件中的位置

项目结构

query-tool-server/
├── src/
│   ├── index.ts           # Main entry point and MCP server setup
│   ├── lib/
│   │   └── graph-store.ts # GraphRAG data loading
│   └── types/
│       └── index.ts       # TypeScript type definitions
├── dist/                   # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md

性能优化

服务器为处理大型索引(10K+文件)实现了多项优化:

1. 延迟加载(默认)

  • 图构造被推迟到第一个查询
  • 即使索引很大,服务器也会立即启动
  • 第一个查询触发图形构建(10K文件可能需要30秒2分钟)
  • 后续查询使用缓存的图

2. 并行批量加载

  • 使用以下命令并行加载所有批处理文件 Promise.all()
  • 显著减少大型数据集的I/O时间
  • 进度日志显示大型索引的加载状态

3. 自动回退

  • 若查询在构建图时到达,它会自动回退到向量搜索
  • 没有因图构建时间而导致的查询失败
  • 警告已记录到控制台进行调试

4. 持久图形缓存

  • 图形元数据在首次构建后缓存到磁盘
  • 未来的优化可以序列化整个图结构
  • 目前受限于Mastra GraphRAG系列化API

5. 背景预加载(可选)

  • 使用 --preload-graph 在启动时开始构建图形
  • 服务器在构建过程中通过矢量搜索保持响应
  • 图形准备就绪后可用,无阻塞

6. 工作线程支持

  • 图形构建可以卸载到工作线程
  • 使主线程对查询保持响应
  • 目前处于实验阶段(见 graph-worker.ts)

运作原理

  1. 初创公司:

- 验证配置并加载LanceDB索引 - 加载图形元数据(但不是完整的图形-延迟加载) - 如果满足以下条件,则可选择启动背景图构建 --preload-graph 已设置 - 服务器立即就绪

  1. 查询处理:收到查询时:

- 使用指定的模型生成查询嵌入 - 根据以下内容选择搜索模式(矢量或图形) mode 参数 - 对于矢量搜索:直接查询LanceDB(总是很快) - 对于图形搜索: - 检查图形构建状态 - 如果正在构建,则返回到带有警告的矢量搜索 - 如果准备就绪,则使用图形进行关系感知搜索 - 如果空闲,则触发延迟构建,然后使用图 - 按分数对结果排序并返回前K

与嵌入器集成

此服务器旨在使用由创建的索引 嵌入器 项目:

  1. 使用embedder创建索引:
   embedder -d ./my-repo -o ./embeddings --enable-graph
  1. 启动指向该索引的查询服务器:
   node dist/index.js \
     --index-path ./embeddings \
     --base-url http://localhost:1234/v1 \
     --model text-embedding-model \
     --enable-graph

迁移指南:优化前后

之前(大索引启动缓慢)

  • 服务器将在启动时构建整个图形
  • 对于10K文件:服务器准备就绪可能需要2-5分钟
  • 在此期间无法处理任何查询
  • 即使不使用,也始终加载图形

之后(快速启动+延迟加载)

  • 服务器立即启动(\<1秒)
  • Graph基于第一个查询构建(或在后台使用 --preload-graph)
  • 矢量搜索始终可用
  • 构建完成后,图形搜索变得可用
  • 并行加载可将构建时间缩短约50-70%

行为变化

没有 --enable-graph:

  • 无变化-仅矢量搜索,即时启动

随着 --enable-graph (默认-延迟加载):

  • 服务器立即启动
  • 第一个图查询触发构建(大型索引为30s-2min)
  • 构建过程中的查询会自动回退到向量搜索
  • 后续查询使用缓存图

随着 --enable-graph --preload-graph (推荐用于生产):

  • 服务器立即启动
  • 图形构建立即在后台开始
  • 所有查询都使用向量搜索,直到图形准备就绪
  • 没有用户面临的延迟,图表准备就绪后可用

错误处理

服务器在启动时进行验证:

  • 索引路径存在
  • LanceDB表存在
  • 如果请求图形搜索,则图形数据必须可用

所有错误均以MCP错误响应的形式返回,并带有描述性消息。

发展

# Run in development mode
npm run dev -- --index-path ./embeddings --base-url http://localhost:1234/v1 --model text-embedding-model

# Build for production
npm run build

# Run built version
npm start -- --index-path ./embeddings --base-url http://localhost:1234/v1 --model text-embedding-model

许可证

国际学生委员会

目录标签

目录标签

向量搜索TypeScriptClaude搜索本地部署知识图谱语义搜索关系感知检索MCP协议

支持客户端

Claude DesktopClaudeCursorWindsurf

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP