使用说明
MCP松果矢量数据库服务器
该项目实现了一个模型上下文协议(MCP)服务器,该服务器允许向松果矢量数据库读取和写入矢量化信息。它设计用于处理RAG处理的PDF数据和Confluence数据。
特性
- 使用文本查询搜索类似文档
- 使用自定义元数据将新向量添加到数据库中
- 批量处理并上传Confluence数据
- 按ID删除向量
- 基本数据库统计(暂时禁用)
先决条件
- Bun运行时
- 松果API键
- OpenAI API密钥(用于生成嵌入)
安装
-
克隆此存储库
-
安装依赖项:
bun install -
创建一个
.env包含以下内容的文件:PINECONE_API_KEY=your-pinecone-api-key OPENAI_API_KEY=your-openai-api-key PINECONE_HOST=your-pinecone-host PINECONE_INDEX_NAME=your-index-name DEFAULT_NAMESPACE=your-namespace
用法
运行MCP服务器
启动服务器:
bun src/index.ts
服务器将通过stdio启动并监听MCP命令。
运行示例客户端
使用示例客户端测试服务器:
bun examples/client.ts
处理汇流数据
Confluence处理脚本提供了详细的日志记录和验证:
bun src/scripts/process-confluence.ts <file-path> [collection] [scope]
参数:
file-path:Confluence JSON文件的路径(必填)collection:文档集合名称(默认为“documentation”)scope:文档范围(默认为“文档”)
例子:
bun src/scripts/process-confluence.ts ./data/confluence-export.json "tech-docs" "engineering"
脚本将:
- 验证输入参数
- 处理和矢量化内容
- 批量上传矢量
- 验证上传成功
- 提供流程的详细日志
可用工具
服务器提供以下工具:
-
search-vectors-搜索具有参数的类似文档:- 查询:字符串(搜索查询文本)
- topK:数字(1-100,默认值:5)
- 筛选器:对象(可选筛选条件)
-
add-vector-添加带有参数的单个文档:- text:字符串(要矢量化的内容)
- 元数据:对象(矢量元数据)
- id:string(可选自定义id)
-
process-confluence-将JSON数据与参数进行流程融合:- filePath:字符串(JSON文件的路径)
- namespace:string(可选,默认为“capella文档搜索”)
-
delete-vectors-删除带有参数的向量:- ids:string[](向量ID列表)
- namespace:string(可选,默认为“capella文档搜索”)
-
get-stats-获取数据库统计信息(暂时禁用)
数据库配置
服务器需要松果矢量数据库。在您的 .env 文件:
PINECONE_API_KEY=your-api-key
PINECONE_HOST=your-host
PINECONE_INDEX_NAME=your-index
DEFAULT_NAMESPACE=your-namespace
元数据模式
汇流文件
ID: confluence-[page-id]-[item-id]
title: [title]
pageId: [page-id]
spaceKey: [space-key]
type: [type]
content: [text-content]
author: [author-name]
source: "confluence"
collection: "documentation"
scope: "documentation"
...
贡献
- 分叉存储库
- 创建特征分支:
git checkout -b feature/my-new-feature - 提交您的更改:
git commit -am 'Add some feature' - 推到分支:
git push origin feature/my-new-feature - 提交拉取请求
许可证
麻省理工学院