Claude CodeにPrisma Postgres MCPをつないでデータベースを作成・管理する
Prisma公式のリモートMCPサーバーをclaude mcp addで登録し、Prisma Postgresの作成・接続文字列の発行・バックアップ復元までを会話で進める手順。削除系ツールを止める権限設定も示します。
Prisma MCPサーバーでClaude Codeにできること
Prismaが公式に提供するMCPサーバー(https://mcp.prisma.io/mcp)をつなぐと、Claude CodeからPrisma Postgresのデータベースを作り、接続文字列を発行し、SQLを流すところまでを会話で進められます。サーバーが扱う対象は、Prisma Postgresのデータベース、Prisma Computeにデプロイしたアプリ、Object Storageのバケットとアクセスキーの3つです。
この記事で扱うのはデータベース側です。ツールは次の6グループに分かれます。
| グループ | 代表的なツール | できること |
|---|---|---|
| ワークスペースとDB | 代表的なツールlist_prisma_postgres_databases / create_prisma_postgres_database | できること一覧、作成、削除 |
| 接続文字列 | 代表的なツールcreate_prisma_postgres_connection_string | できること一覧、発行、削除 |
| バックアップ | 代表的なツールlist_prisma_postgres_backups / create_prisma_postgres_recovery | できること自動バックアップの一覧と、新しいDBへの復元 |
| スキーマとクエリ | 代表的なツールintrospect_database_schema / execute_sql_query / execute_prisma_postgres_schema_update | できること構造の確認、SQL実行、スキーマ変更 |
| Object Storage | 代表的なツールcreate_object_store_bucket など | できることバケットとS3互換アクセスキーの管理 |
| ドキュメント検索 | 代表的なツールsearch_prisma_documentation | できることPrisma公式ドキュメントに基づく回答 |
Prisma ComputeのアプリやComposerのトポロジーを扱うツールもありますが、Computeのツールは既存のデプロイを管理するもので、ソースコードのビルドとアップロードはしません。新しいアプリの配備はPrisma Computeのガイドに従う作業です。
スキーマ設計そのものは別の話です。モデル定義を書かせる手順はClaude CodeでPrismaスキーマを設計するで扱っています。本記事は、その土台となるデータベースを用意して運用する側を受け持ちます。
前提と準備
必要なのはPrismaアカウントと、プロジェクトをまとめるワークスペースへのアクセスです。アカウントがなければPrisma Consoleでサインアップします。接続時にサインインしてワークスペースを選び、アクセスを承認する流れなので、APIキーを手元で作る工程はありません。
Claude Codeに登録する
登録は1コマンドです。
claude mcp add --transport http prisma https://mcp.prisma.io/mcpPrisma側のドキュメントも、Claude Code向けにはこのコマンドを案内しています。末尾のURLがサーバーの場所、prismaがClaude Code内で使う名前です。名前は後でツール名と権限ルールに現れるので、変えるならこの時点で決めます。
スコープを省略するとローカルスコープになり、このプロジェクトだけで使える自分専用の登録として~/.claude.jsonに保存されます。チームで共有したい場合は--scope projectを付けると.mcp.jsonに書かれてバージョン管理に載ります。ただしこのサーバーは各自のPrismaアカウントで認証する形なので、共有するのは接続先の定義だけで、認証は各メンバーが自分で行います。スコープの違いはClaude Code MCP設定ガイドで詳しく扱っています。
JSON形式で登録したい場合は、Prismaのドキュメントにある次の定義が使えます。claude mcp add-jsonでの渡し方はclaude mcp add-jsonの使い方にあります。
{
"mcpServers": {
"Prisma": {
"url": "https://mcp.prisma.io/mcp"
}
}
}Claude Codeで使うときは、このurlのサーバーに対してtypeをhttpとして登録することになります。トランスポートを尋ねられる場面ではStreamable HTTPを選ぶ、というのがPrisma側の案内です。
認証してつながったか確かめる
登録した時点では、まだPrismaアカウントにサインインしていません。Claude Codeの中で/mcpを開くと、リモートサーバーの認証状態が見えます。Claude Codeは、リモートサーバーが401 Unauthorizedか403 Forbiddenを返すと、そのサーバーを認証が必要なものとして扱います。/mcpから認証を選ぶとブラウザでPrisma Consoleのサインインが開くので、サインインし、ワークスペースを選び、アクセスを承認します。
つながったことは、Claudeに次のように頼んで確かめます。Prismaのドキュメントも、この確認用のプロンプトを案内しています。
List my Prisma databasesワークスペース内のデータベース一覧が返ってくれば成功です。サーバーの状態は、シェルからもclaude mcp listとclaude mcp get prismaで見られます。✔ Connectedと! Needs authenticationの違いで、登録の問題か認証の問題かを切り分けられます。
データベースを作る
接続できたら、作りたいものを自然文で頼みます。Prismaのサンプルプロンプトには「米国リージョンに新しいデータベースを作って」という例があります。
Create a new database in the US region for me.裏で呼ばれるのはcreate_prisma_postgres_databaseで、説明は「管理されたPrisma Postgresデータベースと新しいプロジェクトを作成する」です。つまりデータベース単体ではなく、プロジェクトごと作られます。
作った後は、接続先を取り出します。
list_prisma_postgres_databasesでデータベースのIDを確認するcreate_prisma_postgres_connection_stringで、そのIDに対する接続文字列を発行する- アプリの
.envに入れる
3の手前で一つ決めておくことがあります。接続文字列は秘密情報なので、会話の履歴に出てもよいかどうかです。Claudeに.envへ直接書かせるなら、ファイルを書くだけで済む指示にします。たとえば「接続文字列を発行して.envのDATABASE_URLに書いて。値は出力に表示しない」と頼みます。表示させない指示が効くかどうかはモデルの挙動に依存するので、確実に避けたいなら.envを読み書きできる範囲を権限で絞る方が安全です。
スキーマの確認とSQLの実行
既存のデータベースに対しては、introspect_database_schemaで構造を読めます。Claudeに既存データを分析させる前に、まず構造を読ませると、存在しない列を想像したSQLを減らせます。
SQLを流すのはexecute_sql_queryです。説明は「スキーマを変えずに、データの読み取り・変更・削除を行うSQLを実行する」です。読み取り専用のツールではなく、DELETEやUPDATEも通る点に注意が要ります。テーブルやカラムの定義を変えるのは別のツールexecute_prisma_postgres_schema_updateで、こちらはスキーマ更新用です。
Prismaが挙げる使い方の例には「顧客を全件出して、注文の分析をして」があります。分析の依頼なら、次のように読み取りに限定して伝えると意図が通ります。
introspect_database_schema でテーブル構造を確認してから、
SELECT だけで顧客ごとの注文件数を集計して。更新系の SQL は実行しない。指示で限定しても、ツールの許可そのものは別の層で決まります。次の節で、その層を設定します。
削除系ツールを権限で止める
Prismaのドキュメントは、データを失ったり稼働中のトラフィックを止めたりしうる操作について、承認する前に対象のワークスペースとリソースを確認するよう警告しています。ツールの一覧を見ると、取り消せない操作が複数あります。
delete_prisma_postgres_database: データベースをIDで完全に削除する。プロジェクトの既定のデータベースは削除できないdelete_prisma_postgres_connection_string: 接続文字列を削除するdelete_object_store_bucket: バケットと中のオブジェクト、アクセスキーをすべて完全に削除するdelete_object_store_bucket_key: アクセスキーを削除する。キーは即座に使えなくなる
Claude Codeでは、MCPツールの権限ルールをmcp__<サーバー名>__<ツール名>の形で書きます。サーバー名をprismaで登録したので、削除系は次のようにまとめて拒否できます。ファイルは.claude/settings.jsonか、個人用なら.claude/settings.local.jsonです。
{
"permissions": {
"deny": [
"mcp__prisma__delete_prisma_postgres_database",
"mcp__prisma__delete_prisma_postgres_connection_string",
"mcp__prisma__delete_object_store_bucket",
"mcp__prisma__delete_object_store_bucket_key"
]
}
}サーバー全体を許可する書き方はmcp__prisma__*です。ただし、execute_sql_queryはDELETE文も通せるので、削除系のツールを止めただけではデータ削除は防げません。SQLを実行するツールは、許可リストに入れずに毎回確認を出させる運用が現実的です。許可の評価順やaskルールの書き方はClaude Codeのパーミッション設定を参照してください。
バックアップから復元する
Prisma Postgresは自動バックアップを取っており、一覧はlist_prisma_postgres_backupsで見られます。復元はcreate_prisma_postgres_recoveryで、バックアップIDを指定して新しいデータベースに復元します。ツールの説明は「指定したバックアップIDで、Prisma Postgresデータベースを新しいデータベースへ復元する」です。
既存のデータベースを上書きする操作ではないので、誤って本番を巻き戻す心配は小さい一方、新しいデータベースが増えます。復元後にアプリの接続先を切り替える作業は、接続文字列の発行から先の手順と同じです。
同じサーバーを他の面で使う場合
Prismaのドキュメントには、Claude Code以外の接続方法も並んでいます。
- Claude Desktop(設定ファイル):
claude_desktop_config.jsonのmcpServersに上のJSONを足す。macOSは~/Library/Application Support/Claude/、Windowsは%APPDATA%\Claude\の下にある - Claude DesktopとWeb(連携として追加): 新しいチャットの「Connect apps」から「Add integration」を選び、名前に
Prisma、URLにhttps://mcp.prisma.io/mcpを入力する
どちらも同じURLを指します。Claude Codeを使わない場合の手順は、VS Code、Codex、Cursor、Windsurf、Warpなどごとに別々です。
よくあるつまずき
一覧が空で、期待したデータベースが出ない
認証時に選んだワークスペースが違う可能性があります。サーバーはサインイン時に選んだワークスペースの内容だけを扱うので、fetch_workspace_detailsで今のワークスペースを確認し、違えば/mcpから認証し直してワークスペースを選び直します。
Needs authenticationのまま動かない
claude mcp listの表示が! Needs authenticationなら、登録は成功していて認証だけが済んでいません。Claude Codeの中で/mcpを開いて認証を完了します。完了した後も接続に失敗する場合、Claude Codeは失敗の詳細として状態コードをclaude mcp get prismaのIssue:行に出します。
作業の途中で意図しないリソースが増える
create_prisma_postgres_databaseはプロジェクトごと作り、create_prisma_postgres_recoveryは復元のたびに新しいデータベースを作ります。試行錯誤で何度も呼ばせると、ワークスペースにデータベースが積み上がります。作る前にlist_prisma_postgres_databasesの結果を見て、既存のものを使えないか確認してから進めます。
まとめ
導入はclaude mcp add --transport http prisma https://mcp.prisma.io/mcpと/mcpでの認証の2段で済み、APIキーの管理はありません。重いのは導入より運用で、execute_sql_queryがデータの削除まで通せる点と、削除系ツールが取り消せない点が分かれ目になります。削除系はpermissions.denyで止め、SQL実行は許可リストに入れずに毎回承認を挟む構成から始めると、ワークスペースの取り違えのような誤操作でも被害を小さくできます。スキーマ設計を並行して進めるなら、モデル定義の手順はPrismaスキーマ設計の記事、PostgreSQL側の設計指針をClaudeに足す方法はpg-aiguideの導入記事が受け持ちます。