seekdb MCP Server
December 25, 2025 · View on GitHub
English | 简体中文
seekdb MCP Server
一个模型上下文协议 (MCP) 服务器,用于与 seekdb 数据库进行交互。该服务器允许 AI 助手通过受控接口执行向量操作、管理集合、执行 SQL 查询以及利用 AI 函数,使数据库探索和分析更加安全和结构化。
📋 目录
✨ 特性
- 向量集合管理: 创建、列出、查询和管理向量集合
- 高级搜索: 全文搜索、向量相似性搜索和混合搜索
- AI 函数: 集成 AI 模型进行嵌入、文本生成和重排序
- AI 记忆系统: 为 AI 助手提供基于向量的持久化记忆
- 数据导入/导出: 导入 CSV 文件到 seekdb 并将数据导出为 CSV
- SQL 操作: 在 seekdb 上执行 SQL 查询
- 多传输模式: 支持 stdio、SSE 和 Streamable HTTP 模式
🛠️ 可用工具
向量集合工具
| 工具 | 描述 |
|---|---|
create_collection | 创建具有可配置维度和距离度量的新向量集合 |
list_collections | 列出 seekdb 中的所有集合 |
has_collection | 检查集合是否存在 |
peek_collection | 预览集合中的文档 |
add_data_to_collection | 添加具有自动生成嵌入的文档 |
update_collection | 更新集合中的现有文档 |
delete_documents | 按 ID 或过滤条件删除文档 |
query_collection | 使用向量相似性搜索查询文档 |
delete_collection | 删除集合及其所有数据 |
搜索工具
| 工具 | 描述 |
|---|---|
full_text_search | 使用 MATCH...AGAINST 语法执行全文搜索 |
hybrid_search | 结合全文搜索和向量搜索,使用 RRF 排序 |
AI 模型工具
| 工具 | 描述 |
|---|---|
create_ai_model | 注册 AI 模型(嵌入、文本生成或重排序) |
create_ai_model_endpoint | 创建将模型连接到 API 服务的端点 |
drop_ai_model | 移除已注册的 AI 模型 |
drop_ai_model_endpoint | 移除 AI 模型端点 |
ai_complete | 调用 LLM 进行文本生成 |
ai_rerank | 使用 AI 模型按相关性重排文档 |
get_registered_ai_models | 列出所有已注册的 AI 模型 |
get_ai_model_endpoints | 列出所有 AI 模型端点 |
记忆工具
| 工具 | 描述 |
|---|---|
seekdb_memory_query | 对存储的记忆进行语义搜索 |
seekdb_memory_insert | 存储带有元数据的新记忆 |
seekdb_memory_delete | 按 ID 删除记忆 |
seekdb_memory_update | 更新现有记忆 |
数据导入/导出工具
| 工具 | 描述 |
|---|---|
import_csv_file_to_seekdb | 将 CSV 数据导入为表或向量集合 |
export_csv_file_from_seekdb | 将表或集合数据导出为 CSV |
数据库工具
| 工具 | 描述 |
|---|---|
execute_sql | 在 seekdb 上执行 SQL 查询 |
get_current_time | 从 seekdb 数据库获取当前时间 |
📋 前提条件
seekdb 要求
seekdb 支持两种部署模式:
-
嵌入式模式: seekdb 作为库运行在你的应用程序内
- 支持的操作系统: Linux (glibc >= 2.28)
- 支持的 Python 版本: 3.11 到 3.13 (pyseekdb), CPython 3.8 到 3.14 (pylibseekdb)
- 支持的架构: x86_64, aarch64
- 部署方式: 使用
pyseekdbSDK 部署
-
客户端/服务器模式: 连接到已部署的 seekdb
- 使用
yum install部署 - 在容器环境中部署
- 使用 OceanBase Desktop 部署(GUI 应用)
- 使用
详细部署说明请参阅 seekdb 部署概述。
🚀 安装
安装 uv(推荐)
uv 是一个极快的 Python 包安装器和解析器。uvx 命令(包含在 uv 中)用于运行 Python 工具。
# 在 macOS 和 Linux 上
curl -LsSf https://astral.sh/uv/install.sh | sh
# 在 Windows 上
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# 或通过 pip 安装
pip install uv
安装完成后,重启终端或运行 source ~/.bashrc(或相应的配置文件)以确保 uvx 可用。
安装 seekdb mcp server
从 PyPI 安装:
pip install seekdb-mcp-server
或从源码安装:
git clone https://github.com/oceanbase/awesome-oceanbase-mcp.git
cd awesome-oceanbase-mcp/src/seekdb_mcp_server
pip install .
⚙️ 配置
seekdb MCP Server 支持两种部署模式:
嵌入式模式(默认)
无需配置。服务器启动时会自动初始化嵌入式 seekdb 数据库。此模式推荐用于本地开发和个人使用。
注意:嵌入式模式目前仅支持 Linux(glibc >= 2.28)。
服务器模式
要连接到已部署的 seekdb 服务器,请配置以下环境变量:
方式一:环境变量
SEEKDB_HOST=localhost # 数据库主机
SEEKDB_PORT=2881 # 数据库端口(默认:2881)
SEEKDB_USER=your_username
SEEKDB_PASSWORD=your_password
SEEKDB_DATABASE=your_database
方式二:.env 文件
将 .env.template 复制为 .env 并填写相应值:
cp .env.template .env
# 编辑 .env 填写你的 seekdb 连接信息
注意:如果未设置
SEEKDB_USER,服务器将自动使用嵌入式模式。
🚀 快速开始
seekdb MCP Server 支持三种传输模式:
Stdio 模式
在你的 MCP 客户端配置文件中添加以下内容:
嵌入式模式(使用 uvx):
{
"mcpServers": {
"seekdb": {
"command": "uvx",
"args": [
"seekdb-mcp-server"
]
}
}
}
服务器模式(使用 uvx 配置 env):
{
"mcpServers": {
"seekdb": {
"command": "uvx",
"args": [
"seekdb-mcp-server"
],
"env": {
"SEEKDB_HOST": "your_host",
"SEEKDB_PORT": "2881",
"SEEKDB_USER": "your_username",
"SEEKDB_PASSWORD": "your_password",
"SEEKDB_DATABASE": "your_database"
}
}
}
}
从源码运行:
{
"mcpServers": {
"seekdb": {
"command": "uv",
"args": [
"--directory",
"path/to/awesome-oceanbase-mcp/src/seekdb_mcp_server",
"run",
"seekdb-mcp-server"
]
}
}
}
SSE 模式
以 SSE 模式启动服务器:
步骤 1:在当前目录配置 .env 文件
# 创建 .env 文件,填写 seekdb 连接信息
cat > .env << EOF
SEEKDB_HOST=your_host
SEEKDB_PORT=2881
SEEKDB_USER=your_username
SEEKDB_PASSWORD=your_password
SEEKDB_DATABASE=your_database
EOF
步骤 2:加载环境变量
source .env
步骤 3:启动服务器
uvx seekdb-mcp-server --transport sse --port 6000
参数说明:
--transport: MCP 服务器传输类型(默认:stdio)--host: 绑定的主机(默认:127.0.0.1,使用 0.0.0.0 以允许远程访问)--port: 监听端口(默认:6000)
从源码启动:
uv --directory path/to/seekdb_mcp_server run seekdb-mcp-server --transport sse --port 6000
配置 URL: http://ip:port/sse
客户端配置示例
VSCode 扩展 Cline:
"sse-seekdb": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "sse",
"url": "http://127.0.0.1:6000/sse"
}
Cursor:
"sse-seekdb": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "sse",
"url": "http://127.0.0.1:6000/sse"
}
Cherry Studio:
- MCP → General → Type: 从下拉菜单选择 "Server-Sent Events (sse)"
- URL:
http://127.0.0.1:6000/sse
Streamable HTTP
以 Streamable HTTP 模式启动服务器:
步骤 1:在当前目录配置 .env 文件
# 创建 .env 文件,填写 seekdb 连接信息
cat > .env << EOF
SEEKDB_HOST=your_host
SEEKDB_PORT=2881
SEEKDB_USER=your_username
SEEKDB_PASSWORD=your_password
SEEKDB_DATABASE=your_database
EOF
步骤 2:加载环境变量
source .env
步骤 3:启动服务器
uvx seekdb-mcp-server --transport streamable-http --port 6000
参数说明:
--transport: MCP 服务器传输类型(默认:stdio)--host: 绑定的主机(默认:127.0.0.1,使用 0.0.0.0 以允许远程访问)--port: 监听端口(默认:6000)
从源码启动:
uv --directory path/to/seekdb_mcp_server run seekdb-mcp-server --transport streamable-http --port 6000
配置 URL: http://ip:port/mcp
客户端配置示例
VSCode 扩展 Cline:
"streamable-seekdb": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "http://127.0.0.1:6000/mcp"
}
Cursor:
"streamable-seekdb": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "http://127.0.0.1:6000/mcp"
}
Cherry Studio:
- MCP → General → Type: 从下拉菜单选择 "Streamable HTTP (streamableHttp)"
- URL:
http://127.0.0.1:6000/mcp
🔧 高级功能
🧠 AI 记忆系统
AI 记忆系统使你的 AI 助手能够基于 seekdb 的向量能力维护持久化的向量记忆。
记忆系统使你的 AI 能够在对话间保持连续的上下文,无需重复告知个人偏好和信息。四个智能工具协同工作,创造无缝记忆体验:
seekdb_memory_query- 语义搜索和检索相关记忆seekdb_memory_insert- 自动捕获和存储重要对话内容seekdb_memory_delete- 删除过时或不需要的记忆seekdb_memory_update- 根据新信息演进和更新记忆
记忆系统特性
- ✅ 跨会话连续性 - 无需重复介绍自己
- ✅ 智能语义搜索 - 理解相关概念和上下文
- ✅ 个性化体验 - AI 真正"了解"你的偏好
- ✅ 自动捕获 - 重要信息无需手动保存
- ✅ 多语言支持 - 以任何语言存储和查询记忆
记忆分类
记忆系统按类别智能组织信息:
- 运动/健身: 足球、篮球、游泳、健身房、瑜伽、跑步等
- 食物/饮品: 咖啡、茶、披萨、寿司、素食偏好等
- 工作/职业: 职位、公司、技能、项目等
- 个人信息: 生日、家乡、家庭、语言、爱好等
- 技术: 编程语言、框架、数据库、工具等
- 娱乐: 电影、音乐、书籍、游戏、类型等
📚 示例
集合操作
用户: 创建一个名为 "document" 的集合
AI: 我已成功在 seekdb 中创建了名为 "document" 的集合,使用以下默认设置:
- 维度: 384(向量大小)
- 距离度量: L2(欧几里得距离)
用户: 向 document 中插入两句话:机器学习是人工智能的一个子集,向量数据库支持语义搜索
AI: 完成!我已将两句话插入到 "document" 集合中:
| ID | 文档 |
|---|---|
| doc1 | 机器学习是人工智能的一个子集 |
| doc2 | 向量数据库支持语义搜索 |
用户: 查询与机器学习相关的文档
AI: 以下是与 "机器学习" 相关的文档,按相关性排序:
| 排名 | ID | 文档 | 距离 |
|---|---|---|---|
| 1 | doc1 | 机器学习是人工智能的一个子集 | 5.44 |
| 2 | doc2 | 向量数据库支持语义搜索 | 7.83 |
用户: 将关于机器学习的文档更新为 "Python 是一种流行的编程语言。"
AI: 完成!我已更新该文档:
| ID | 更新前 | 更新后 |
|---|---|---|
| doc1 | 机器学习是人工智能的一个子集 | Python 是一种流行的编程语言。 |
用户: 删除关于向量数据库的文档
AI: 完成!我已删除关于向量数据库的文档:
| ID | 已删除的文档 |
|---|---|
| doc2 | 向量数据库支持语义搜索 |
用户: 查询 document 中的所有文档
AI: 以下是 "document" 集合中的所有文档:
| ID | 文档 | 元数据 |
|---|---|---|
| doc1 | Python 是一种流行的编程语言。 | {} |
该集合当前包含 1 个文档。
用户: 删除 document 集合
AI: 完成!集合 "document" 及其所有数据已被永久删除。
搜索工具
用户: 创建一个集合 hybrid_search_test
AI: 完成!集合 hybrid_search_test 已成功创建:
- 维度: 384
- 距离度量: L2
用户: 插入以下文档:
- "天气预报预测周末将是晴天。"
- "珠穆朗玛峰是世界上最高的山峰。"
- "日落时分海浪拍打着岩石海岸。"
- "苹果是一种美味的红色水果,生长在果园的树上。"
- "新款 iPhone 17 Pro 配备先进的相机系统和钛金属设计。"
AI: 完成!已成功向 hybrid_search_test 集合添加 5 个文档:
| ID | 文档 |
|---|---|
| doc1 | 天气预报预测周末将是晴天。 |
| doc2 | 珠穆朗玛峰是世界上最高的山峰。 |
| doc3 | 日落时分海浪拍打着岩石海岸。 |
| doc4 | 苹果是一种美味的红色水果,生长在果园的树上。 |
| doc5 | 新款 iPhone 17 Pro 配备先进的相机系统和钛金属设计。 |
用户: 执行混合搜索,全文关键词 "apple",语义搜索 "apple smartphone technology"
AI: 以下是结合全文关键词 "apple" 和语义查询 "apple smartphone technology" 的混合搜索结果:
| 排名 | ID | 文档 |
|---|---|---|
| 1 | doc4 | 苹果是一种美味的红色水果,生长在果园的树上。 |
| 2 | doc5 | 新款 iPhone 17 Pro 配备先进的相机系统和钛金属设计。 |
| 3 | doc2 | 珠穆朗玛峰是世界上最高的山峰。 |
| 4 | doc1 | 天气预报预测周末将是晴天。 |
| 5 | doc3 | 日落时分海浪拍打着岩石海岸。 |
分析:
- doc4 排名第一,因为与字面词 "Apple" 有很强的全文匹配
- doc5 排名第二,因为它与 "smartphone technology"(智能手机技术)语义匹配(iPhone 是苹果的智能手机),尽管它没有明确包含 "apple" 这个词
- 其余文档相关性得分较低,因为它们与两种搜索条件都不太匹配
混合搜索成功地使用倒数排名融合 (RRF) 算法结合了关键词匹配 (BM25) 和语义相似性(向量搜索)来产生这些排序结果。
🔒 安全
此 MCP 服务器默认使用嵌入式 seekdb,在你的应用程序本地运行。
安全最佳实践
- 本地数据存储: 嵌入式 seekdb 在本地存储数据,确保数据隐私
- 网络安全: 使用 SSE 或 Streamable HTTP 模式时,确保采取适当的网络安全措施
- 文件权限: 确保数据目录有适当的文件权限
安全检查清单
- ✅ 嵌入式模式下数据保持本地
- ✅ 嵌入式模式无需凭证
- ✅ Stdio 模式:无网络端口暴露
- ✅ SSE/HTTP 模式:使用
--host 127.0.0.1限制仅本地访问 - ✅ 适用标准文件系统安全
📄 许可证
Apache License - 查看 LICENSE 文件了解详情。
🤝 贡献
我们欢迎贡献!请按照以下步骤:
- Fork 仓库
- 创建你的功能分支
git checkout -b feature/amazing-feature - 提交你的修改
git commit -m 'Add some amazing feature' - 推送到分支
git push origin feature/amazing-feature - 创建 Pull Request