Claude CodeでMCPを快適に使う設定術 --mcp-config

に公開

Claude CodeでMCP(Model Context Protocol)を使うとき、claude mcpコマンドで設定を管理できますが、変更には手間がかかります。

しかし、同じプロジェクト内でも作業内容に応じて手軽にMCP構成を切り替えられると便利です。
MCPサーバーは便利ですが追加しすぎるとContextを圧迫するためです。

https://zenn.dev/medley/articles/optimizing-claude-code-context-with-mcp-tool-audit

そこで--mcp-configオプションを使用してMCP構成を切り替えます。

--mcp-config オプションを使用する

--mcp-config オプションを使えば、起動時に読み込むMCP設定ファイルを指定できます。参照する設定ファイルを変えるだけで、軽量な構成と詳細な構成を使い分けできます。

設定ファイルを指定する

Claude Codeの起動時に--mcp-config オプションで、MCP設定ファイルを明示的に指定できます。

claude --mcp-config=/Users/yourname/.claude/.mcp.json

上の例では /Users/yourname/.claude/.mcp.json を指定しています。ファイルには以下のような内容を記述してください。

基本構成(.mcp.json)

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname"]
    }
  }
}

用途別の設定ファイルを作成する

例えば軽量な .mcp.json に加えて、開発作業で使用するMCPサーバーを追加した dev.mcp.json を用意します。

claude --mcp-config=/Users/yourname/.claude/dev.mcp.json

開発用(dev.mcp.json)

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname"]
    },
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    },
    "linear": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.linear.app/sse"]
    }
  }
}

こうして軽量な.mcp.jsonと開発用のdev.mcp.jsonを、作業内容に応じて使い分けられます。

もちろんclaudeコマンドをオプションなしで実行すればMCPサーバーを使用しない状態で起動できます。

aliasで快適に

一方で、毎回の呼び出し時に長いパスを指定するのは大変です。そこでaliasを使います。

~/.zshrc に以下を追加:

# 基本構成
alias c='claude --mcp-config=/Users/yourname/.claude/.mcp.json'

# 開発用
alias c-dev='claude --mcp-config=/Users/yourname/.claude/dev.mcp.json'

これでcと入力するだけで軽量なMCP構成、c-devで開発用MCP構成を起動できます。

プロジェクト固有のMCP設定

--mcp-configで共通設定を使いつつ、プロジェクト固有のMCPサーバーを追加することもできます。

プロジェクトルートに .mcp.json を配置すると、Claude Codeが自動的に読み込み、--mcp-configで指定した設定と併用します。

例: ~/projects/my-app/.mcp.json

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest"]
    }
  }
}

このプロジェクトでcを実行すると:

  • --mcp-configで指定したMCPサーバー
  • プロジェクト固有のMCPサーバー(playwright)

の両方が有効になります。特定のプロジェクトだけで必要なMCPサーバーを追加したい場合に便利です。

注意: 既存の claude mcp 設定について

--mcp-config に移行した後も、以前 claude mcp add で追加したMCP設定は各プロジェクトに残っています。同じ名前のMCPサーバーがある場合、意図しない設定が使われる可能性があります。

移行後は各プロジェクトで claude mcp list で確認し、不要なものは claude mcp remove <server-name> で削除することをおすすめします。

まとめ

  • --mcp-configで参照する設定ファイルを指定できる
  • 同じプロジェクトでも起動コマンドでMCP構成を切り替え可能
  • aliasでcc-devと使い分ければ快適
  • プロジェクト固有の.mcp.jsonと併用もできる

参考リンク

Discussion