6
0

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サーバーを設定する方法とDockerの挙動について

Last updated at Posted at 2025-12-03

はじめに

Claude Code で Slack の過去チャットを取得したいと思い、slack-explorer-mcp を導入することにしました。

しかし、実際に設定を始めてみると、
「MCP の設定ファイルをどこに書けばいいのか分からない」
「Docker コンテナがいつ起動して、いつ停止するのかが掴めない」
など、分からないことだらけ……。

試行錯誤を繰り返しながらなんとか設定を進めたので、同じように躓いている方の参考になるよう、この記事にまとめておきます。

なお、slack-explorer-mcp は、Slack User Token を利用して、Slack のメッセージやスレッドを取得することに特化した MCP サーバーです。

slack-explorer-mcpを選んだ背景などはこちらの記事で説明しています。↓

前提条件

  • Docker Desktopがインストールされていること
  • Claude Codeがインストールされていること
  • Slack User Token(xoxp-で始まるトークン)を取得済みであること

Slack User Tokenの取得方法については、slack-explorer-mcpの公式READMEを参照してください。

導入手順

この記事では、私が実際に試して動作した手順を記載しています。詳細な設定方法や最新の情報は公式READMEの日本語版を参照してください。

1. MCPサーバーの追加

以下のコマンドを実行して、slack-explorer-mcpをClaude Codeに追加します。

claude mcp add slack-explorer-mcp -- docker run -i --rm --pull always \
  -e SLACK_USER_TOKEN=xoxp-your-token-here \
  ghcr.io/shibayu36/slack-explorer-mcp:latest

コマンドの各部分の説明

私も最初は何をやっているのか全然わからなかったので、コマンドの各部分を調べてみました。

  • claude mcp add slack-explorer-mcp: slack-explorer-mcpという名前でMCPサーバーを追加
  • -s project: プロジェクトスコープで追加(プロジェクト内でのみ利用可能)。グローバルスコープで追加する場合は-s userを指定
  • --: Claude CLIのオプションとMCPサーバーのコマンドを分離する記号
  • docker run: Dockerコンテナを起動
  • -i: インタラクティブモード(標準入力を開いたまま)
  • --rm: コンテナ停止時に自動削除
  • --pull always: 常に最新イメージを取得
  • -e SLACK_USER_TOKEN=...: 環境変数としてSlack User Tokenを渡す
  • ghcr.io/shibayu36/slack-explorer-mcp:latest: GitHubコンテナレジストリから最新のイメージを使用

2. 設定ファイルの確認

コマンドを実行すると、プロジェクト直下の.mcp.jsonファイルに設定が自動的に追加されます。もし自動で追加されない場合は、手動で.mcp.jsonファイルを作成・編集してください。

{
  "mcpServers": {
    "slack-explorer-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--pull",
        "always",
        "-e",
        "SLACK_USER_TOKEN=xoxp-your-token-here",
        "ghcr.io/shibayu36/slack-explorer-mcp:latest"
      ]
    }
  }
}

この設定により、Claude CodeがDockerコンテナとしてslack-explorer-mcpを起動できるようになります。

.claude/settings.local.jsonファイルには、ツールの実行権限などが書かれます。たとえば、Claude Codeがslack-explorer-mcpのsearch_messagesget_user_profilesget_thread_repliesなどのツールを使用する際に許可を求められ、承認すると以下のように追加されていきます。

{
  "permissions": {
    "allow": [
      "mcp__slack-explorer-mcp__search_messages",
      "mcp__slack-explorer-mcp__get_user_profiles",
      "mcp__slack-explorer-mcp__get_thread_replies",
    ]
  },
  "enableAllProjectMcpServers": true,
  "enabledMcpjsonServers": [
    "slack-explorer-mcp"
  ]
}

MCP設定は.mcp.jsonに記載されます。

Dockerコンテナのライフサイクル

最初、Dockerコンテナがずっと起動しているのかと思っていたのですが、実際に動作確認してみると以下のような動作になっていました。

動作の流れ

「1. MCPサーバーの追加」の設定方法でslack-explorer-mcpに追加した場合、Dockerは以下のような流れで動作します。

実際に確認してみた結果

docker psコマンドで動作を確認できます。

実行中

docker ps
# slack-explorer-mcpのコンテナが表示される
# 複数のClaude Codeタスクを同時実行していると、複数のコンテナが起動している

タスク完了後

docker ps
# コンテナは停止・削除されており、表示されない

つまり、MCPサーバーは以下のライフサイクルで動作します。

  1. 起動: Claude Codeでslack-explorer-mcpを使用するツールを呼び出したとき、Dockerコンテナが起動
  2. 実行: Claude CodeとMCPサーバー間で通信が行われ、Slackからデータを取得
  3. 停止: Claude Codeのセッションが終了すると、--rmオプションによりDockerコンテナが自動的に停止・削除

この仕組みにより、システムリソースを効率的に使用できるようになっています。

Claude Code内で以下のコマンドを実行すると、登録されているMCPサーバーの一覧が確認できます。

claude mcp list

または、Claude Code内で以下のように実行することもできます。

/mcp

MCPサーバーの一覧確認

Claude Code内で以下のコマンドを実行すると、登録されているMCPサーバーの一覧が確認できます。

claude mcp list

または、Claude Code内で以下のように実行することもできます。

/mcp

トラブルシューティング

私が遭遇したトラブルと解決方法を記載しておきます。

設定を間違えた場合

MCPサーバーを削除するには、以下のコマンドを実行します。

claude mcp remove slack-explorer-mcp

削除後、正しい設定で再度claude mcp addコマンドを実行してください。

Dockerコンテナが残っている場合

通常、--rmオプションにより、コンテナは自動的に削除されます。もし手動で削除する必要がある場合は、以下を実行してください。

docker ps -a  # すべてのコンテナを表示
docker rm <container_id>  # 特定のコンテナを削除

使用例

実際にClaude Codeで以下のようなプロンプトを送ってみました。

generalチャンネルの内容を要約して!

slack-explorer-mcpを通じてSlackのメッセージを検索・取得し、結果をまとめて返してくれます。

まとめ

最初は設定に戸惑いましたが、正しく設定できればslack-explorer-mcpはとても便利なツールだなぁと思いました。Claude CodeからSlackの過去の議論を簡単に検索・分析できるようになります。

この記事が同じように困っている方の参考になれば幸いです。間違いや改善点があれば、コメントで教えていただけると助かります。

参考リンク

6
0
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
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?