mcpField
S
surrealdb

surrealdb

github.com/24601数据与数据库35241 次安装19 周前更新
代码仓库

关于 surrealdb

为 AI Agent 提供 SurrealDB 3 架构、开发与运维指引,覆盖 SurrealQL、数据建模、部署和 SDK 等内容。还包含健康检查与模式检查脚本,并说明相关工具及集成。

主要功能

  1. 01SurrealQL 与多模型数据指引
  2. 02图遍历与向量搜索
  3. 03安全、部署和性能指引
  4. 04SDK 与生态集成资料
  5. 05健康检查和模式检查脚本

适用场景

  1. 01设计 SurrealDB 3 数据模型
  2. 02构建图查询或向量搜索
  3. 03诊断实例并检查其模式
  4. 04评估面向 Agent 的 SurrealDB 集成

MCP 相关

该技能介绍 SurrealMCP,这是一个 MCP 服务,允许兼容的 AI 主机通过查询、记录、连接和数据库选择等工具读写 SurrealDB。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/24601/surreal-skills --skill surrealdb

安装后在 Claude Code 中输入/surrealdb确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
AGENTS.md
README.md
SECURITY.md
CONTRIBUTING.md
LICENSE
CHANGELOG.md
SOURCES.json
.github/
PULL_REQUEST_TEMPLATE.md
.github/ISSUE_TEMPLATE/
config.yml
bug_report.md
feature_request.md
.github/workflows/
ci.yml
release.yml
upstream-check.yml
notes/
v1.5.x-convergence.md
v1.6.5-ratification.md
v1.6.2-ratification.md
references/
online_docs.md
surrealql_cheatsheet.md
rules/
deployment.md
data-modeling.md
langchain.md
editor-tooling.md
gotchas.md
performance.md
ecosystem-integrations.md
graph-queries.md
sdks.md
surreal-sync.md

详细介绍

SurrealDB 3 技能

SurrealDB 3 架构、开发与运维专家级指南。涵盖 SurrealQL、多模型数据建模、图遍历、向量搜索、安全、部署、性能调优、SDK 集成以及更广泛的 SurrealDB 生态,包括 SurrealKit、SurrealMCP、n8n、CodeMirror 和 Agent 技能界面。

面向 AI Agent

获取完整的功能清单、决策树和输出约定:

uv run {baseDir}/scripts/onboard.py --agent

完整的结构化说明请参阅 AGENTS.md。

命令功能
uv run {baseDir}/scripts/doctor.py健康检查:验证 surreal CLI、连接状态和版本
uv run {baseDir}/scripts/doctor.py --check快速检查通过或失败(仅返回退出代码)
uv run {baseDir}/scripts/schema.py introspect导出正在运行的 SurrealDB 实例的完整架构
uv run {baseDir}/scripts/schema.py tables列出所有表及其字段数和索引
uv run {baseDir}/scripts/onboard.py --agent用于 Agent 集成的 JSON 功能清单

先决条件

  • surreal CLI -- brew install surrealdb/tap/surreal(macOS),或参阅安装文档
  • Python 3.10+ -- 技能脚本所需
  • uv -- brew install uv(macOS)、pip install uv,或参阅 uv 文档

可选:

  • Docker -- 用于容器化的 SurrealDB 实例(docker run surrealdb/surrealdb:v3)
  • 首选的 SDK -- JavaScript、Python、Go、Rust、Java、Kotlin、.NET、C、PHP、Swift 或 Ruby

安全提示:本技能仅介绍通过包管理器和容器进行安装。 建议通过 Homebrew、apt/dnf、Cargo、npm 或 Docker 进行可审计的安装,而不要使用远程的一行式 Shell 安装脚本。

快速开始

凭据警告:以下示例使用 root/root,仅限本地开发使用。切勿使用默认凭据访问生产环境或共享实例。 对于非本地环境,请创建权限范围受限且遵循最小权限原则的用户。

# Start SurrealDB in-memory for LOCAL DEVELOPMENT ONLY
surreal start memory --user root --pass root --bind 127.0.0.1:8000

# Start with persistent RocksDB storage (local dev)
surreal start rocksdb://data/mydb.db --user root --pass root

# Start with SurrealKV (time-travel queries supported, local dev)
surreal start surrealkv://data/mydb --user root --pass root

# Connect via CLI REPL (local dev)
surreal sql --endpoint http://localhost:8000 --user root --pass root --ns test --db test

# Import a SurrealQL file
surreal import --endpoint http://localhost:8000 --user root --pass root --ns test --db test schema.surql

# Export the database
surreal export --endpoint http://localhost:8000 --user root --pass root --ns test --db test backup.surql

# Check version
surreal version

# Run the skill health check
uv run {baseDir}/scripts/doctor.py

环境变量

变量描述默认值
SURREAL_ENDPOINTSurrealDB 服务 URLhttp://localhost:8000
SURREAL_USERRoot 或命名空间用户名root
SURREAL_PASSRoot 或命名空间密码root
SURREAL_NS默认命名空间test
SURREAL_DB默认数据库test

这些变量直接对应 surreal sql CLI 标志(--endpoint、--user、--pass、--ns、--db),并可被官方 SurrealDB SDK 识别。

核心功能

精通 SurrealQL

全面涵盖 SurrealQL 查询语言:CREATE、SELECT、UPDATE、UPSERT、DELETE、RELATE、INSERT、LIVE SELECT、DEFINE、REMOVE、INFO、子查询、事务、futures 以及所有内置函数(array、crypto、duration、geo、math、meta、object、parse、rand、string、time、type、vector)。

参见:rules/surrealql.md

多模型数据建模

设计能够充分利用 SurrealDB 多模型能力的架构——文档集合、图边、关系引用、向量嵌入、时间序列数据和地理空间坐标——所有数据均可存储在单个数据库中,并使用同一种查询语言。

参见:rules/data-modeling.md

图查询

无需 JOIN 即可进行一流的图遍历。RELATE 可在记录之间创建有类型的边。使用 ->(出向)、<-(入向)和 <->(双向)运算符进行遍历。可在任意深度进行筛选、聚合和递归。

参见:rules/graph-queries.md

向量搜索

使用 HNSW 索引进行内置向量相似度搜索(v3 向量索引类型;在索引构建或重建期间,可回退到暴力搜索)。定义向量字段,创建可配置距离度量(cosine、euclidean、manhattan、minkowski)的索引,并使用 vector::similarity::* 函数进行查询。直接在 SurrealQL 中构建 RAG 流水线和语义搜索。

参见:rules/vector-search.md

安全与权限

通过 DEFINE TABLE ... PERMISSIONS 实现行级安全,支持命名空间/数据库/记录级访问控制;通过 DEFINE ACCESS 实现基于 JWT/令牌的身份验证;通过 DEFINE USER 定义系统用户;并使用 $auth/$session 运行时变量编写权限谓词。

参见:rules/security.md

部署与运维

支持单二进制部署、Docker、Kubernetes(Helm charts)、存储引擎选择(memory、RocksDB、SurrealKV、用于分布式场景的 TiKV)、备份/恢复、监控以及生产环境加固。

参见:rules/deployment.md

性能调优

涵盖索引策略(唯一索引、搜索索引、向量 HNSW)、使用 EXPLAIN 优化查询、连接池、存储引擎权衡、批量操作以及资源限制。

参见:rules/performance.md

SDK 集成

提供适用于 JavaScript/TypeScript(Node.js、Deno、Bun、浏览器)、Python、Go、Rust、Java、Kotlin、.NET、C、PHP、Swift(iOS/macOS/visionOS)和 Ruby 的官方 SDK。内容包括仅提供源码的 C 绑定、Python v3 尚未发布的 API 边界、.NET v0.10.2 beta 接口、连接协议、身份验证流程、实时查询订阅以及类型化记录处理。

参见:rules/sdks.md

Surrealism WASM 扩展

SurrealDB 3 新增:使用 Rust 编写并编译为 WASM 的自定义函数、分析器和逻辑,扩展数据库功能。定义、部署和管理 Surrealism 模块。

参见:rules/surrealism.md

SurrealML 数据库内推理(预览/不稳定)

surrealml 在 GitHub 上发布了 v0.1.2,但截至此快照,PyPI 上最新的 surrealml 软件包仍为 0.0.4。.surml 工件格式以及 [sklearn]、[torch]、[tensorflow] 附加项是稳定文档所述的边界。v1.4.0 文档中的 DEFINE MODEL、INFO FOR MODEL、REMOVE MODEL、ml::name<version>(...)、surreal ml import、db.upload_ml(...) 和 SurMlFile.from_<framework>(...) 工厂方法已在 v1.4.1 中撤回。目前,除非设置 LOCAL_BUILD=TRUE,否则 Python 安装流程会从 GitHub Releases 下载原生库,因此生产环境使用前请锁定版本并进行审核。

参见:rules/surrealml.md

SurrealMCP —— Model Context Protocol 服务

官方 MCP 服务(surrealdb/surrealmcp)让兼容 MCP 的 AI 主机(Claude Desktop、Cursor、VS Code 中的 GitHub Copilot、Zed、n8n)通过一个配置条目读写 SurrealDB。可从源码安装(cargo install --path .)或使用 Docker;不在 crates.io 或 npm 上发布。二进制文件需要 start 子命令。工具的线协议名称采用 snake_case:query、select、insert、create、upsert、update、delete、relate、connect_endpoint、use_namespace、use_database、list_namespaces、list_databases、disconnect_endpoint,以及云工具。

参见:rules/surrealmcp.md、skills/surrealmcp/SKILL.md

编辑器工具

surrealql-language-server v0.1.3 是第一方 LSP 基线;surql-lsp v0.1.1 仍是独立的社区 crate。该规则还涵盖 tree-sitter、第一方编辑器扩展,以及用于自定义 Web 编辑器的 @surrealdb/codemirror/@surrealdb/lezer v1.0.5。各扩展的命令面板和设置仍需以对应扩展的 README 为准。

参见:rules/editor-tooling.md

LangChain 集成(仅限 Python)

langchain-surrealdb 0.2.1(Python;langchain-core ~= 1.1.0、surrealdb ~= 1.0.8 v1 SDK)通过构造函数 SurrealDBVectorStore(embeddings, conn) 将 SurrealDB 作为向量存储使用。v1.4.0 中的 JS 软件包、异步类、聊天历史和混合检索器已在 v1.4.1 中撤回。

参见:rules/langchain.md

生态系统集成

尚未设立专门规则的官方文档及与第一方相邻的内容:面向可自托管 n8n 的 @surrealdb/n8n-nodes-surrealdb v0.6.0、官方 AI 框架文档索引、仅列入路线图的 Spectron/Agent Memory Context、CodeMirror 软件包,以及官方 surrealdb/agent-skills 仓库。请使用此规则,避免将路线图或指引页面误述为生产 API。

参见:rules/ecosystem-integrations.md

生态系统工具
  • Surrealist -- SurrealDB 官方 IDE 和 GUI(架构设计器、查询编辑器、图可视化工具)
  • Surreal-Sync -- 用于从其他数据库迁移的变更数据捕获(CDC)
  • SurrealFS -- 基于 SurrealDB 构建的 AI Agent 文件系统
  • SurrealKit -- 期望状态架构同步、基于发布的迁移、数据填充和声明式测试
  • SurrealML -- 预览阶段的 .surml 工件工具;服务端调用接口仍不稳定
  • SurrealMCP -- 面向 AI Agent 的模型上下文协议服务
  • n8n -- 面向可自托管 n8n 工作流的官方限定范围社区软件包
  • CodeMirror -- 面向自定义编辑器的官方 SurrealQL 语法软件包
  • setup-surreal -- 官方 GitHub Action(surrealdb/setup-surreal@v2),用于在 CI 工作流中运行 SurrealDB。它不是命令行引导工具(v1.4.0 中将其描述为此类工具的文档已在 v1.4.2 中撤回)

参见:rules/surrealist.md、rules/surreal-sync.md、rules/surrealfs.md、rules/surrealkit.md、rules/surrealml.md、rules/surrealmcp.md、rules/ecosystem-integrations.md、rules/deployment.md(setup-surreal 部分)

Doctor / 健康检查

# Full diagnostic (Rich output on stderr, JSON on stdout)
uv run {baseDir}/scripts/doctor.py

# Quick check (exit code 0 = healthy, 1 = issues found)
uv run {baseDir}/scripts/doctor.py --check

# Check a specific endpoint
uv run {baseDir}/scripts/doctor.py --endpoint http://my-server:8000

doctor 脚本会验证:是否已安装 surreal CLI 且位于 PATH 中、服务是否可访问、身份验证是否成功、命名空间和数据库是否存在、版本是否兼容,以及存储引擎状态。

架构内省

# Full schema dump (all tables, fields, indexes, events, accesses)
uv run {baseDir}/scripts/schema.py introspect

# List tables with summary
uv run {baseDir}/scripts/schema.py tables

# Inspect a specific table
uv run {baseDir}/scripts/schema.py table <table_name>

# Export schema as SurrealQL (reproducible DEFINE statements)
uv run {baseDir}/scripts/schema.py export --format surql

# Export schema as JSON
uv run {baseDir}/scripts/schema.py export --format json

内省使用 INFO FOR DB、INFO FOR TABLE 和 INFO FOR NS 重建完整架构。

规则参考

规则文件涵盖内容
rules/surrealql.mdSurrealQL 语法、语句、函数、运算符、惯用写法
rules/data-modeling.md架构设计、记录 ID、字段类型、关系、规范化
rules/graph-queries.mdRELATE、图遍历运算符、路径表达式、递归查询
rules/vector-search.md向量字段、HNSW 索引(v3 向量索引类型)、相似度函数、RAG 模式
rules/security.md权限、访问控制、身份验证、JWT、行级安全
rules/deployment.md安装、存储引擎、Docker、Kubernetes、生产环境配置;surrealdb/setup-surreal@v2 GitHub Action(仅限 CI;不是命令行引导工具)
rules/performance.md索引、EXPLAIN、查询优化、批量操作、资源调优
rules/sdks.mdJS/TS、Python、Go、Rust、Java、Kotlin、.NET、C、PHP、Swift、Ruby SDK 的用法、连接模式、实时查询
rules/surrealism.mdWASM 扩展、自定义函数、Surrealism 模块编写
rules/surrealml.mdSurrealML 预览范围、.surml 工件、软件包/发布边界、原生依赖警告
rules/surrealmcp.md模型上下文协议服务:工具目录、宿主配置、传输方式、部署
rules/editor-tooling.mdLSP、tree-sitter 语法、CodeMirror、VS Code / JetBrains / Neovim / Helix / Sublime / Zed 扩展
rules/langchain.mdLangChain Python 集成:向量存储、构造函数 API、custom_filter 边界
rules/ecosystem-integrations.mdn8n、AI 框架文档索引、Spectron 路线图边界、CodeMirror、官方 Agent Skills 仓库
rules/surrealist.mdSurrealist IDE/GUI 用法、架构设计器、查询编辑器
rules/surreal-sync.mdCDC 迁移工具、源/目标连接器、迁移工作流
rules/surrealfs.mdAI Agent 文件系统、文件存储、元数据、检索模式
rules/surrealkit.md期望状态架构同步、基于发布的迁移、数据填充和声明式数据库测试
rules/gotchas.md跨领域边缘情况和易错点:升级、图、向量、安全、MCP、SDK(v3.1.4+)

工作流示例

所有工作流示例仅在本地开发中使用 root/root。 生产环境请使用 DEFINE USER,并配置限定范围、遵循最小权限原则的凭据。

新项目设置
# 1. Verify environment
uv run {baseDir}/scripts/doctor.py

# 2. Start SurrealDB
surreal start rocksdb://data/myproject.db --user root --pass root

# 3. Design schema (use rules/data-modeling.md for guidance)
# 4. Import initial schema
surreal import --endpoint http://localhost:8000 --user root --pass root \
  --ns myapp --db production schema.surql

# 5. Introspect to verify
uv run {baseDir}/scripts/schema.py introspect
从 SurrealDB v2 迁移
# 1. Export v2 data
surreal export --endpoint http://old-server:8000 --user root --pass root \
  --ns myapp --db production v2-backup.surql

# 2. Review breaking changes (see rules/surrealql.md v2->v3 migration section)
# Key changes: range syntax 1..4 is now exclusive of end, new WASM extension system

# 3. Import into v3
surreal import --endpoint http://localhost:8000 --user root --pass root \
  --ns myapp --db production v2-backup.surql

# 4. Verify schema
uv run {baseDir}/scripts/schema.py introspect
新领域的数据建模
# 1. Read rules/data-modeling.md for schema design patterns
# 2. Read rules/graph-queries.md if your domain has relationships
# 3. Read rules/vector-search.md if you need semantic search
# 4. Draft schema.surql with DEFINE TABLE, DEFINE FIELD, DEFINE INDEX
# 5. Import and test
surreal import --endpoint http://localhost:8000 --user root --pass root \
  --ns dev --db test schema.surql
uv run {baseDir}/scripts/schema.py introspect
部署到生产环境
# 1. Read rules/deployment.md for storage engine selection and hardening
# 2. Read rules/security.md for access control setup
# 3. Read rules/performance.md for index strategy
# 4. Run doctor against production endpoint
uv run {baseDir}/scripts/doctor.py --endpoint https://prod-surreal:8000
# 5. Verify schema matches expectations
uv run {baseDir}/scripts/schema.py introspect --endpoint https://prod-surreal:8000

上游源检查

# Check if upstream SurrealDB repos have changed since this skill was built
uv run {baseDir}/scripts/check_upstream.py

# JSON-only output for agents
uv run {baseDir}/scripts/check_upstream.py --json

# Only show repos that have new commits
uv run {baseDir}/scripts/check_upstream.py --stale

将所有受跟踪仓库当前 HEAD 的 SHA 和发布标签与 SOURCES.json 中的基线进行比较。使用此功能规划增量技能更新。

源代码来源

此技能于 2026-06-17 根据以下上游来源更新:

仓库发布版本快照日期
surrealdb/surrealdbv3.1.42026-06-10
surrealdb/surrealistsurrealist-v3.9.02026-06-16
surrealdb/surrealdb.jsv2.0.32026-06-17
surrealdb/surrealdb.pyv2.0.0(PyPI);main 3.0.0 尚未发布2026-06-17
surrealdb/surrealkitv0.7.02026-06-11
surrealdb/surrealmcpv0.4.0 独立版;3.1+ 内置 MCP2026-06-17

文档:surrealdb.com/docs,快照日期为 2026-06-17。

机器可读的来源信息:SOURCES.json。

输出约定

此技能中的所有 Python 脚本都采用双重输出模式:

  • stderr:以 Rich 格式呈现的易读输出(表格、面板、状态指示器)
  • stdout:供 AI Agent 程序化使用的机器可读 JSON

这意味着 2>/dev/null 会隐藏人类可读的输出,而通过管道传递 stdout 则可获得干净的 JSON,供下游处理。

评论

支持 Markdown