Pocketbase について
Pocketbaseは、HTTP経由でMCPクライアントをPocketBaseインスタンスに接続するステートレスなリモートMCPサーバーです。コレクション、レコード、バックアップ、ファイル、設定、ログを扱うツールを提供し、ホスト版またはセルフホストで利用できます。
主な機能
- 01コレクションスキーマの管理
- 02レコードの検索と変更
- 03バックアップの作成と管理
- 04ファイル・設定・ログへのアクセス
- 05ステートレスHTTPリクエスト
活用シーン
- 01PocketBaseコレクションの確認や変更
- 02アプリのレコード検索と更新
- 03データベースバックアップの作成や削除
- 04MCPクライアントのPocketBase接続
MCP 対応
PocketBaseの操作をMCPツールとして公開し、コレクションスキーマをリソースとして提供します。ステートレスなstreamable HTTPを使用し、インスタンスURLと認証ヘッダーが必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://pocketbase.tokenscompany.co/mcpclaude mcp add --transport http pocketbase-mcp-tokenscompany https://pocketbase.tokenscompany.co/mcp{"mcpServers":{"pocketbase-mcp-tokenscompany":{"type":"http","url":"https://pocketbase.tokenscompany.co/mcp"}}}Cursor で開く{"servers":{"pocketbase-mcp-tokenscompany":{"type":"http","url":"https://pocketbase.tokenscompany.co/mcp"}}}VS Code で開く{"mcpServers":{"pocketbase-mcp-tokenscompany":{"type":"http","url":"https://pocketbase.tokenscompany.co/mcp"}}}{"mcpServers":{"pocketbase-mcp-tokenscompany":{"serverUrl":"https://pocketbase.tokenscompany.co/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://pocketbase.tokenscompany.co/mcp認証が必要ツール
19このツールにパラメーターはありません。
詳細
pocketbase-mcp
ステートレス HTTP 経由で、あらゆる MCP クライアントを PocketBase インスタンスに接続するリモート MCP サーバーです。
クイックスタート
ホスト済みのインスタンス https://pocketbase.tokenscompany.co/mcp を使用するか、独自のインスタンスをセルフホストしてください。
AI エージェントでインストールする
このプロンプトを AI エージェント(Claude Code、Cursor、Windsurf など)にコピーして貼り付けてください。
Install the PocketBase MCP server. The MCP endpoint is https://pocketbase.tokenscompany.co/mcp and the transport type is http (NOT sse). It requires X-PB-URL set to my PocketBase instance URL and either X-PB-Email + X-PB-Password (superuser credentials) or X-PB-Token (superuser auth token). Add it to my project MCP config with type "http". Then fetch https://raw.githubusercontent.com/tokenscompany/pocketbase-mcp/main/SKILL.md and save it to my project's agent instructions so you always know how to use the PocketBase tools.
Claude Code
claude mcp add --transport http pocketbase https://pocketbase.tokenscompany.co/mcp \
--header "X-PB-URL: https://your-pocketbase.example.com" \
--header "X-PB-Email: [email protected]" \
--header "X-PB-Password: your-password"
または、プロジェクトルートの .mcp.json に追加します。
{
"mcpServers": {
"pocketbase": {
"type": "http",
"url": "https://pocketbase.tokenscompany.co/mcp",
"headers": {
"X-PB-URL": "${PB_URL}",
"X-PB-Email": "${PB_EMAIL}",
"X-PB-Password": "${PB_PASSWORD}"
}
}
}
}
Claude Code は環境変数から ${VAR} を展開するため、シェルまたは .env で PB_URL、PB_EMAIL、PB_PASSWORD を設定してください。
Cursor
~/.cursor/mcp.json に追加します。
{
"mcpServers": {
"pocketbase": {
"url": "https://pocketbase.tokenscompany.co/mcp",
"headers": {
"X-PB-URL": "https://your-pocketbase.example.com",
"X-PB-Email": "[email protected]",
"X-PB-Password": "your-password"
}
}
}
}
OpenCode
プロジェクトルートの opencode.json に追加します。
{
"mcp": {
"pocketbase": {
"type": "remote",
"url": "https://pocketbase.tokenscompany.co/mcp",
"headers": {
"X-PB-URL": "https://your-pocketbase.example.com",
"X-PB-Email": "[email protected]",
"X-PB-Password": "your-password"
},
"enabled": true
}
}
}
セルフホスト
Bun
bun install
bun run src/index.ts
サーバーは PORT(デフォルトは 3000)でリッスンします。
Docker(GHCR)
docker pull ghcr.io/tokenscompany/pocketbase-mcp:latest
docker run -p 3000:3000 ghcr.io/tokenscompany/pocketbase-mcp:latest
または、ローカルでビルドします。
docker build -t pocketbase-mcp .
docker run -p 3000:3000 pocketbase-mcp
イメージの検証
GHCR に公開されるすべてのイメージには、SLSA 来歴証明が含まれています。イメージがこのリポジトリからビルドされたことを検証できます。
gh attestation verify oci://ghcr.io/tokenscompany/pocketbase-mcp:latest \
--owner tokenscompany
認証
POST /mcp へのすべてのリクエストには、X-PB-URL と、次の 2 つの認証方法のいずれかを含める必要があります。
方法 1:メールアドレス+パスワード(推奨)
| ヘッダー | 説明 |
|---|---|
X-PB-URL | PocketBase インスタンスのベース URL |
X-PB-Email | スーパーユーザーのメールアドレス |
X-PB-Password | スーパーユーザーのパスワード |
サーバーはリクエストごとに PocketBase に対して認証します。トークンを手動で管理する必要はありません。
方法 2:トークン
| ヘッダー | 説明 |
|---|---|
X-PB-URL | PocketBase インスタンスのベース URL |
X-PB-Token | スーパーユーザーの認証トークン |
トークンを手動で取得するには:
curl -X POST https://your-pb.example.com/api/admins/auth-with-password \
-H 'Content-Type: application/json' \
-d '{"identity":"[email protected]","password":"your-password"}'
レスポンスの token フィールドが X-PB-Token です。トークンとメールアドレス+パスワードの両方が指定されている場合は、トークンが優先されます。
ツール
| ツール | 説明 |
|---|---|
pb_health | PocketBase のヘルスチェック |
pb_list_collections | すべてのコレクションを完全なフィールドスキーマとともに一覧表示 |
pb_get_collection_schema | 単一のコレクションの完全なスキーマを取得 |
pb_create_collection | 新しいコレクションを作成 |
pb_update_collection | コレクションのスキーマまたはルールを更新 |
pb_delete_collection | コレクションを削除 |
pb_import_collections | コレクションスキーマを一括インポート/上書き |
pb_list_records | コレクション内のレコードを一覧表示/検索 |
pb_get_record | ID で単一のレコードを取得 |
pb_create_record | 新しいレコードを作成 |
pb_update_record | 既存のレコードを更新 |
pb_delete_record | ID でレコードを削除 |
pb_list_backups | 利用可能なバックアップを一覧表示 |
pb_create_backup | 新しいバックアップを作成 |
pb_delete_backup | キーでバックアップを削除 |
pb_get_file_url | ファイルフィールドのダウンロード URL を取得 |
pb_get_settings | アプリの設定を取得 |
pb_update_settings | アプリの設定を更新 |
pb_list_logs | リクエストログを検索 |
リソース
| リソース | URI | 説明 |
|---|---|---|
schema | pocketbase://schema | すべてのコレクションスキーマを JSON 形式で取得 |
セキュリティとプライバシー
このサーバーは完全にステートレスです。データを保存、記録、保持することはありません。
- データベースもディスクへの書き込みもありません — リクエストごとに新しい MCP サーバーとトランスポートをメモリ上に作成して処理し、すべてを破棄します。ディスクに書き込まれることはありません。
- 認証情報は保存しません —
X-PB-URL、X-PB-Token、X-PB-Email、X-PB-Passwordヘッダーはリクエストの処理中のみ使用され、永続化、キャッシュ、記録されることはありません。 - テレメトリーや分析はありません — サーバーは使用データを一切収集しません。サードパーティのサービスに接続することもありません。
- セッションはありません — CookieもセッションIDもなく、リクエスト間でサーバー側に状態が保持されることもありません。
- オープンソース — コードベース全体は MIT ライセンスです。すべての Docker イメージには SLSA provenance attestation が含まれているため、変更を加えずにこのリポジトリから直接ビルドされたことを確認できます。
- 自分でセルフホストする — 最大限の制御を得るには、独自のインスタンスを実行してください。このサーバーは、PocketBase インスタンス以外に外部依存関係のない単一のコンテナです。
セキュリティ強化
パブリックインスタンスをホストする場合、サーバーには以下の追加対策が含まれます。
-
SSRF 保護 —
X-PB-URLを検証します。http/httpsスキームのみが許可され、プライベート/予約済み IP 範囲(127.0.0.0/8、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、169.254.0.0/16、::1、fc00::/7、fe80::/10)に解決されるホスト名は拒否されます。 -
レート制限 — IP ごとのインメモリ・トークンバケット方式です。環境変数で設定できます。
変数 デフォルト 説明 RATE_LIMIT_RPM60IP ごとの1分あたりのリクエスト数 RATE_LIMIT_BURST10最大バーストサイズ -
CORS —
/mcpでプリフライトをサポートし、Access-Control-Allow-Origin: *を設定します。 -
リクエストボディのサイズ制限 — 1 MB を超えるリクエストは
413で拒否されます。
エンドポイント
| メソッド | パス | 説明 |
|---|---|---|
POST | /mcp | MCP エンドポイント(ステートレス、JSON レスポンス) |
GET | /health | ヘルスチェック |
トラブルシューティング
「Failed to reconnect」エラー
MCP クライアントの設定で "type": "sse" が使われている可能性があります。このサーバーが使用するのはステートレスなストリーム可能 HTTPであり、Server-Sent Events ではありません。トランスポートの種類を "http" に変更してください。
{
"mcpServers": {
"pocketbase": {
"type": "http",
...
}
}
}
Claude Code CLI で追加する場合は、--transport http を使用してください。
claude mcp add --transport http pocketbase https://pocketbase.tokenscompany.co/mcp ...
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。