3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude CodeからMCPを利用する、Claude CodeをMCPとして利用する

Posted at

みなさんこんにちは!

ここ2週間くらいはXでもずーっとClaude Codeの話題で盛り上がっていて、AI開発の時代が本格化したなーと思っています。

雑な指示でもとても上手に実装してくれますが、外部ツールとMCP連携できたらもっと便利になります。

今回はClaude CodeからMCPを利用する方法、というよりもそのための設定について書いていきます。

MCP(Model Context Protocol)の技術概要

MCPは、Large Language Modelが外部システムと標準化されたプロトコルで通信するためのフレームワークです。

  • GitHub API連携による自動Issue/PR管理
  • ファイルシステムへの直接アクセス
  • データベースへクエリ実行
  • 外部API統合

などなど、便利な外部ツールを自然言語で利用できるようになります。

設定ファイルの配置先

Claude DesktopとClaude Codeでは設定ファイルの場所が異なります。
(macOSを利用しているので、その前提で説明していきます。)

Claude Desktop(GUI版)

  • ~/Library/Application Support/Claude/claude_desktop_config.json

Claude Code(CLI版)

  • ~/.claude.json

GitHub MCPサーバーの設定手順

GitHubと連携しておくととても便利なので、GitHubのローカルMCPサーバーと接続するための設定について書いていきます。

詳しいこと、細かいことは公式の設定を参照されるとよいと思います。
(fine-grained tokensの設定とか、Dockerのインストールとか)

GitHub API アクセス用のトークンを作成

  1. GitHub Settings → Developer settings → Personal access tokens
  2. "Generate new token (Fine-grained tokens)"を選択
  3. 必要な権限と利用可能リポジトリを設定
    • Contents、Issue、Metadata、Pull Requestsあたりが許可されていれば便利です
  4. トークンを取得・保存

MCPサーバー設定

~/.claude.jsonにMCPサーバー設定を追加します。

${GITHUB_PERSONAL_ACCESS_TOKEN}~/.zshrcに保存していてもいいですし、べたっと貼り付けておいてもまぁよいと思います。

もしかするとJSONのルートにmcpServersセクションがない場合もあるかもしれないので、その場合は追加しましょう。

{
  ...
  "tipsHistory": {
    ...
  },
  ...
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
      }
    }
  },
  "projects": {
    ...
  }
}

複数アカウント対応

組織アカウントと個人アカウントを分離した設定例です。
トークンが別のものになっていればよいだけです。

{
  "mcpServers": {
    "github_a": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_WORK_TOKEN}"
      }
    },
    "github_b": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_TOKEN}"
      }
    }
  }
}

この設定により、異なるGitHubアカウントに対する操作を独立して実行可能になります!

動作確認

設定後の検証:

❯ claude mcp list
github_a: docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
github_b: docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server

実際の利用例:

❯ claude "〇〇のリポジトリで最新のIssueを3つ表示"

これでClaude CodeからMCPサーバーを利用できるようになります。

Claude CodeをMCPサーバーとして利用する

書いている途中でこんな記事を見つけました。

上で書いていたのでは、Claude CodeからMCPを利用する方法ですが、Claude Code自体をMCPサーバーとして起動してClaude Desktopなどから利用する方法もあるみたいです。

Claude Desktopの設定(~/Library/Application Support/Claude/claude_desktop_config.json)にClaude Code自体をMCPサーバーとして動作させる設定を書いてみましょう。

{
  "mcpServers": {
	"claude_code": {
		"command": "/usr/local/bin/claude",
		"args": ["mcp", "serve"],
		"env": {}
	}   
  }
}

Claude Desktopから触ってみると、こんな感じでClaude Codeが実行できてそうでした!

image.png

(japan-demというのは最近作ったツールです。)

この設定により、Claude間の相互通信が可能になりました!

まとめ

Claude CodeとMCPサーバーの統合により開発がさらに楽になりそうですね!

皆さんも使ってみてください!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?