
Windows環境(WSL2)のDockerに立てたBacklogのMCPサーバーにClaude Desktopからアクセスする
データ事業本部の荒木です。
最近話題のMCPサーバーを試してみたいと思い、実務でもすぐ利用できそうなBacklogのMCPサーバーをさわってみました。
公式のDockerとClaudeの接続方法では私のローカル環境ではうまくいかなかったので、少し違う方法での方法となります。
環境
- Windows11
- WSL2(Ubuntu 20.04.6 LTS)
- Docker 27.2.0
- Claude
BacklogのMCPサーバーはDockerを使用することが前提となっているようです。
私のローカルPCはWindows環境でありDocker Desktopが使用できないため、DockerはWSL2環境で動かしています。
そのためclaudeからWSL2にコンテナを立ち上げて処理するような構成で実施しました。
ただ環境変数などがうまく設定できなかったので、あくまでお試しで実施するだけで想定です。
事前実施項目
以下は既に実施している想定です。
- WSL2環境構築
- WSL2内へのDockerインストール
- Claude Desktopのインストール
本題
WSL2のDocker起動
WSL2の環境では特に何もする必要はありませんが、Dockerを起動しておきます。
sudo service docker start
Backlog APIの発行
Backlogの個人設定からAPIキーを発行します。
作成されたAPIキーを後ほど使うのでコピーして保存しておきます。
Claude側の設定
Claude Desktopの「ファイル > 設定 > 開発者」を開きます。
「構成の編集」を選択すると、claude_desktop_config.json
が配置されたパスがエクスプローラーで開かれるので、こちらのファイルに以下の設定を追加します。
{
"mcpServers": {
"backlog": {
"command": "wsl",
"args": [
"docker",
"run",
"-i",
"--rm",
"-e", "BACKLOG_DOMAIN=<Backlogのドメイン>.backlog.jp",
"-e", "BACKLOG_API_KEY=<発行したBacklogのAPIキー>",
"ghcr.io/nulab/backlog-mcp-server"
]
}
}
}
公式のREADMEにある内容と異なるのはこちらです。
WSL2なしではDockerを実行できないローカル環境なため、command
がdockerだとエラーとなってしまいます。
そのためここをwslのコマンドに変更し、引数にdockerコマンドを追加しました。
これによりClaudeからWSL2環境内にコンテナを立ち上げることができます。
ただドメインやAPIキーなどを環境変数に設定したかったのですが、Claudeで設定した環境変数をWSL2で実行するコマンドでうまく渡すことができなく、環境変数を設定するとエラーとなってしまうので環境変数に直接値を入力する形となってます。
上記設定後にClaudeを再起動すると設定が反映され、ツールにBacklogが追加されます。
確認
ClaudeからBacklogのスペース情報を取得するように依頼してみます。
認証が求められるので許可します。
スペース情報が取得できました!
発生した問題について
文字数制限
実環境で試していたため、私が所属するBacklogプロジェクトが30個程あり「〇〇プロジェクトの課題情報を取得してください。」のように依頼してしまうと、全プロジェクトしプロジェクトIDを確認し、プロジェクトIDからプロジェクト情報を取得する流れになり、レスポンスの文字数が多くなってしまい、文字数超過のエラーが出てしまいました。
無料版を使っていることもありますが、本番環境のBacklogで課題数が膨大だと文字数制限の問題が出てきてしまうのかなと思いました。
Claudeをあまり使ったことが無かったので、何かいい解決方法がないのか調べてみようと思います。
文字数を減らす方法として、プロジェクトの名前だけでなくプロジェクトIDも一緒にプロンプトに入れてあげることで、プロジェクト一覧の取得処理を減らすことができ文字数削減ができました。
また課題情報などを取得すると数が多いと文字数超過になってしまいましたが、特定の項目が含まれる課題がどのくらいあるかなどの検索をしてもらうなどの処理は超過せずにできました。
これができればエラー内容を過去の課題から検索してもらって、解決していればその解決方法を教えてもらうなどができそうだなと思いました。
実務でも使えそうです。
Claude Desktopが落ちてしまった
「〇〇プロジェクト情報を取得してください。」と依頼すると以下のようにエラーとなってしまいました。
ログを確認するとMethod not found
とでていたので、プロンプトからどのツールを実行したらいいか判断できない場合このエラーになったのかなと勝手に想像してます。
「〇〇プロジェクト(プロジェクトID:〇〇)の情報を取得してください。」とするとプロジェクトIDからget_projectのツールで処理されました。
はっきりとした原因は不明です。
まとめ
以上がBacklog公式のMCPサーバーをWindows環境で実行する方法でした。
初めてMCPサーバーを試してみましたが、とても便利だと思いました。
なので実務でもどんどん使えるようにしていこうと思います。