mcpField
S
surrealdb

surrealdb

github.com/24601データ・データベース35241 回インストール19 週間前に更新
リポジトリ

surrealdb について

AI エージェント向けに、SurrealQL やデータモデリングからデプロイ、SDK まで、SurrealDB 3 の設計・開発・運用を案内するスキルです。ヘルスチェックとスキーマ調査のスクリプトも含み、関連ツールや連携について詳しく説明します。

主な機能

  1. 01SurrealQL とマルチモデルデータの指針
  2. 02グラフ探索とベクトル検索
  3. 03セキュリティ、デプロイ、性能の指針
  4. 04SDK とエコシステム連携の情報
  5. 05ヘルスチェックとスキーマ調査スクリプト

活用シーン

  1. 01SurrealDB 3 のデータモデル設計
  2. 02グラフクエリやベクトル検索の構築
  3. 03インスタンスの診断とスキーマ調査
  4. 04エージェント向け SurrealDB 連携の評価

MCP 対応

このスキルでは SurrealMCP を紹介します。互換性のある AI ホストが、クエリ、レコード操作、接続、データベース選択などのツールを通じて SurrealDB を読み書きできる MCP サーバーです。

インストール

コマンドをコピーしてターミナルで実行します。

$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 統合、および SurrealKit、SurrealMCP、n8n、CodeMirror、エージェントスキルのインターフェースを含む、幅広い SurrealDB エコシステムを網羅します。

AI エージェント向け

機能マニフェスト、判断ツリー、出力コントラクトの全容を確認できます。

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エージェント統合用の 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 を通じて監査可能なインストールを行うことを推奨します。

クイックスタート

認証情報に関する警告:以下の例では、ローカル開発のみを対象として 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_USERルートまたは名前空間のユーザー名root
SURREAL_PASSルートまたは名前空間のパスワード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、サブクエリ、トランザクション、future、すべての組み込み関数(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::* 関数でクエリできます。RAG パイプラインやセマンティック検索を SurrealQL 内で直接構築できます。

参照先:rules/vector-search.md

セキュリティと権限

DEFINE TABLE ... PERMISSIONS による行レベルセキュリティ、名前空間/データベース/レコードレベルのアクセス制御、JWT/トークンベース認証のための DEFINE ACCESS、システムユーザーのための DEFINE USER、権限述語用の $auth/$session 実行時変数を使用します。

参照:rules/security.md

デプロイと運用

単一バイナリでのデプロイ、Docker、Kubernetes(Helm チャート)、ストレージエンジンの選択(メモリ、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 ベータ版の機能範囲、接続プロトコル、認証フロー、ライブクエリのサブスクリプション、型付きレコードの処理も含みます。

参照: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] extras が、安定して文書化されている範囲です。DEFINE MODEL、INFO FOR MODEL、REMOVE MODEL、ml::name<version>(...)、surreal ml import、db.upload_ml(...)、および SurMlFile.from_<framework>(...) ファクトリーメソッドに関する v1.4.0 のドキュメントは、v1.4.1 で撤回されました。現在の Python セットアップ手順では、LOCAL_BUILD=TRUE を指定しない限り GitHub Releases からネイティブライブラリをダウンロードするため、本番環境で使用する前にバージョンを固定して監査してください。

参照:rules/surrealml.md

SurrealMCP -- Model Context Protocol サーバー

公式 MCP サーバー(surrealdb/surrealmcp)を使うと、MCP 対応の AI ホスト(Claude Desktop、Cursor、VS Code の GitHub Copilot、Zed、n8n)から、設定を 1 つ追加するだけで 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 は、これとは別のコミュニティ製クレートです。このルールでは、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 エージェント向けファイルシステム
  • SurrealKit -- 望ましい状態とのスキーマ同期、ロールアウトベースの移行、シーディング、宣言的テスト
  • SurrealML -- プレビュー段階の .surml アーティファクトツール。サーバー呼び出しのインターフェースはまだ不安定です
  • SurrealMCP -- AI エージェント向け Model Context Protocol サーバー
  • n8n -- セルフホスト可能な n8n ワークフロー向けの公式スコープ付きコミュニティパッケージ
  • CodeMirror -- カスタムエディター向けの公式 SurrealQL 構文パッケージ
  • setup-surreal -- CI ワークフローで SurrealDB を実行するための公式 GitHub Action(surrealdb/setup-surreal@v2)。CLI のブートストラップではありません(そのように説明していた 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 専用。CLI のブートストラップではありません)
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.mdModel Context Protocol サーバー:ツールカタログ、ホスト設定、トランスポート、デプロイ
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 エージェント向けファイルシステム、ファイルストレージ、メタデータ、検索パターン
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/surrealmcpスタンドアロン版 v0.4.0;3.1 以降は組み込み MCP2026-06-17

ドキュメント: surrealdb.com/docs のスナップショット(2026-06-17)。

機械可読な来歴: SOURCES.json。

出力規約

このスキルのすべての Python スクリプトは、出力を 2 種類に分けるパターンに従います。

  • stderr:人が読みやすい Rich 形式の出力(テーブル、パネル、ステータスインジケーター)
  • stdout:AI エージェントがプログラムで処理するための機械可読な JSON

つまり、2>/dev/null を指定すると人向けの出力が非表示になり、stdout をパイプで渡すと後続処理用のクリーンな JSON が得られます。

コメント