Skip to main content
Glama

PocketBase MCP Server

by imatrixme

高度なPocketBase MCPサーバー

鍛冶屋のバッジ PocketBaseデータベースと連携するための高度なツールを提供する包括的なMCPサーバーです。このサーバーは、モデルコンテキストプロトコル(MCP)を通じて、高度なデータベース操作、スキーマ管理、データ操作を可能にします。

特徴

コレクション管理

  • カスタムスキーマを使用してコレクションを作成および管理する

  • データ保存を伴うコレクションスキーマの移行

  • 高度なインデックス管理(作成、削除、一覧表示)

  • スキーマ検証と型安全性

  • コレクションスキーマとメタデータを取得する

レコード操作

  • レコードのCRUD操作

  • フィルタリング、並べ替え、集計による高度なクエリ

  • バッチインポート/エクスポート機能

  • 関係拡大サポート

  • ページネーションとカーソルベースのナビゲーション

ユーザー管理

  • ユーザー認証とトークン管理

  • ユーザーアカウントの作成と管理

  • パスワード管理

  • ロールベースのアクセス制御

  • セッション処理

データベース操作

  • データベースのバックアップと復元

  • 複数のエクスポート形式(JSON/CSV)

  • データ移行ツール

  • インデックスの最適化

  • バッチ操作

Related MCP server: PocketBase MCP Server

利用可能なツール

コレクション管理

  • create_collection : カスタムスキーマで新しいコレクションを作成する

  • get_collection_schema : コレクションのスキーマの詳細を取得する

  • migrate_collection : データを保持したままコレクションスキーマを移行する

  • manage_indexes : コレクションインデックスを作成、削除、または一覧表示する

レコード操作

  • create_record : コレクションに新しいレコードを作成する

  • list_records : オプションのフィルターとページ区切りを使用してレコードを一覧表示します

  • update_record : 既存のレコードを更新する

  • delete_record : レコードを削除する

  • query_collection : フィルタリング、並べ替え、集計機能を備えた高度なクエリ

  • import_data : 作成/更新/upsertモードでコレクションにデータをインポートする

ユーザー管理

  • authenticate_user : ユーザーを認証し、認証トークンを取得する

  • create_user : 新しいユーザーアカウントを作成する

  • list_auth_methods : 利用可能なすべての認証方法を一覧表示する

  • authenticate_with_oauth2 : OAuth2でユーザーを認証する

  • authenticate_with_otp : ワンタイムパスワードでユーザーを認証する

  • auth_refresh : 認証トークンを更新する

  • request_verification : メール検証をリクエストする

  • confirm_verification : トークンを使用してメールの検証を確認する

  • request_password_reset : パスワードのリセットを要求する

  • confirm_password_reset : トークンを使用してパスワードのリセットを確認する

  • request_email_change : メールの変更をリクエストする

  • confirm_email_change : トークンを使用してメールの変更を確認する

  • impersonate_user : 別のユーザーになりすます(管理者のみ)

データベース操作

  • backup_database : フォーマットオプションを使用してPocketBaseデータベースのバックアップを作成します。

  • import_data : さまざまなモード(作成/更新/upsert)でデータをインポートします

構成

サーバーには次の環境変数が必要です。

オプションの環境変数:

  • 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 } ] }); // Manage indexes await mcp.use_tool("pocketbase", "manage_indexes", { collection: "posts", action: "create", index: { name: "title_idx", fields: ["title"], unique: true } });

高度なクエリ

// Query with filtering, sorting, and aggregation await mcp.use_tool("pocketbase", "query_collection", { collection: "posts", filter: "created >= '2024-01-01'", sort: "-created", aggregate: { totalLikes: "sum(likes)", avgRating: "avg(rating)" }, expand: "author,categories" });

データのインポート/エクスポート

// Import data with upsert mode await mcp.use_tool("pocketbase", "import_data", { collection: "posts", data: [ { title: "First Post", content: "Hello World" }, { title: "Second Post", content: "More content" } ], mode: "upsert" }); // Backup database await mcp.use_tool("pocketbase", "backup_database", { format: "json" // or "csv" });

スキーマの移行

// Migrate collection schema await mcp.use_tool("pocketbase", "migrate_collection", { collection: "posts", newSchema: [ { name: "title", type: "text", required: true }, { name: "content", type: "text", required: true }, { name: "tags", type: "json", required: false } ], dataTransforms: { // Optional field transformations during migration tags: "JSON.parse(oldTags)" } });

認証方法

// List available authentication methods await mcp.use_tool("pocketbase", "list_auth_methods", { collection: "users" }); // Authenticate with password await mcp.use_tool("pocketbase", "authenticate_user", { email: "user@example.com", password: "securepassword", collection: "users" }); // Authenticate with OAuth2 await mcp.use_tool("pocketbase", "authenticate_with_oauth2", { provider: "google", code: "auth_code_from_provider", codeVerifier: "code_verifier_from_pkce", redirectUrl: "https://your-app.com/auth/callback", collection: "users" }); // Request password reset await mcp.use_tool("pocketbase", "request_password_reset", { email: "user@example.com", collection: "users" }); // Confirm password reset await mcp.use_tool("pocketbase", "confirm_password_reset", { token: "verification_token", password: "new_password", passwordConfirm: "new_password", collection: "users" }); // Refresh authentication token await mcp.use_tool("pocketbase", "auth_refresh", { collection: "users" });

エラー処理

すべてのツールには、詳細なエラーメッセージを含む包括的なエラー処理機能が搭載されています。エラーは適切に入力され、以下のエラーが含まれます。

  • 無効なリクエストエラー

  • 認証エラー

  • データベース操作エラー

  • スキーマ検証エラー

  • ネットワークエラー

型安全性

サーバーにはすべての操作に対するTypeScript定義が含まれており、ツール使用時の型安全性が確保されています。各ツールの入力スキーマは厳密に型指定され、検証されます。

ベストプラクティス

  1. 常にtry/catchブロックで適切なエラー処理を使用する

  2. 操作を実行する前にデータを検証する

  3. クエリパフォーマンスを向上させるために適切なインデックスを使用する

  4. データベースを定期的にバックアップする

  5. スキーマの変更には移行を使用する

  6. ユーザー管理に関するセキュリティのベストプラクティスに従う

  7. データベースのパフォーマンスを監視および最適化する

発達

  1. リポジトリをクローンする

  2. 依存関係をインストール: npm install

  3. .env.example.envにコピーして設定する

  4. ビルド: npm run build

  5. PocketBaseインスタンスを起動する

  6. MCPサーバーはPocketBaseインスタンスに自動的に接続します

Smithery経由でインストール

Smithery経由で Claude Desktop 用の PocketBase Server を自動的にインストールするには:

npx -y @smithery/cli install pocketbase-server --client claude

貢献

  1. リポジトリをフォークする

  2. 機能ブランチを作成する

  3. 変更をコミットする

  4. ブランチにプッシュする

  5. プルリクエストを作成する

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/imatrixme/pocketbase-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server