Prisma MCP Server

Official
by prisma
Apache 2.0
8
42,003
  • Linux
  • Apple

Prismaとは何ですか?

Prisma ORM は、次のツールで構成される次世代 ORMです。

  • Prisma Client : Node.js と TypeScript 用の自動生成型セーフクエリビルダー
  • Prisma Migrate : 宣言型データモデリングと移行システム
  • Prisma Studio : データベース内のデータを表示および編集するためのGUI

Prisma Clientは、Node.jsまたはTypeScriptで構築されたあらゆるバックエンドアプリケーション(サーバーレスアプリケーションやマイクロサービスを含む)で使用できます。REST APIGraphQL API 、gRPC APIなど、データベースを必要とするあらゆるアプリケーションで使用できます。

Prisma ORM で使用するデータベースが必要な場合は、 Prisma Postgres を確認してください。

はじめる

クイックスタート(5分)

Prismaを使い始める最も早い方法は、クイックスタートガイドに従うことです。以下の2つのデータベースのいずれかを選択できます。

独自のデータベースを持ち込む

すでに独自のデータベースをお持ちの場合は、次のガイドに従ってください。

Prisma ORMの仕組み

このセクションでは、Prisma ORMの仕組みと最も重要な技術コンポーネントについて概要を説明します。より詳細な情報については、 Prismaのドキュメントをご覧ください。

Prismaスキーマ

Prismaツールキットのツールを使用するすべてのプロジェクトは、Prismaスキーマファイルから始まります。Prismaスキーマにより、開発者は直感的なデータモデリング言語でアプリケーションモデルを定義できます。また、データベースへの接続とジェネレーターの定義も含まれています。

// Data source datasource db { provider = "postgresql" url = env("DATABASE_URL") } // Generator generator client { provider = "prisma-client-js" } // Data model model Post { id Int @id @default(autoincrement()) title String content String? published Boolean @default(false) author User? @relation(fields: [authorId], references: [id]) authorId Int? } model User { id Int @id @default(autoincrement()) email String @unique name String? posts Post[] }

このスキーマでは、次の 3 つの項目を構成します。

  • データソース: データベース接続を指定します(環境変数経由)
  • ジェネレーター: Prismaクライアントを生成することを示します
  • データモデル: アプリケーションモデルを定義します

Prismaデータモデル

このページでは、データモデルに焦点を当てています。データソースジェネレーターの詳細については、それぞれのドキュメントページをご覧ください。

Prismaモデルの機能

データモデルは モデルの集合です。モデルには2つの主要な機能があります。

  • 基礎となるデータベース内のテーブルを表す
  • Prisma クライアント API のクエリの基盤を提供する

データモデルの取得

データ モデルを Prisma スキーマに「取り込む」ための主なワークフローは 2 つあります。

データモデルを定義したら、定義されたモデルに対してCRUDやその他のクエリを公開するPrismaクライアントを生成できます。TypeScriptを使用している場合は、すべてのクエリで完全な型安全性が確保されます(モデルのフィールドのサブセットのみを取得する場合でも)。


Prisma Client でデータベースにアクセスする

Prismaクライアントの生成

Prisma Client を使用する際の最初のステップは、npm パッケージをインストールすることです。

npm install @prisma/client

このパッケージをインストールすると、 prisma generateコマンドが呼び出され、Prismaスキーマが読み込まれてPrismaクライアントコードが生成されます。生成されたコードは、node_modules/@prisma/client/index.d.ts によってエクスポートされるnode_modules/@prisma/client/index.d.ts node_modules/.prisma/clientに配置されます。

データ モデルを変更した後、 node_modules/.prisma/client内のコードが更新されるように、Prisma Client を手動で再生成する必要があります。

npx prisma generate

「Prisma クライアントの生成」の詳細については、ドキュメントを参照してください。

Prisma Clientを使用してデータベースにクエリを送信する

Prismaクライアントが生成されたら、コードにインポートしてデータベースにクエリを送信できます。セットアップコードは以下のようになります。

Prisma Client をインポートしてインスタンス化する

Prisma Client を次のようにインポートしてインスタンス化できます。

import { PrismaClient } from '@prisma/client' const prisma = new PrismaClient()

または

const { PrismaClient } = require('@prisma/client') const prisma = new PrismaClient()

生成されたPrismaクライアントAPI経由でクエリを送信できるようになりました。以下にサンプルクエリをいくつか示します。すべてのPrismaクライアントクエリは*、プレーンなJavaScriptオブジェクト*を返すことに注意してください。

利用可能な操作の詳細については、 Prisma クライアントのドキュメントを参照するか、このデモ ビデオ(2 分) をご覧ください。

データベースからすべてのUserレコードを取得する
const allUsers = await prisma.user.findMany()
返される各Userオブジェクトにpostsリレーションを含める
const allUsers = await prisma.user.findMany({ include: { posts: true }, })
"prisma"を含むすべてのPostレコードをフィルタリングします
const filteredPosts = await prisma.post.findMany({ where: { OR: [{ title: { contains: 'prisma' } }, { content: { contains: 'prisma' } }], }, })
同じクエリで新しいUserと新しいPostレコードを作成する
const user = await prisma.user.create({ data: { name: 'Alice', email: 'alice@prisma.io', posts: { create: { title: 'Join us for Prisma Day 2021' }, }, }, })
既存のPostレコードを更新する
const post = await prisma.post.update({ where: { id: 42 }, data: { published: true }, })

TypeScriptでの使用

TypeScriptを使用する場合、このクエリの結果は静的に型付けされるため、存在しないプロパティに誤ってアクセスすることはありません(また、タイプミスはコンパイル時に検出されます)。Prisma Clientの生成された型を活用する方法については、ドキュメントの「 生成された型の高度な使用方法」ページをご覧ください。

コミュニティ

Prismaには、熱心なアプリケーション開発者による大規模で協力的なコミュニティがあります。DiscordまたはGitHubでご参加いただけます。

バッジ

Prisma で何か素晴らしいものを作りましたか?🌟 これらのバッジでそれを披露しましょう。Readme や Web サイトに最適です。

[![Made with Prisma](http://made-with.prisma.io/dark.svg)](https://prisma.io)
[![Made with Prisma](http://made-with.prisma.io/indigo.svg)](https://prisma.io)

MCPサーバー

Prisma CLIにはPrisma MCPサーバーが含まれています。これは以下のCLIコマンドで起動できます。

npx prisma mcp

ほとんどの AI ツールは、次のような MCP サーバーの JSON ベースの構成をサポートしています。

{ "mcpServers": { "Prisma": { "command": "npx", "args": ["-y", "prisma", "mcp"] } } }

Prisma の MCP サーバーは、AI エージェントにPrisma Postgresデータベースを管理する機能 (新しいデータベース インスタンスの起動やスキーマ移行の実行など) を提供します。

安全

セキュリティ上の問題を報告する場合は、 security@prisma.ioまでご連絡ください。

サポート

Prismaについて質問する

GitHub のprismaリポジトリで、Prisma 関連のトピックについて質問したり、ディスカッションを開始したりできます。

👉質問する

Prismaのバグレポートを作成する

エラーメッセージが表示されたり、問題が発生したりした場合は、必ずバグレポートを作成してください。バグレポートを作成するためのベストプラクティス(追加のデバッグ出力を含めるなど)は、ドキュメントに記載されています。

👉バグレポートを作成する

機能リクエストを送信する

現在 Prisma に特定の機能がない場合には、ロードマップをチェックして、将来的にこの機能が計画されているかどうかを確認してください。

ロードマップ上の機能が GitHub の問題にリンクされている場合は、必ずその問題に 👍 の反応を残し、できればその機能についてのご意見をコメントに残してください。

👉 機能リクエストを送信する

貢献

貢献ガイドライン貢献者行動規範を参照してください。

テストのステータス

  • Prisma テストのステータス:
  • エコシステムテストのステータス:
-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Prisma Postgresデータベースを簡単に管理

  1. Getting started
    1. Quickstart (5min)
    2. Bring your own database
  2. How Prisma ORM works
    1. The Prisma schema
    2. The Prisma data model
    3. Accessing your database with Prisma Client
  3. Community
    1. Badges
      1. MCP server
        1. Security
          1. Support
            1. Ask a question about Prisma
            2. Create a bug report for Prisma
            3. Submit a feature request
          2. Contributing
            1. Tests Status
              ID: 5atsjpttzp