Claude Code MCP設定ガイド

Model Context Protocol(MCP)サーバーを追加してClaude Codeを拡張する手順。


MCPとは

Claude Codeに外部ツールを接続するプロトコル。データベース、API、ファイルシステムなどと連携可能。


手順

01. 設定ファイル場所確認

~/.claude/claude_desktop_config.json

なければ作成。

02. MCP設定を追記

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"]
    }
  }
}

03. Claude Code再起動

claude

04. 接続確認

Claude Code内で /mcp コマンドを実行。接続済みサーバーが表示される。

05. 完了


参考リンク


ここから先は、各種MCPサーバーの設定例と活用法を解説します。


Q&A - よく使うMCPサーバー

ファイルシステム

指定ディレクトリへのアクセスを許可:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
    }
  }
}

GitHub

リポジトリの操作:

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "ghp_xxxxx"
      }
    }
  }
}

PostgreSQL

データベース接続:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://user:pass@localhost/db"]
    }
  }
}

Q&A - 複数サーバー設定

同時に複数追加

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "ghp_xxxxx"
      }
    }
  }
}

Q&A - トラブル

サーバーが認識されない

1. JSON構文エラーがないか確認 2. パスが正しいか確認 3. Claude Codeを再起動

「Permission denied」

  • ファイルシステムサーバーの場合、指定パスのアクセス権を確認
  • 環境変数(トークン等)が正しく設定されているか確認

npxが遅い

ローカルにインストール:

npm install -g @modelcontextprotocol/server-filesystem

設定を変更:

{
  "mcpServers": {
    "filesystem": {
      "command": "mcp-server-filesystem",
      "args": ["/path/to/directory"]
    }
  }
}

Q&A - 自作MCPサーバー

基本構造

import { Server } from "@modelcontextprotocol/sdk/server/index.js";

const server = new Server({ name: "my-server", version: "1.0.0" });

// ツールを定義 server.setRequestHandler("tools/list", async () => ({ tools: [{ name: "my_tool", description: "My custom tool", inputSchema: { type: "object", properties: {} } }] }));

server.connect(process.stdin, process.stdout);


タグ: #ClaudeCode #MCP #拡張 #API連携 #開発ツール
← Claude Codeシリーズ一覧へ