メインコンテンツまでスキップ

Cursorで環境パラメータを使用してMCPサーバーを設定する方法

CursorでModel Context Protocol(MCP)サーバーを環境パラメータで設定することで、機密情報を安全に渡し、サーバーの動作をカスタマイズできます。このガイドでは、MCPサーバーの環境変数の設定と管理に関する詳細な手順を提供します。

MCPサーバー環境設定の概要

Model Context Protocol(MCP)サーバーは、追加のツールとリソースを提供することでCursorのAI機能を拡張します。環境パラメータを使用すると以下のことが可能になります:

  • APIキーや認証トークンを安全に渡す
  • コードを変更せずにサーバーの動作を設定する
  • 異なる環境(開発、ステージング、本番)をセットアップする
  • デプロイメントコンテキストに基づいてサーバー機能をカスタマイズする

環境パラメータを使用する理由

環境パラメータにはいくつかの利点があります:

  1. セキュリティ:機密情報をコードベースから分離できる
  2. 柔軟性:コードを変更せずに設定を変更できる
  3. 移植性:同じサーバーを異なる環境で実行できる
  4. 関心の分離:設定と実装を分けて管理できる

MCPサーバー設定の理解

環境パラメータを追加する前に、CursorにおけるMCPサーバー設定の基本構造を理解することが重要です。

MCP設定ファイルの構造

MCPサーバーは以下の構造を持つJSONファイルで設定されます:

{
"mcpServers": {
"server-name": {
"command": "node",
"args": ["/path/to/server.js"],
"env": {
"KEY1": "value1",
"KEY2": "value2"
},
"disabled": false,
"autoApprove": ["tool1", "tool2"]
}
}
}

主要なコンポーネント:

  • server-name:MCPサーバーの一意の識別子
  • command:サーバーを実行するコマンド(例:nodepython
  • args:コマンドに渡される引数
  • env:サーバープロセスに渡される環境変数
  • disabled:サーバーが無効かどうか
  • autoApprove:明示的な承認を必要としないツールのリスト

ステップバイステップ設定ガイド

1. MCP設定ファイルの場所を特定する

MCP設定ファイルの場所はオペレーティングシステムによって異なります:

Windows

%APPDATA%\Code\User\globalStorage\tencent-cloud.coding-copilot\settings\Craft_mcp_settings.json

macOS

~/Library/Application Support/Code/User/globalStorage/tencent-cloud.coding-copilot/settings/Craft_mcp_settings.json

Linux

~/.config/Code/User/globalStorage/tencent-cloud.coding-copilot/settings/Craft_mcp_settings.json

2. 設定ファイルを編集する

  1. お好みのテキストエディタで設定ファイルを開く
  2. ファイルが存在しないか空の場合は、以下の構造で作成する:
{
"mcpServers": {}
}
  1. サーバー設定を追加または変更する:
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["/path/to/my-server.js"],
"env": {
"API_KEY": "your-api-key-here",
"DEBUG": "true",
"PORT": "3000"
},
"disabled": false
}
}
}

3. 環境パラメータを追加する

MCPサーバーに環境パラメータを追加するには:

  1. サーバーが必要とする環境変数を特定する
  2. サーバー設定のenvオブジェクトに追加する
  3. 設定ファイルを保存する

複数の環境変数を持つ例:

"env": {
"OPENAI_API_KEY": "sk-abcdef123456",
"SERVER_PORT": "3000",
"LOG_LEVEL": "info",
"CACHE_ENABLED": "true",
"MAX_TOKENS": "4096",
"MODEL_NAME": "gpt-4",
"TIMEOUT_MS": "30000"
}

4. MCPサーバーでの環境変数の使用

MCPサーバーコードでは、これらの環境変数にアクセスできます:

JavaScript/Node.js

const apiKey = process.env.API_KEY;
const debug = process.env.DEBUG === 'true';
const port = parseInt(process.env.PORT || '3000', 10);

console.log(`Starting server with API key ${apiKey} on port ${port}`);
if (debug) {
console.log('Debug mode enabled');
}

Python

import os

api_key = os.environ.get('API_KEY')
debug = os.environ.get('DEBUG') == 'true'
port = int(os.environ.get('PORT', '3000'))

print(f"Starting server with API key {api_key} on port {port}")
if debug:
print("Debug mode enabled")

高度な設定テクニック

環境ファイルの使用

より複雑な設定では、環境ファイルを使用できます:

  1. .envファイルを作成する:
API_KEY=your-api-key-here
DEBUG=true
PORT=3000
  1. MCPサーバー設定を更新する:
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["/path/to/my-server.js"],
"env": {
"ENV_FILE": "/path/to/.env"
}
}
}
}
  1. サーバーコードで環境ファイルを読み込む:

JavaScript/Node.js(dotenvを使用):

require('dotenv').config({ path: process.env.ENV_FILE });

// これで変数にアクセスできます
const apiKey = process.env.API_KEY;

Python(python-dotenvを使用):

import os
from dotenv import load_dotenv

load_dotenv(os.environ.get('ENV_FILE'))

# これで変数にアクセスできます
api_key = os.environ.get('API_KEY')

環境変数の展開

設定内で他の環境変数を参照できます:

"env": {
"BASE_URL": "https://api.example.com",
"API_ENDPOINT": "${BASE_URL}/v1/data",
"HOME_DIR": "${HOME}/projects"
}

システム環境変数の使用

設定でシステム環境変数を参照できます:

"env": {
"USER_HOME": "${HOME}",
"SYSTEM_TEMP": "${TEMP}",
"CURRENT_USER": "${USER}"
}

セキュリティのベストプラクティス

環境パラメータ、特にAPIキーなどの機密情報を扱う際は、以下のセキュリティのベストプラクティスに従ってください:

1. 機密情報をコミットしない

  • .gitignoreを使用して環境ファイルを除外する
  • 実際のAPIキーを含む設定ファイルをコミットしない
  • コミットする例ではプレースホルダー値を使用する

2. 機密値の暗号化

  • 機密性の高い環境変数の暗号化を検討する
  • 可能な場合は安全なキー管理システムを使用する

3. 設定ファイルへのアクセスを制限する

  • 適切なファイル権限を設定する
  • 設定ファイルを閲覧・編集できる人を制限する

4. 定期的にシークレットをローテーションする

  • APIキーやトークンを定期的に変更する
  • シークレットが変更されたら設定ファイルを更新する

5. 環境変数を検証する

サーバーコードで、環境変数を使用する前に検証します:

function validateEnv() {
const requiredVars = ['API_KEY', 'SERVER_PORT'];
const missing = requiredVars.filter(varName => !process.env[varName]);

if (missing.length > 0) {
throw new Error(`Missing required environment variables: ${missing.join(', ')}`);
}
}

validateEnv();

一般的な問題のトラブルシューティング

環境変数が利用できない

問題:MCP設定で構成された環境変数がサーバーで利用できない。

解決策

  • 設定ファイルの構文を確認する
  • サーバーが正しく起動されていることを確認する
  • 設定変更後にCursorを再起動する
  • 環境関連のエラーについてサーバーログを確認する

設定ファイルが見つからない

問題:CursorがMCP設定ファイルを見つけられない。

解決策

  • ファイルパスがオペレーティングシステムに対して正しいことを確認する
  • ディレクトリ構造が存在しない場合は作成する
  • ファイル権限を確認する
  • ファイル作成後にCursorを再起動する

無効なJSON形式

問題:設定ファイルにJSON構文エラーがある。

解決策

  • JSONバリデーターを使用してJSONを検証する
  • カンマ、括弧、引用符の欠落を確認する
  • すべてのプロパティ名がダブルクォートで囲まれていることを確認する
  • 末尾のカンマを削除する

サーバーが起動時にクラッシュする

問題:MCPサーバーが起動直後にクラッシュする。

解決策

  • エラーメッセージについてサーバーログを確認する
  • 必要なすべての環境変数が提供されていることを確認する
  • 環境変数の値が正しい形式であることを確認する
  • ファイル参照のパスの問題を確認する

一般的なユースケースの例

1. OpenAI API統合

{
"mcpServers": {
"openai-tools": {
"command": "node",
"args": ["/path/to/openai-server.js"],
"env": {
"OPENAI_API_KEY": "sk-your-key-here",
"MODEL": "gpt-4",
"MAX_TOKENS": "8192",
"TEMPERATURE": "0.7"
}
}
}
}

2. データベース接続

{
"mcpServers": {
"db-tools": {
"command": "python",
"args": ["/path/to/db-server.py"],
"env": {
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_NAME": "mydb",
"DB_USER": "user",
"DB_PASSWORD": "password",
"CONNECTION_POOL_SIZE": "10"
}
}
}
}

3. 開発環境と本番環境の設定

{
"mcpServers": {
"api-tools": {
"command": "node",
"args": ["/path/to/api-server.js"],
"env": {
"NODE_ENV": "development",
"API_URL": "http://localhost:8080/api",
"CACHE_ENABLED": "false",
"LOG_LEVEL": "debug"
}
}
}
}

結論

Cursorで環境パラメータを使用してMCPサーバーを設定することで、サーバーの動作をカスタマイズし、機密情報を管理するための柔軟で安全な方法が提供されます。このガイドで概説されたステップとベストプラクティスに従うことで、MCPサーバーの環境変数を効果的に設定および管理できます。

外部APIとの統合、データベースへの接続、単純なサーバー動作のカスタマイズなど、環境パラメータは設定とコードの間にクリーンな分離を提供し、セキュリティと保守性を向上させます。

追加リソース