この記事の操作
Cursorを使ってアプリケーションを開発する際、GitHub や Backlog / Stripe / CircleCI などのMCPサーバーと連携し、さまざまな開発ツールと連携させたエージェンティックなワークフローを構築することがあります。しかし場合によっては、サービス連携のために必要な API キーの設定などが必要となり、Gitで MCPサーバーの設定を共有する仕組みに悩むことがあります。
この記事では、Cursorで安全にMCPサーバーの設定をGitで共有できる方法を紹介します。
CursorでのMCPサーバー設定はJSONで共有
Cursorにはプロジェクト単位でMCPサーバーの設定を行う機能が用意されています。この機能を利用することで、「このプロジェクトで使うMCPサーバーはこれ」「このプロジェクトで使うMCPサーバーの機能(ツール)を制限する」などの管理や、新しく参加したメンバーへの環境セットアップの効率化などが図れます。
.cursor/mcp.jsonを作成し、以下のコードを入れてみましょう。これでこのプロジェクトではPlaywright MCPサーバーが利用できるようになります。
{
"mcpServers": {
"playwright-mcp": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
}
}
この方法に対する懸念点は1つ、APIキーなどの漏洩リスクです。JSONで設定を行うため、Stripe / Backlog / CircleCIなどの外部サービスとの連携を行うには、JSON内にAPIキーを記述する必要があります。
{
"mcpServers": {
"circleci-mcp-server": {
"command": "npx",
"args": ["-y", "@circleci/mcp-server-circleci"],
"env": {
"CIRCLECI_TOKEN": "YOUR_SECRET"
}
}
}
}
このようなファイルをGitにcommitしてしまうと、JSONに記載したAPIキーが漏洩しかねない状態になります。
envFileで環境変数をファイルから読み取る
Cursorでmcp.jsonを安全に扱うために知っておきたいパラメーターがenvFileです。これを使うことで、先に紹介した「APIキーを必要とするMCPサーバーの設定を、Git管理されているmcp.jsonに記載できない」問題が解決できます。
このパラメーターは、該当のMCPサーバーを起動する際に読み取る環境変数ファイルのパスを指定できます。.envにAPIキーを記載しておけば、mcp.jsonでは.envファイルのパスをenvFileに定義しておくだけで、MCPサーバーもAPIキーを.envのデータを読み取って利用してくれます。
先ほどのCircleCI MCPサーバーの例ですと、まず.envファイルにAPIキーを移動させます。
CIRCLECI_TOKEN=CCIPAT_xxx
その後、.cursor/mcp.jsonの設定を変更し、envFileを指定します。
{
"mcpServers": {
"circleci-mcp-server": {
"command": "npx",
"args": ["-y", "@circleci/mcp-server-circleci"],
"envFile": "${workspaceFolder}/.env"
}
}
}
これでmcp.jsonにAPIキーなどの機密情報がなくなりました。あとは.envファイルを.gitignoreしていることを確認し、Gitに追加しましょう。
APIキーは.envで集約管理しよう
MCPサーバーはとても便利でパワフルな開発支援ツールの1つです。しかしMCPサーバーのためにアプリケーションとは異なるファイルにAPIキーを追加で記述し、2重管理にするのはあまり好ましい状況ではありません。また、MCPサーバーの設定をチームで共有したい場合にも、APIキー漏洩リスクなどから、mcp.jsonにAPIキーを直接記述することはお勧めできません。
envFileを活用し、安全かつ効率的なチーム開発フローを実現しましょう。
開発ノートをもっと読む
技術的な学びや実践的な開発ノートをもっと探索してみませんか?
⭐ この記事への反応
はてなアカウントでスターを付けることができます
関連記事
Devinを日本語で使えるようにする方法
Devinが日本語対応されたというアナウンスがXに流れてきましたので、早速設定しました。 SettingsのPerferencesから変更 言語設定は、Settingsから行います。「Preferences」を選ぶと、D […]
Claude Fable 5でサイトのレビューをしてみた
Claude Fable 5 が 6/23 以降はサブスクとは別課金になるという話が出ていたので、どう使うか少し考えました。 毎日のコーディングタスクよりも、ロードマップや方向性を決めるような「大きめの判断を要するタスク […]
Fable 5 を動かしたので OTel のデータを Grafanaで可視化してみた話
Claude Fable 5 が出てきたので、Claude Code の OpenTelemetry(OTel)を Grafana Cloud に流して眺めていた自分のダッシュボードを開いてみました。4 モデルが並ぶ景色 […]
Claude CodeとClaude Projectを利用してサイトの改善計画をたてる
ウェブサイトの定期的な改善をする上で、いろんな視点でのレビューや検査があるのが理想です。今回は新しい切り口としてClaudeを使ったレビューと計画策定を試してみました。 Claude Codeを利用したサイトレビュー C […]
