こんにちは!日々のコーディング、本当にお疲れ様です。
突然ですが、皆さんはAIエディタを使っていて、こんなもどかしさを感じたことはありませんか?
「確かにAIは賢いけれど、今まさに自分が触っている社内データベースのスキーマや、独自のAPI仕様、社内ドキュメントの文脈なんて知るわけがないよね……だから結局、自分でコードをコピペして説明しなきゃいけない」と。
もし、そのもどかしさが一瞬で解消されるとしたらどうでしょう?
今回解説するのは、Cursorの真骨頂である MCP(Model Context Protocol) 連携です。これを使えば、あなたのローカル環境や外部データベース、プライベートなAPIをAIが直接「見る・操作する」ことができるようになります。
「難しそう……」なんて身構えなくて大丈夫。今回は、MCPの基本概念から、思わず感動してしまうようなHelloWorld(実践的な動作確認)まで、優しく丁寧にお手伝いします。これをマスターすれば、毎日のコーディングが劇的に楽になりますよ。ぜひ最後までついてきてくださいね!
—
1. MCP(Model Context Protocol)とは何か?なぜ開発現場の常識が変わるのか
AIと外部データを繋ぐ「共通の通訳」
これまでのAIアシスタントは、基本的に「チャットに入力されたテキスト」か「今エディタで開いているファイル」しか見ることができませんでした。つまり、エディタの外にあるデータベースや、クラウド上のドキュメントは完全な「外部の暗黒領域」だったのです。
そこでAnthropic社が提唱したのが MCP(Model Context Protocol) です。
MCPは、いわば「AIが外部のデータソースやツールと安全に会話するための共通規格(プロトコル)」です。
[ Cursor (AI) ] — (標準化されたMCP) —> [ MCPサーバー ] —> [ データベース / 外部API / ローカルファイル ]
この仕組みにより、CursorのAIは自律的に「あ、このタスクを解決するには、あのデータベースのテーブル定義を確認する必要があるな。よし、MCPサーバー経由でデータを取得しよう」と判断し、実行できるようになります。
なぜ実務でこれほど価値があるのか?
実務の開発では、次のような「面倒なコンテキストの補足作業」に多くの時間を奪われています。
- 「このテーブルの外部キー制約ってどうなっていたっけ?」とDBクライアントを開いて確認する
- 社内のNotionやConfluenceから仕様書を探し出してAIに貼り付ける
- 独自ライブラリの型定義を細かく説明する
MCPを導入すれば、AIがあなたの代わりにローカルやクラウドのリソースへ直接アクセスし、文脈を完全に理解した状態でコードを生成してくれます。ハルシネーション(嘘の回答)が劇的に減り、開発スピードが何倍にも跳ね上がるのはそのためです。
—
2. 基礎セットアップ:CursorとMCPを繋ぐ
それでは、実際に手を動かして環境を整えていきましょう。
今回は、最も手軽かつ強力にMCPの威力を体感できる「ローカルのSQLiteデータベースをAIから直接読み込めるようにする環境」を構築します。
ステップ1:前提条件の確認
Cursorが最新版にアップデートされていることを確認してください(設定の「About」から確認できます)。また、お使いのPCに `Node.js` がインストールされている必要があります(MCPサーバーの多くはNode.js製やPython製のためです)。
ステップ2:MCP設定ファイルの場所
Cursorでは、MCPサーバーの接続情報をJSONファイルで一元管理します。
以下のパスに設定ファイルを作成・編集します。
- macOS: `~/Library/Application Support/Cursor/mcp.json`
- Windows: `%APPDATA%\Cursor\mcp.json`
※もしファイルが存在しない場合は、新しく作成してください。
ステップ3:SQLite用MCPサーバーの設定
今回は、公式が提供している標準的なSQLite用のMCPサーバーを動かします。特別な事前インストールは不要で、内部的に `npx` を使って安全に起動させることができます。
`mcp.json` に以下の設定を記述してください。
{
“mcpServers”: {
“sqlite-local-db”: {
“command”: “npx”,
“args”: [
“-y”,
“@modelcontextprotocol/server-sqlite”,
“../../db/sample.db” // あなたのプロジェクト内にあるSQLiteファイルのパスを指定してください
]
}
}
}
💡 ここがポイント(アーキテクトの知見):
- `npx -y`: ローカル環境を汚さず、必要に応じて必要なパッケージを一時的にダウンロードして安全に実行するモダンなCLIの作法です。
- パスの指定: プロジェクトルートからの相対パス、または絶対パスでデータベースファイルを指定します。このファイルが、AIから参照される「外部世界」になります。
設定を保存したら、Cursorを一度完全に再起動してください。これだけで、AIとデータベースを繋ぐパイプラインの準備は完了です。
—
3. 精度高い HelloWorld:AIにデータベースを触らせてみよう
環境が整ったら、さっそく動作確認を兼ねて「HelloWorld」ならぬ「データベース連携テスト」を行いましょう。
準備:テスト用データの用意
プロジェクトの適当な場所に `db/sample.db` というSQLiteデータベースを作成し、次のような簡単なユーザーテーブルを作っておきます。
— テーブルの作成
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
— テストデータの挿入
INSERT INTO users (name, email) VALUES (‘山田太郎’, ‘yamada@example.com’);
INSERT INTO users (name, email) VALUES (‘鈴木花子’, ‘suzuki@example.com’);
実行:Cursorのチャット(Ctrl+I または Cmd+I / Chatパネル)で話しかける
それでは、CursorのAIチャットを開いて、次のように話しかけてみてください。
> 「接続されているSQLiteデータベースの中にある `users` テーブルの構造を確認し、登録されている全ユーザーのデータを取得して、綺麗にMarkdownの表形式で出力してください。さらに、TypeScriptの型定義コードも作成して!」
内部で何が起きているか(データフローの解説)
1. 意図の理解: あなたのプロンプトを受け取ったCursorのAIは、「あ、これはデータベースの情報を必要とするリクエストだな」と判断します。
2. MCPツールの呼び出し: AIは自身が利用可能なツールリストの中から `sqlite-local-db` を選択し、「テーブル一覧の取得」「SQLクエリの実行」といった命令をMCPプロトコル経由でローカルのMCPサーバーに投げます。
3. 安全な実行: MCPサーバーがローカルの `sample.db` に対して安全にクエリを発行し、結果を取得します。
4. コンテキストの統合: 取得された生データ(JSONなど)がAIの文脈(Context)に自動で組み込まれ、AIがそれを元に人間にとって分かりやすい回答やコードを生成します。
期待されるAIの出力例
AIはデータベースに直接アクセスしているため、推測やハルシネーション一切なしで次のような正確な回答を返してくれます。
データベースに接続し、`users` テーブルのスキーマとデータを取得しました。
ユーザー一覧
| ID | 名前 | メールアドレス | 登録日時 |
|—-|——|—————-|———-|
| 1 | 山田太郎 | yamada@example.com | 2023-10-25 12:00:00 |
| 2 | 鈴木花子 | suzuki@example.com | 2023-10-25 12:05:00 |
TypeScript 型定義
取得したスキーマに基づき、以下の型定義を生成しました:
export interface User {
id: number;
name: string;
email: string | null;
createdAt: string;
}
……いかがでしょうか?
自分でデータベースを開いて、スキーマを目視して、型定義を手打ちする作業が、一言チャットに話しかけるだけで一瞬で完了しました。これが、MCP連携がもたらす圧倒的な開発体験の未来です。
—
4. 現場で役立つ実践的な注意点とベストプラクティス
MCPは非常に強力ですが、実務で運用する際にはプロフェッショナルとして押さえておくべき重要な注意点があります。
1. セキュリティとアクセス権限の管理
MCPサーバーは、あなたのPCやサーバーのローカルリソースに直接アクセスします。プロダクション環境のデータベース(本番DB)の接続情報を安易に渡すのは絶対に避け、必ずローカルの検証用DBや、読み取り専用(Read-Only)の権限を付与した認証情報を使用してください。
2. MCPサーバーの安定性
MCPサーバーはNode.jsのプロセスとしてバックグラウンドで稼働します。もしAIが「ツールに接続できません」と返す場合は、Cursorのログを確認し、プロセスがクラッシュしていないか、パスが正しく通っているかを確認する癖をつけましょう。
3. カスタムMCPサーバーの自作という選択肢
公式が用意しているサーバー(SQLite, GitHub, Postgres, Google Driveなど)だけでなく、TypeScriptやPythonを使って自分専用のオリジナルのMCPサーバーを数行で自作することも可能です。「社内の独自APIを叩くMCPサーバー」などを内製化すれば、チーム全体の生産性を爆発的に引き上げることができます。
—
おわりに
今回は、CursorのMCP連携の基本概念からセットアップ、そしてデータベースを華麗に操作するHelloWorldまでを解説しました。
「AIにコードを書かせる時代」から、「AIにプロジェクト全体の文脈を直接掴ませ、自律的に作業させる時代」へ、開発のフェーズは確実にシフトしています。
最初は少し難しく感じるかもしれませんが、一度この仕組みを構築してしまえば、毎日のコーディングにおける「めんどくさい調べものやデータ確認」のストレスが嘘のように消え去ります。ぜひ今日の開発環境にMCPを取り入れて、その快適さを肌で感じてみてください。
あなたの開発ライフが、よりクリエイティブで楽しいものになりますように!