BacklogのMCPサーバーでタスクのサマリを見てみる

記事タイトルとURLをコピーする

こんにちは。
アプリケーションサービス部 DevOps担当の兼安です。
本記事を書いているのは11月下旬です。
私が住んでいる広島市内ではイルミネーションが始まりました。

さて、みなさん、Backlogは使われていますか?
私の担当するプロジェクトでは、タスクをBacklogで管理することが多いです。
今回は、BacklogのMCPサーバーを利用して、タスクのサマリを取得する方法をご紹介します。

はじめに

BacklogのMCPサーバーは、Backlogの開発元であるヌーラボ社様が提供しているBacklogの公式MCPサーバーです。
ご提供に感謝いたします。

nulab.com

本記事では、GitHub Copilot Agent ModeとKiro CLIでこのBacklogのMCPサーバーを利用してみます。

本記事のターゲット

本記事は、Backlogや生成AIとMCPサーバーの基本的な知識があることを前提としています。

本記事中の用語解説

スプリント

スプリントとは、スクラム開発における一定期間の作業単位のことを指します。
例えば、2週間で1スプリントと設定し、その期間内に完了すべきタスクを計画・実行します。
本記事においては、完了すべきタスクをBacklogの課題で表現していると考えてください。

MCPサーバー

MCPサーバーとは、生成AIとクライアントの間に立ち、外部サービスへのアクセスを仲介するサーバーのことです。
生成AIの知識や能力を補完し、作業を効率よく実行するために使用されます。

MCPサーバーにはツールが登録されており、生成AIはこれらのツールを利用して外部サービスと連携します。
MCPサーバーのツールの数は、MCPサーバーごとに異なります。
今回述べるBacklogのMCPサーバーには、課題を取得する・課題を追加する・課題を更新するのように、操作ごとに別々のツールが登録されています。

GitHub Copilot Agent Mode

GitHub Copilot Agent Modeとは、GitHubが提供するAIエージェントツールです。
VSCodeなどの統合開発環境(IDE)で利用でき、コードの作成などを行います。

Kiro CLI

Kiro CLIは、AWSの提供するコマンドラインインターフェース(CLI)で操作できるAIエージェントツールです。
Kiro CLIは最近Amazon Q Developer CLIからアップデートされたツールです。
詳細は、以下の記事をご参照ください。

blog.serverworks.co.jp

AIにBacklogを操作させるのに気をつけること

私は、MCPサーバーを利用してBacklogを操作する際には、以下の点に注意が必要と考えます。

  • 意図しない編集を行わない
  • 編集する場所を間違えない

後者は複数のプロジェクトを扱う場合に、特に注意が必要です。
例えば、プロジェクトAの情報をプロジェクトBの場所に投稿してしまうのは、SIer的には高い確率でインシデントです。

この点を意識して、設定作業を行ってみます。

BacklogのMCPサーバー設定

BacklogのMCPサーバー設定の仕方は、同ツールのGitHubリポジトリに記載されています。

github.com

今回はこの中からnpxコマンドを利用した設定方法を使用し、以下のようにまとめました。

"backlog": {
    "command": "npx",
    "args": [
        "backlog-mcp-server"
    ],
    "env": {
      "BACKLOG_DOMAIN": "{your-domain}.backlog.jp",
      "BACKLOG_API_KEY": "{your-api-key}",
      "ENABLE_TOOLSETS": "issue,wiki",
      "PREFIX": "backlog_"
    }
}

{your-domain}の部分は、利用しているBacklogのURLから引用します。
{your-api-key}の部分は、以下のページを参考にBacklogのプロフィール画面でAPIキーを発行して取得します。

APIの設定 – Backlog ヘルプセンター

ENABLE_TOOLSETSの部分は、利用するツールの範囲を指定します。
BacklogのMCPサーバーは、設定で使用可能とするツールをツールセットという大きな単位で指定することができます。
今回はスプリントのサマリを取得するのが目的なので、課題(issue)とWiki(wiki)だけを指定しています。

PREFIXの部分は、ツール名の接頭辞を指定します。
例えば、課題の取得ツールはget_issueですが、接頭辞をbacklog_とすると、生成AIからはbacklog_get_issueとして認識されます。
実運用では多数のMCPサーバーを利用するため、接頭辞を設定してツール名の衝突を避けたり、ツールの所属を明確にしたりすることができるので便利な機能です。

この設定内容を設定ファイルに保存して使用します。
VSCodeのワークスペース単位で設定を行う場合、各AIエージェントツールにおける書き込み先は以下の通りです。

AIエージェントツール 書き込み先ファイル
GitHub Copilot Agent Mode .vscode/settings.json
Kiro CLI .kiro/settings/mcp.json

GitHub Copilot Agent Modeでの利用

GitHub Copilot Agent Modeで、BacklogのMCPサーバーを利用してみます。
.vscode/mcp.jsonを見てみると、BacklogのMCPサーバーの部分にStartがあるのでこれをクリックして起動します。
この時、23 toolsと表示されているのに着目してください。

GitHub Copilot Agent Mode 用のmcp.json

BacklogのMCPサーバーには本記事執筆時点で40以上のツールがありますが、数が下回っていることからENABLE_TOOLSETSで指定した、課題(Issue)とWikiに関するツールだけが利用可能になっていることがわかります。

Startをクリックすると、Runningになるので、この状態でGitHub Copilotのチャット欄を開きます。
Agentモードになっていることを確認した上で、工具のアイコンをクリックします。
すると、利用可能なツールの一覧が表示されるので、Backlogのツールが登録されていることを確認します。
この時、設定でプレフィックスを指定しているのでツール名はbacklog_で始まります。

工具のアイコンをクリックしてツール一覧を見る

BacklogのMCPサーバーが提供するツール一覧(プレフィックス付き)

あとはチャットを使って、タスクのサマリを取得するように指示します。

タスクのサマリを取得するように指示

無事サマリが取得できました。
プロジェクトを限定する場合は、プロジェクトキーを指定しながら指示することでプロジェクトのサマリが得られます。

サマリが取得できたので、今度は誤った編集の防止策を考えます。
AIエージェントはBacklogを操作する際に、操作に必要なツールの使用可否の承認を求めてきます。
したがって、課題の取得であっても、課題の編集であっても、最初からいきなり自動実行されるわけではありません。

編集時には使用可否の承認を求められる

VSCodeの設定、ワークスペース単位の設定であれば、.vscode/settings.jsonで、chat.tools.terminal.autoApproveの部分にツール名: falseとしておくと、明示的にツール実行時の自動承認を無効化できます。
例えば以下のように書くと、追加・更新・削除の各ツールの自動承認が無効化されます。
なお、この例はプレフィックスがbacklog_の場合の記述であることに注意してください。

  "chat.tools.terminal.autoApprove": {
      "backlog_add_": false,
      "backlog_update_": false,
      "backlog_delete_": false
  }

この設定は前方一致で評価されるため、backlog_add_とすると、backlog_add_issuebacklog_add_wikiなど、追加系のツールすべてが対象となります。
これをやりたいがために、プレフィックスを指定したとも言えます。

ただし、この設定は編集ができてしまうので、絶対的な安全策とはなり得ないことに注意してください。

Kiro CLIでの利用

Kiro CLIでの利用は、設定ファイルの場所が違うだけで、ほぼ同じです。
同じようにサマリを取得することができます。

Kiro CLIでも、誤った課題の編集の防止策を考えます。
Kiro CLIは、カスタムエージェントというものを作ることができ、カスタムエージェントの設定で使用できるツールとその自動承認の可否を制御できます。

docs.aws.amazon.com

こちらの記事は、Amazon Q Developer CLIにおけるカスタムエージェントの説明ですが、Kiro CLIでも同様です。
違いは、カスタムエージェントの設定ファイルができる場所が異なることのみです。
Kiro CLIでカスタムエージェントの設定をワークスペース内に作る場合は、.kiro/agents/{agent-name}.jsonとなります。
カスタムエージェントの設定ファイルで、toolsの部分に課題・Wikiの参照系ツールだけを登録することで、誤った編集につながるツールの利用を防止できます。

{
    "name": "{your-agent-name}",
    "description": "{your-agent-description}",
    "prompt": "You are {your-agent-name}, a specialized AI assistant designed to help with project management and development tasks. You have access to Backlog integration tools to manage issues and wiki content effectively.",
    "mcpServers": {
        "backlog": {
            "url": "",
            "headers": {},
            "oauthScopes": [
                "openid",
                "email",
                "profile",
                "offline_access"
            ],
            "command": "npx",
            "args": [
                "backlog-mcp-server"
            ],
            "env": {
                "ENABLE_TOOLSETS": "issue,wiki",
                "BACKLOG_DOMAIN": "{your-domain}.backlog.jp",
                "PREFIX": "backlog_",
                "BACKLOG_API_KEY": "{your-api-key}"
            },
            "timeout": 120000,
            "disabled": false,
            "disabledTools": []
        }
    },
    "tools": [
        "@backlog/backlog_get_issue",
        "@backlog/backlog_get_issues",
        "@backlog/backlog_count_issues",
        "@backlog/get_version_milestone_list",
        "@backlog/backlog_get_wiki_pages",
        "@backlog/backlog_get_wikis_count",
        "@backlog/backlog_get_wiki"
    ],
    "toolAliases": {},
    "allowedTools": [],
    "resources": [
        "file://AGENTS.md",
        "file://README.md"
    ],
    "hooks": {},
    "toolsSettings": {},
    "useLegacyMcpJson": false,
    "model": null
}

このカスタムエージェントを用いた場合、課題の編集系の指示を出すと、Kiro CLIはツールが存在しない旨を返答します。
ただし、この方法も以下のように抜道があり絶対的な安全策とはなり得ません。

  • カスタムエージェントを使わずに、デフォルトエージェントを使う
  • カスタムエージェントの設定ファイルを書き換える
  • ツールがなかったとしても、AIエージェントがHTTP APIを直接叩いてなんとかしようとする時がある

まとめ

BacklogのMCPサーバーを利用して、課題のサマリを取得する方法をご紹介しました。
非常に便利な反面、誤った編集を行うリスクを完全に排除することは難しいようです。
これは、MCPサーバーはあくまでAIエージェントに外部サービスへのアクセス手段を提供するものであり、AIエージェントの振る舞いを完全に制御するものではないためです。
このことを強く意識しながら、MCPサーバーを利用していこうと思います。

余談

BacklogのMCPサーバーを使う設定で、mcp.jsonにAPIキーをセットした状態でカスタムエージェントの設定ファイルを作ると、カスタムエージェントの設定ファイル.kiro/agents/{agent-name}.jsonにAPIキーが保存されてしまいます。
mcp.jsonだけでなく、.kiro/agents/{agent-name}.jsonもAPIキーが保存されるので、これらがGitにコミットされないようにご注意願います。
ここについては、回避策が見つかったらまた記事にしたいと思います。

兼安 聡(執筆記事の一覧)

アプリケーションサービス部 DS3課所属
2025 Japan AWS Top Engineers (AI/ML Data Engineer)
2025 Japan AWS All Certifications Engineers
2025 AWS Community Builders
Certified ScrumMaster
PMP
広島在住です。今日も明日も修行中です。