MCP(Model Context Protocol)とは?
最近MCPという言葉をよく聞きますが、何となくしか理解していなかったので調べて実際に使ってみました。
MCPでググると以下のような説明がでてきます。
MCP(Model Context Protocol)とは、大規模言語モデル(LLM)やAIエージェントが外部のツールやリソースに接続するために開発された共通規格(プロトコル)。
言葉だけでは意味がわかりにくいですね。
まず大規模言語モデル(LLM)はChatGPTやClaudeなどの対話型AIのことです。
そして外部のツールやリソースというのはSlack、GitHub、Notionなど様々です。
つまりClaudeなどの対話型AIがSlackやNotionといったサービスに接続して、人間の代わりにあれこれ作業をしてくれるということです。MCPはAIとこれらの各種サービスを接続するためのUSBケーブルみたいなイメージです。
上記はMCPサーバの概要図です。
ここでホストとはChat GPTやClaude、CursolなどのAIエージェントを指します。
そしてMCPサーバですが、これは利用したいサービスにあったものをローカルマシン上に落として使います。
AIエージェントはこのMCPサーバのAPIに対してjson形式でリクエストを送信します。するとMCPサーバは外部サービス(ローカルの場合もある)にアクセスしてリソースを操作し、jsonでレスポンスを返します。
例えばPostgreSQLのMCPサーバを使う場合、まずはそれ用のMCPサーバをインストールします。次にClaudeなどのAIエージェントにそのMCPサーバを登録します。あとは「productsテーブルから単価が5000円以上の商品を取得して」などとプロンプトを投げるだけでデータベースの操作ができるようになります。もちろんデータの登録や更新、削除、テーブルの作成なども可能です。
PostgreSQLからユーザーデータを取得する場合、次のようなリクエストがMCPサーバに送信されます。
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "query",
"arguments": {
"sql": "SELECT * FROM users"
}
}
}
そして以下のようなレスポンスが返却されます。
[
{
"id": 1,
"name": "山田 太郎",
"email": "q9a76@gmail.com",
"created_at": "2025-09-28T16:10:58.091Z",
"updated_at": "2025-09-28T16:10:58.091Z"
},
{
"id": 2,
"name": "田中 花子",
"email": "j6j_io3n5c69@hotmail.com",
"created_at": "2025-09-28T16:10:58.091Z",
"updated_at": "2025-09-28T16:10:58.091Z"
},
{
"id": 3,
"name": "鈴木 洋一",
"email": "g16qxv.k4pijh76@hotmail.com",
"created_at": "2025-09-28T16:10:58.091Z",
"updated_at": "2025-09-28T16:10:58.091Z"
}
]
AIはこの結果をもとに自然言語で応答してくれます。
この後、実際に試してみます。
MCPサーバの探し方
MCPサーバは企業や個人、コミュニティによって様々なものが作成されています。
以下のサイトはMCPサーバのマーケットプレイスです。
ここから使いたいサービスのMCPサーバを探すことができます。
またこちらはMCPの提唱元であるAnthropic社製のMCPサーバです。
MCPサーバはローカルマシン上で動作します。そのため信用ならないMCPサーバを使用すると機密情報を奪取されたりPCを遠隔操作される可能性があります。基本的にAnthropicや信頼できるベンダーから提供されたものだけを使用するようにしましょう。
MCPをお試し
それではここからClaude DesktopとCursolでMCPサーバを使う方法を見ていきます。
今回は例としてこちらのPostgreSQLのMCPサーバを使用してみます。
このPostgreSQLのMCPサーバは現在アーカイブ状態となっておりアクティブなメンテナンスされていません。
こちらのMCPサーバを動かすにはNode.jsが必要なのでインストールしておきましょう。
今回使用するPostgreSQLのMCPサーバはNode.jsで作成されているため実行するにはNode.jsが必要です。もしMCPサーバがPython製ならPython、Go製ならGoといったようにそれに合ったランタイムが必要です。
Claude DesktopでMCPを使ってみる
それでは実際にClaude DesktopからMCPを使ってみます。
※ 画面はWindows版のものです。
画面左上のメニューから ファイル > 設定 を開きます。
開発者タブを開いて「設定を編集」をクリックします。
するとエクスプローラー(Macの場合はFinder)が開きます。
そこにclaude_desktop_config.jsonというファイルがあるので適当なエディタで開いて以下を記述してください。
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://{ユーザー名}:{パスワード}@localhost:5432/{データベース名}"
]
}
}
}
commandのnpxとはnpmパッケージを一時的にインストールして実行してくれるnode.jsのコマンドです。ここでは@modelcontextprotocol/server-postgresというパッケージをインストールして実行するように設定しています。このパッケージがMCPサーバです。
ファイルを保存してClaude Desktopを再起動します。
普通に閉じるだけでは反映しないのでタスクマネージャからタスクキルしてください。
うまくいけばこんな感じになります。
それではチャットに「usersテーブルのデータを取得してください。」と投げてみます。
クエリの実行許可が出るので問題なければ一度だけ許可をクリックします。
データを取得してくれました。
またセキュリティを考慮してパスワードカラムは非表示にしてくれています。
※ これらのデータはfakerを使って作成したもので実在の人物ではありません。
CursorでMCPを使ってみる
CursorからMCPを使用する手順です。
ファイル > ユーザー設定 > Cursor Settings を開きます。
Tools & MCPタブを開いて「Add Custom MCP」をクリックします。
mcp.jsonが開くのでここに以下を記述します。
※ Claude Desktopの時と同じ内容です。
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://{ユーザー名}:{パスワード}@localhost:5432/{データベース名}"
]
}
}
}
うまくいけば以下のようになります。
以上で設定は完了です。
Ctrl + Shiht + L でチャットを開き適当に命令してみましょう。
今回は「usersテーブルからデータを取得してください。」と投げました。
クエリの実行許可が出るので問題なければRunをクリックします。
ちゃんと結果を返してくれました。
※ これらのデータはfakerを使って作成したもので実在の人物ではありません。
まとめ
今回はPostgreSQLのMCPを例に使い方を見ていきましたが、他にもNotionにタスクを追加したり、Slackにメッセージを飛ばしたり、ローカルのファイルを操作させたりといろいろな使い方ができます。
他にも言語やフレームワークのドキュメント検索を行うMCPなんかもあるので、最新の情報を元にコード生成させたり質問に答えてもらうといったことも可能です。
ただしMCPはまだ登場して1年程度の歴史しかないため成熟しきっていません。
セキュリティ的な懸念もあるので使用する際は十分にご注意ください。










