アイキャッチ画像: Claude CodeのMCP:データベースとAPIを接続する方法

Claude CodeのMCP:データベースとAPIを接続する方法

公開日:

読了時間: 2 min

テーマ: テクノロジー

著者: Leandro Valencia

#claude code#mcp#model context protocol#mcpサーバー#postgresql#superpowers#AIエージェント

claude mcp addでClaude CodeにMCPサーバーを追加し、.mcp.jsonでチームと共有する方法。認証情報を漏らさずGit、PostgreSQL、APIに接続できます。

目次

インストールすると、Claude Codeはターミナルでファイルを読み取り、コマンドを実行できるようになります。データベースへの問い合わせ、Issueの確認、APIの呼び出しを行わせるには、モデルを外部ツールに接続するためにAnthropicが公開したオープンなプロトコル、MCP(Model Context Protocol)が必要です。

このガイドでは、MCPサーバーの追加方法、認証情報をGitにコミットせずチームと共有する方法、本格的な接続を行う前に守るべきセキュリティのルールを説明します。

クイックリファレンス

サーバー トランスポート コマンド 推奨スコープ 主な注意点
ローカルのGit stdio(uvx) claude mcp add git -- uvx mcp-server-git user 公開される書き込み操作を確認する
PostgreSQL stdio(npx) claude mcp add db -- npx -y @bytebase/dbhub --dsn "$DATABASE_READONLY_URL" project 読み取り専用ユーザーの場合のみ使う
リモートAPI http claude mcp add --transport http mi-api https://mcp.ejemplo.com/mcp project トークンは変数に入れ、ファイルには書かない
ファイルシステム stdio(npx) claude mcp add archivos -- npx -y @modelcontextprotocol/server-filesystem . local パスはプロジェクトに限定し、ディスクのルートにはしない

MCPの仕組み

Claude Codeはクライアントとして動作します。各MCPサーバーは、run_queryやlist_issuesのようなツールを公開するプロセスまたはサービスです。セッション中、Claudeはそれらのツールを認識し、いつ呼び出すかを判断します。設定に応じて、あなたの許可を求めることもあります。

接続方法は2種類あります。

  • stdio: Claude Codeがサーバーをローカルのプロセスとして起動し(通常はnpxまたはuvxを使用)、標準入出力で通信します。自分のマシンで動作するツールに一般的な方法です。
  • http: サーバーはリモートのURLに置かれます。クラウドサービスに一般的な方法です。多くの大手サービスは、OAuth認証付きの公式MCPサーバーを公開しています。

ステップ1:ローカルサーバーを追加する(stdio)

基本の形式は次のとおりです。

claude mcp add <nombre> -- <comando> [argumentos...]

--区切りは必須です。これはclaudeのオプションと、サーバーを起動するコマンドを分けるものです。これがないと、Claude Codeはサーバーの引数を自分のオプションとして解釈しようとします。

Gitサーバーの例:

claude mcp add git -- uvx mcp-server-git

読み取り専用ユーザーの環境変数を指定して、DBHubでPostgreSQLに接続する例:

export DATABASE_READONLY_URL="postgresql://lectura:****@db.tuempresa.com:5432/analytics"
claude mcp add db -- npx -y @bytebase/dbhub --dsn "$DATABASE_READONLY_URL"

ステップ2:リモートサーバーに接続する(HTTP)

claude mcp add --transport http mi-api https://mcp.ejemplo.com/mcp \
  --header "Authorization: Bearer $MI_API_TOKEN"

サーバーがOAuthを使う場合は、ヘッダーを付けないでください。セッションに入り、/mcpを実行して、ブラウザで認証の手順に従います。

ステップ3:スコープを選ぶ

各サーバーは3つのスコープのいずれかに保存されます。--scopeで選択します。

  • local(デフォルト):自分だけが、このプロジェクトでのみ使います。テストや、個人の認証情報を使うサーバーに便利です。
  • project:リポジトリ直下の.mcp.jsonに書き込まれます。クローンしたチーム全員が受け取ります。プロジェクトのサーバーを初めて使うとき、Claude Codeは承認を求めます。
  • user:自分のすべてのプロジェクトで使えます。Gitのような汎用ツールに最適です。
claude mcp add --scope project db -- npx -y @bytebase/dbhub --dsn '${DATABASE_READONLY_URL}'

ステップ4:秘密情報を共有せずに設定を共有する

.mcp.jsonは${VARIABLE}の構文による環境変数(および${VARIABLE:-デフォルト値})に対応しています。これにより、認証情報なしでファイルをリポジトリに含められます。

{
  "mcpServers": {
    "mi-api": {
      "type": "http",
      "url": "https://mcp.ejemplo.com/mcp",
      "headers": {
        "Authorization": "Bearer ${MI_API_TOKEN}"
      }
    },
    "db": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@bytebase/dbhub", "--dsn", "${DATABASE_READONLY_URL}"]
    }
  }
}

各開発者は自分の変数(export MI_API_TOKEN=...)をエクスポートするか、シークレット管理ツールから読み込みます。誰もファイルに触れる必要はありません。

ステップ5:動作を確認する

claude mcp list        # estado de todos los servidores
claude mcp get db      # detalle de uno
claude mcp remove db   # eliminarlo

セッション内で/mcpを実行すると、接続されているサーバーと公開しているツールが表示されます。サーバーにエラーが出る場合、最もよくある原因は、Claude Codeを起動したシェルで環境変数が定義されていないことです。

本格的な接続の前に守る8つのセキュリティルール

  1. 最小権限の原則。 読み取り専用のデータベースユーザーを使い、トークンには必要最小限の権限だけを与えます。エージェントに管理者ユーザーを渡してはいけません。
  2. リポジトリに秘密情報を置かない。 必ず環境変数を.mcp.jsonで使います。
  3. パスを限定する。 ファイルサーバーが見られるのはプロジェクトのフォルダーだけにします。
  4. 公式または検証済みのサーバーを使う。 サービス提供元が公開しているものを優先します。MCPサーバーはあなたのマシン上でコードを実行するため、インストール前に提供元を確認してください。
  5. 書き込みを伴う操作には人の承認を入れる。 データを変更するツールには確認を求めるよう、Claude Codeの権限を設定します。あるいは、mcp__db__.*のようなマッチャーを付けたPreToolUseフックで、特定の呼び出しをブロックまたは記録します。
  6. 妥当なタイムアウトを設定する。 サーバーの起動に時間がかかる場合(最初のnpxのダウンロードは通常遅い)は、MCP_TIMEOUT変数(ミリ秒単位)で待機時間を延ばします。
  7. 出力の上限を設ける。 ツールが大量の結果を返す場合は、MAX_MCP_OUTPUT_TOKENSを調整し、LIMIT付きのクエリを使って、モデルのコンテキストがあふれないようにします。
  8. 本番の前にレプリカを使う。 分析には、メインのデータベースではなく、レプリカまたはステージング環境に接続します。

Superpowersはどこに入る?

MCPはClaude Codeにツールへのアクセスを与えます。一方、Superpowersは進め方を与えます。コーディングの前に設計させ、段階的な計画を書かせ、テストを先に書いて作業させるスキルのプラグインです。両者は補完関係にあります。MCPではClaudeがデータベースに問い合わせられ、Superpowersではそれがレビュー済みの計画の中で行われます。

まだインストールしていない場合は、Claude CodeにSuperpowersをインストールする方法のガイドで、マーケットプレイスからの導入を5分ほどで説明しています。

チームのための計画

  1. ツールを標準化する。 チームにClaude Codeをインストールし、どのサーバーを汎用(userスコープ)にし、どれをプロジェクト用にするかを決めます。
  2. AI用の認証情報を作成する。 インフラ担当者に、専用の読み取り専用データベースユーザーを依頼します。アクセスは必要なスキーマに限定します。
  3. .mcp.jsonをバージョン管理する。 環境変数を使った状態でリポジトリにコミットし、各開発者に必要な変数をREADMEに記載します。
  4. 効果を測定する。 チームの問題解決が速くなれば、コスト構造も変わります。利益率計算ツールで数字を確認しましょう。

Step-by-step guide

  1. ローカルサーバーを追加

    claude mcp add <nombre> -- <comando>の形式で、コマンドの前に--区切りを付けます。

  2. リモートサーバーに接続

    claude mcp add --transport http <nombre> <url>で、トークンはヘッダーに入れます。

  3. 適切なスコープを選ぶ

    自分だけならlocal、チームならproject(.mcp.json)、すべてのプロジェクトならuserです。

  4. 認証情報をリポジトリから除外

    .mcp.jsonでは${VARIABLE}を使い、各開発者がシェルで環境変数を設定します。

  5. 動作確認と権限の制限

    claude mcp listか/mcpで確認し、読み取り専用ユーザーと書き込み用のフックを使います。

Frequently asked questions

Claude CodeのMCPとは何ですか?

MCP(Model Context Protocol)は、Claude Codeをデータベース、リポジトリ、タスク管理ツール、APIなどの外部ツールに接続するためのオープンなプロトコルです。各接続はMCPサーバーとして動作し、セッション中にClaudeが呼び出せるツールを公開します。

local、project、userのスコープの違いは何ですか?

localは現在のプロジェクトでだけ、自分にのみサーバーを保存します。これがデフォルトです。projectはリポジトリ直下の.mcp.jsonに書き込み、チーム全員が利用できるようにします。userは、自分のすべてのプロジェクトでサーバーを使えるようにします。

本番のデータベースに接続しても安全ですか?

読み取り専用ユーザーを使い、できればレプリカに接続する場合にのみ安全です。本番への書き込み権限を持つエージェントは、指示の解釈を誤って破壊的なクエリを実行する可能性があります。有効にする前に、サーバーが公開するツールを確認することもおすすめします。

MCPを使うにはSuperpowersが必要ですか?

いいえ。MCPはClaude Codeに組み込まれています。Superpowersは作業手順(設計、計画、テスト)を強制するスキルのプラグインです。両者は補完し合いますが、それぞれ単独で動作します。

関連記事

興味を持ちそうな関連コンテンツを探し続けましょう

提携

私が毎日使っていて、このコミュニティがより良い条件で使えるツールです。

アフィリエイトリンクです。あなたの支払う価格は変わりません。すべての提携を見る
トレーニングプログラム

アイデアを実際のプロジェクトに変える準備はできましたか?

Transformaは、明確さと方法論でプロジェクトを作成・実行・スケールさせることを学ぶプログラムです。

Transformaプログラムを知る