PocketBase MCP Server について
PocketBase MCP Serverは、MCPクライアントからPocketBaseのデータベースやアカウントを操作するサーバーです。PocketBase JS-SDKの型定義に基づき、コレクションやレコードの管理、ユーザー操作、バックアップを提供します。
主な機能
- 01コレクションの作成と参照
- 02レコードの作成・一覧・更新・削除
- 03レコード一覧の絞り込みとページング
- 04ユーザー認証と作成
- 05データベースのバックアップ
活用シーン
- 01MCPクライアントでPocketBaseのスキーマを管理
- 02AIアシスタントからレコードをCRUD操作
- 03ユーザー認証とアカウント作成
- 04PocketBaseデータベースのバックアップ作成
MCP 対応
MCPクライアント向けに、コレクション、レコード、ユーザー、バックアップの操作ツールを提供します。ローカルで設定するか、Dockerで実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
PocketBase MCP サーバー
現在も開発が進行中の MCP サーバーです。Dynamics のものをベースにしており、テストと改良を重ねています。PocketBase データベースを操作するための高度なツールを提供します。このサーバーを使用すると、Model Context Protocol(MCP)を通じて高度なデータベース操作、スキーマ管理、データ操作を実行できます。
使用している様子はこちらの動画をご覧ください:https://www.youtube.com/watch?v=ZuTIO3I7rTM&t=345s
DynamicsEndpoints ではなく、これを選ぶ理由
これは最新バージョンで実際にテストされています。現在は PocketBase 26.1 に対応しており、Dynamics のものにある恣意的で誤った定義ではなく、JS-SDK の型定義をベースにしています。Dynamics のメソッドの多くは、そもそも動作しません。
MCP サーバーをローカルにセットアップする(現在サポートされている唯一の方法)
MCP サーバーをローカルにセットアップするには、cline_mcp_settings.json またはご利用の設定ファイル(claude、cursor など。設定の形式は同じですが、保存場所を確認してください)に設定を追加する必要があります。手順は次のとおりです。
-
cline_mcp_settings.jsonファイルを探します: このファイルは通常、Cursor のユーザー設定ディレクトリにあります。例:/Users/yourusername/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json -
サーバーを設定します:
cline_mcp_settings.jsonファイルのmcpServersオブジェクトに新しいエントリを追加します。キーにはサーバーの一意の名前(例:"pocketbase-server")を指定し、値にはサーバーの設定を含むオブジェクトを指定します。{ "mcpServers": { "pocketbase-server": { "command": "node", "args": ["build/index.js"], "env": { "POCKETBASE_URL": "http://127.0.0.1:8090", "POCKETBASE_ADMIN_EMAIL": "[email protected]", "POCKETBASE_ADMIN_PASSWORD": "admin_password" }, "disabled": false, "autoApprove": ["create_record", "create_collection"] } } }command:サーバーを起動するコマンド(通常はnode)です。args:コマンドに渡す引数の配列です。MCP サーバーのコンパイル済み JavaScript ファイル(例:build/index.js)を指定します。パスが正しいことを確認してください。env:環境変数を含むオブジェクトです。POCKETBASE_URL:PocketBase インスタンスの URL です。_必須_です。POCKETBASE_ADMIN_EMAIL:PocketBase インスタンスの管理者メールアドレスです(一部の操作に必要ですが、省略可能です)。POCKETBASE_ADMIN_PASSWORD:PocketBase インスタンスの管理者パスワードです(一部の操作に必要ですが、省略可能です)。
disabled:起動時にサーバーを無効にするかどうかを指定します。autoApprove:自動承認するツールのリストです。envオブジェクト内の値は、PocketBase インスタンスの設定に合わせて変更してください。
- vscode でのセットアップも同様です。
.vscode/mcp.jsonを探すか作成して、次の内容を追加します。
{
"inputs": [
{
"type": "promptString",
"id": "pocketbase-admin-email",
"description": "PocketBase Admin Email",
"password": false
},
{
"type": "promptString",
"id": "pocketbase-admin-password",
"description": "PocketBase Admin Password",
"password": true
}
],
"servers": {
"pocketbaseServer": {
"type": "stdio",
"command": "node",
// replace this with the path to your compiled MCP server (git clone the repo and run `npm run build` to compile)
"args": ["~/Desktop/code/mcp/pocketbase-mcp/build/index.js"],
"env": {
"POCKETBASE_URL": "http://127.0.0.1:8090",
"POCKETBASE_ADMIN_EMAIL": "${input:pocketbase-admin-email}",
"POCKETBASE_ADMIN_PASSWORD": "${input:pocketbase-admin-password}"
}
}
}
}
- サーバーを起動します:
cline_mcp_settings.jsonファイルを設定した後、設定済みのツールを使用して MCP サーバーを利用できます。
Docker で MCP サーバーをセットアップする
Docker を使用して PocketBase MCP サーバーを実行できます。リポジトリには Dockerfile が含まれています。
Docker イメージのビルド
# Build the Docker image
docker build -t pocketbase-mcp .
Docker コンテナの実行
# Run the container with environment variables
docker run -d \
--name pocketbase-mcp \
-e POCKETBASE_URL=http://127.0.0.1:8090 \
-e [email protected] \
-e POCKETBASE_ADMIN_PASSWORD=your_admin_password \
pocketbase-mcp
Docker の MCP 設定
Docker 化された MCP サーバーを AI アシスタント(Cursor、Claude など)で使用するには、MCP の設定に追加します。
Cline/Cursor の場合(cline_mcp_settings.json):
{
"mcpServers": {
"pocketbase-docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"POCKETBASE_URL=http://host.docker.internal:8090",
"-e",
"[email protected]",
"-e",
"POCKETBASE_ADMIN_PASSWORD=your_admin_password",
"pocketbase-mcp"
],
"disabled": false,
"autoApprove": ["list_collections", "list_records", "get_collection"]
}
}
}
VS Code の場合(.vscode/mcp.json):
{
"inputs": [
{
"type": "promptString",
"id": "pocketbase-admin-email",
"description": "PocketBase Admin Email",
"password": false
},
{
"type": "promptString",
"id": "pocketbase-admin-password",
"description": "PocketBase Admin Password",
"password": true
}
],
"servers": {
"pocketbaseDocker": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"POCKETBASE_URL=http://host.docker.internal:8090",
"-e",
"POCKETBASE_ADMIN_EMAIL=${input:pocketbase-admin-email}",
"-e",
"POCKETBASE_ADMIN_PASSWORD=${input:pocketbase-admin-password}",
"pocketbase-mcp"
]
}
}
}
Docker の設定に関する注意事項
-i:インタラクティブモード(stdio 通信に必須)--rm:コンテナの終了時に自動的に削除しますhost.docker.internal:Docker 内からホストマシン上で実行中の PocketBase にアクセスするには、これを使用します- 環境変数:プレースホルダーの値を実際の PocketBase 認証情報に置き換えます
- ネットワーク:PocketBase も Docker で実行している場合は、Docker ネットワーク(例:
--network hostまたはカスタムブリッジネットワーク)を使用します
Docker Compose(任意)
管理を簡単にするために、docker-compose.yml を作成します。
version: "3.8"
services:
pocketbase-mcp:
build: .
environment:
- POCKETBASE_URL=http://host.docker.internal:8090
- [email protected]
- POCKETBASE_ADMIN_PASSWORD=your_admin_password
stdin_open: true
tty: true
次に、MCP の設定で以下を使用するように設定します。
{
"mcpServers": {
"pocketbase-docker": {
"command": "docker-compose",
"args": ["run", "--rm", "pocketbase-mcp"],
"disabled": false
}
}
}
機能
コレクション管理
- カスタムスキーマを使用したコレクションの作成と管理
- コレクションのスキーマとメタデータの取得
レコード操作
- レコードの CRUD 操作
- リレーションの展開をサポート
- ページネーションとカーソルベースのナビゲーション
ユーザー管理
- ユーザー認証とトークン管理
- ユーザーアカウントの作成と管理
- パスワード管理
データベース操作
- データベースのバックアップ
利用可能なツール
コレクション管理
create_collection:カスタムスキーマを使用して新しいコレクションを作成しますget_collection:コレクションのスキーマの詳細を取得します
レコード操作
create_record:コレクションに新しいレコードを作成しますlist_records:オプションのフィルターとページネーションを指定してレコードを一覧表示しますupdate_record:既存のレコードを更新しますdelete_record:レコードを削除します
ユーザー管理
authenticate_user:ユーザーを認証して認証トークンを取得しますcreate_user:新しいユーザーアカウントを作成します
データベース操作
backup_database:形式を指定して PocketBase データベースのバックアップを作成します
設定
サーバーには、以下の環境変数が必要です。
POCKETBASE_URL:PocketBase インスタンスの URL(例:「http://127.0.0.1:8090」)
任意の環境変数:
POCKETBASE_ADMIN_EMAIL:一部の操作に使用する管理者のメールアドレスPOCKETBASE_ADMIN_PASSWORD:管理者のパスワードPOCKETBASE_DATA_DIR:カスタムデータディレクトリのパス
使用例
// Create a new collection
await mcp.use_tool("pocketbase", "create_collection", {
name: "posts",
schema: [
{
name: "title",
type: "text",
required: true,
},
{
name: "content",
type: "text",
required: true,
},
],
});
// Authenticate with password
await mcp.use_tool("pocketbase", "authenticate_user", {
email: "[email protected]",
password: "securepassword",
collection: "users",
});
貢献
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更をコミットします
- ブランチにプッシュします
- プルリクエストを作成します
スポンサー
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。