Claude Code向けMCPサーバー
実用的なModel Context Protocol設定と、時間を浪費する落とし穴。
MCPによって、Claude Codeはコードを生成するだけでなく、リポジトリの読み取り、データベースへのクエリ、ブラウザーの操作、PRの作成もできるようになります。MCPの接続設定はゲートウェイとは独立しており、モデル呼び出しの送信先ではなく、利用できるツールを変更します。
実用的な.mcp.json
{
"mcpServers": {
"filesystem": {"command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "."]},
"git": {"command": "uvx", "args": ["mcp-server-git", "--repository", "."]},
"github": {"command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"],
"env": {"GITHUB_TOKEN": "..."}},
"fetch": {"command": "uvx", "args": ["mcp-server-fetch"]},
"playwright": {"command": "npx", "args": ["-y", "@playwright/mcp@latest"]}
}
}
リポジトリのルートに配置すると、Claude Codeが検出し、初回に信頼するかどうかの確認を求めます。
注意すべき落とし穴
- 信頼確認のプロンプトは意図された機能です。 Claude Codeは、プロジェクトごとに承認を受けるまで、そのプロジェクトのMCPサーバーを読み込みません。これはバグではなく、セキュリティ上の境界です。
- データベースサーバーには読み取り専用ロールを割り当ててください。 MCPサーバーはモデルが出力したSQLをそのまま実行します。読み取り専用ロールを使えば、モデルが誤って生成した
DROPを実行することが物理的に不可能になります。 - トークンの権限範囲を絞ってください。 GitHubでは、
repoおよびread:orgで十分です。全スコープを持つ従来型PATを渡さないでください。 - MCPの出力はコンテキストに含まれます。 200行の結果や取得したページ全体は、それ以降の各ターンで再送されます。エージェントを使うセッションの費用が高くなる主な原因は、大量のツール出力です。
まずはfilesystem、git、githubから始めてください。ブラウザーやデータベースのサーバーは、具体的なタスクで必要になったときだけ追加してください。読み込まれたサーバーは、それぞれのスキーマによって、すべてのリクエストで課金対象のトークン数を増やします。