Gel Database MCP Server について
Gel Database MCP Serverは、Gelのスキーマ確認やEdgeQLクエリ操作をエージェントから行うための、古い非公式TypeScript製MCPサーバーです。READMEでは、より簡単に設定できるGel公式MCPサーバーを案内しています。
主な機能
- 01データベーススキーマの確認
- 02EdgeQL構文の検証
- 03EdgeQLクエリの実行
- 04Gelドキュメントの検索
- 05TypeScriptクエリの実行
活用シーン
- 01エンティティと関係の確認
- 02クエリ実行前の構文チェック
- 03EdgeQLによるデータの読み書き
- 04EdgeQLのドキュメント例の検索
MCP 対応
MCP サーバーとして、スキーマ確認、クエリ検証と実行、ドキュメント検索、TypeScriptクエリのツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Gel Database MCP Server[非公式/旧版]
これは、Gel にセットアップがはるかに簡単な公式 MCP サーバーが登場する前に作成されました。ただし、私が作成した MCP サーバーの例でもあるため、このサーバーも公開したままにしています。 公式版はこちらです:https://github.com/geldata/gel-mcp
EdgeQL クエリを使用した Gel データベースの操作を効率化するために設計された、TypeScript ベースの Model Context Protocol(MCP)サーバーです。このプロジェクトでは、LLM エージェント(Cursor Agent、Claude Code など)がスキーマの学習やデータベースクエリの作成、検証、実行を自動化するためのツールを提供します。自然言語を使って Gel データベースを簡単に操作できます。バイブコーディングを楽しむ皆さんに朗報です!
注:クエリの生成機能は含まれていません。LLM のほうが柔軟なクエリを作成できるためです。Cursor エージェントで Claude-3.7-sonnet-thinking を使用してテストし、関連するウェブページへのリンクで Gel のドキュメントを提供したところ、良好な結果が得られました。

クイックスタートガイド
# 1. Install dependencies
yarn install
# 2. Copy your dbschema folder into the project if you have one already
# cp -r /path/to/your/dbschema ./
# or just copy and paste
# 3. Initialize a Gel project
npx gel project init
# Follow prompts to set up a new project
# Can point to an existing gel instance by providing the name of your instance
# -Import migrations if it asks
# 4. Generate EdgeQL JavaScript query builder files
npx @gel/generate edgeql-js
# Note: Re-run this command after any schema changes
# 5. Update connection settings
# Edit src/index_gel.ts lines 19-25 with your database, host, port, user, password
# Edit src/index_gel.ts line 37 with your branch name
# 6. Build the project
yarn build
# 7. (optional) Test the server runs without errors
node build/index.js
# 7.1 (if you have errors) Test server with a UI that provides more clear error logs using:
npx @modelcontextprotocol/inspector node build/index.js
# 8. (Recommended) Include the gel_llm.txt documentation file
# Download the Gel documentation file and place it in your project root
# This allows both the search tool and direct file access for your LLM agent
# curl -o gel_llm.txt https://raw.githubusercontent.com/yourorg/gel-docs/main/gel_llm.txt
# Note: Replace the URL with the actual source of your gel_llm.txt file
Cursor で MCP サーバーに接続する
- 右上の歯車アイコンをクリックし、MCP > +Add a new server を選択します
- 任意の名前を付けます
- 種類として Command を選択します
- 次を入力します:node your/full/path/to/build/index.js

注: このサーバーは主に Cursor のエージェントでテストしていますが、Model Context Protocol に対応するほかのエージェントや LLM でも動作するはずです。ほかのエージェントでテストした場合は、ぜひ結果を共有してください!
利用可能なツール
Gel Database MCP Server では、次のツールを利用できます。
describe-schema
このツールを使うと、コードを手動で調べなくても、LLM エージェントがデータベースの構造を学習して理解できます。エージェントは利用可能なエンティティ型、そのプロパティ、リレーションシップ、制約を確認し、より正確なクエリを生成できます。
使用するタイミング: クエリを実行する前に、エージェントがデータベースエンティティの構造を理解する必要がある場合。
validate-query
このツールを使うと、LLM エージェントは生の EdgeQL クエリを実行せずに構文を検証できるため、データベースに対してクエリを実行する前に安全に確認できます。
使用するタイミング: 実行による副作用のリスクを避けながら、クエリ開発中に構文を確認する場合。
execute-edgeql
このツールを使うと、LLM エージェントは生の EdgeQL クエリを実行してデータを取得し、指示に基づく操作を行うことで、データベースと直接やり取りできます。LLM は EdgeQL クエリを生成し、自律的に実行できます。
例:
SELECT Product { name, price } FILTER .price > 100;
search-gel-docs
このツールを使うと、LLM エージェントは Gel のドキュメントを検索し、EdgeQL の構文、機能、使用例に関する関連情報を見つけられます。エージェントが Gel データベースの概念をより理解できるよう、コンテキスト付きの包括的な結果を返します。
使用するタイミング: 特定の Gel/EdgeQL の機能について学習したり、構文を理解したり、データベース操作を実装するための使用例を探したりする必要がある場合。
例:
search_term: "for loop"
context_lines: 10 # Optional: Number of context lines to show (default: 5)
match_all_terms: true # Optional: Require all terms to match (default: false)
ドキュメントのハイブリッドアプローチに関する注記: 最適な結果を得るには、次の両方をおすすめします。
- プロジェクトのルートに
gel_llm.txtファイルを含める(ファイルに直接アクセスするため) - 対象を絞った検索に search-gel-docs ツールを使用する
このハイブリッドアプローチにより、LLM エージェントは特定の用語を検索できると同時に、より広いコンテキストが必要な場合にはドキュメント全体にもアクセスできます。
execute-typescript
execute-edgeql と同様ですが、クエリビルダー構文で作成した TypeScript Gel クエリのテストと実行に使用できます。
手順はツールに含まれていますが、エージェントにどのような手順があるかを尋ね、コンテキストに読み込ませておくことをおすすめします。これにより、手順が見落とされないようにできます。
注:一般的な JavaScript の構文エラーによってサーバーがクラッシュすることがあります。そのため、接続が閉じているように見える場合は、Cursor の MCP 設定でクラッシュしたサーバーを更新するか、サーバーを再起動する必要があります。
LLM に以下のベストプラクティスを伝えてください:
- 結果を表示するには、
await gelClient.query()と console.log を使用します - カンマではなく THEN を使って ORDER BY を指定します(例:ORDER BY .field1 THEN .field2)
- コードはシンプルにし、単一の操作に集中させます
例:
console.log(await gelClient.query(`
SELECT Product {
name,
price
}
FILTER .price > 100
ORDER BY .price DESC
LIMIT 5;
`));
使用する場面: プログラムによるロジックが必要な複雑なクエリや、JavaScript でクエリ結果を処理する必要がある場合に使用します。
詳細情報
Model Context Protocol の詳細については、modelcontextprotocol.io/quickstart をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。