😇

Model Context Protocol (MCP) x PostgreSQL

2024/12/07に公開

ためすこと

Model Context Protocol (MCP) x PostgreSQL
を動作させてみます。

手順

1. Claude Desktop

ブラウザからダウンロードします。

2. PostgreSQL

とありあえず、動作確認程度が目的なのでDockerでサクッとつくってしまいます

Dockerfile
# postgresqlのインストール
FROM postgres:latest
# postgresqlのデータベース作成
ENV POSTGRES_DB=postgres
# postgresqlのユーザー作成
ENV POSTGRES_USER=postgres
# postgresqlのパスワード作成
ENV POSTGRES_PASSWORD=postgres
# postgresqlのポート設定
EXPOSE 5432
# postgresqlの初期設定
COPY ./init.sql /docker-entrypoint-initdb.d/
# postgresqlの起動
CMD ["postgres"]
init.sql
-- データベース作成
CREATE DATABASE sampledb;
GRANT ALL PRIVILEGES ON DATABASE sampledb TO postgres;

-- データベースに接続
\connect sampledb

-- 製品テーブルを作成
CREATE TABLE IF NOT EXISTS product (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    price INT NOT NULL
);

-- 初期データを挿入
INSERT INTO product (name, price) VALUES
    ('りんご', 100),
    ('みかん', 50),
    ('バナナ', 80);

ファイルつくったら実行

$ docker build -t mcp-1 .
$ docker run  -it -d -p 5432:5432 mcp-1

データがみえました

3. 起動設定

Settings > Deverloper > Edit Config

claude_desktop_config.jsonを編集します。はじめは{}が記載されています。

claude_desktop_config.json
{
  "mcpServers": {
    "postgres": {
      "command": "/Users/<me>/.asdf/shims/npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://postgres:postgres@localhost:5432/sampledb"
      ]
    }
  }
}
  • Claude Desktopを起動してみます。カナヅチのマークを押すと、設定されていることがみえます。

  • PosgreSQLはRead Onlyです。

  • 出力できるかためしてみます

4. さいごに

今回の手順で、Model Context Protocol (MCP) を用いて PostgreSQL データベースと連携する環境を構築できました。Dockerを使用して簡易的にデータベースをセットアップし、claude_desktop_config.json を適切に設定することで、Claude Desktop 上で PostgreSQL を操作する基盤を整えることができました。
MCP を使うことで、異なるデータベースやアプリケーションとシームレスに連携する新たな可能性が広がります。この手法を応用すれば、より高度なデータ管理やアプリケーションの開発が期待できます。ぜひ、他の環境やプロジェクトでも試してみてください。

Discussion