バックログMCPサーバー
Backlog APIと連携するためのモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、Claude Desktop、Cline、CursorなどのAIエージェントを通じて、Backlog内のプロジェクト、課題、Wikiページなどを管理するためのツールを提供します。
特徴
プロジェクト管理(作成、読み取り、更新、削除)
問題追跡(作成、更新、削除、リスト)
Wikiページ管理
Gitリポジトリ管理
プルリクエスト管理(作成、更新、リスト、コメント)
通知管理
ウォッチリスト管理
最適化されたレスポンスのためのGraphQLスタイルのフィールド選択
大規模なレスポンスのトークン制限
強化されたエラー処理
さらにBacklog APIとの統合
Related MCP server: API Tester MCP Server
要件
ドッカー
APIアクセス可能なBacklogアカウント
BacklogアカウントのAPIキー
インストール
オプション1: Docker経由でインストールする
この MCP サーバーを使用する最も簡単な方法は、Claude Desktop または Cline の MCP 構成を使用することです。
Claude DesktopまたはClineの設定を開く
MCP構成セクションに移動する
次の構成を追加します。
{
"mcpServers": {
"backlog": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "BACKLOG_DOMAIN",
"-e", "BACKLOG_API_KEY",
"ghcr.io/nulab/backlog-mcp-server"
],
"env": {
"BACKLOG_DOMAIN": "your-domain.backlog.com",
"BACKLOG_API_KEY": "your-api-key"
}
}
}
}your-domain.backlog.comを Backlog ドメインに置き換え、 your-api-key Backlog API キーに置き換えます。
高度な設定オプション
これは実験的なアプローチであり、コンテキストウィンドウのサイズを縮小する標準的な方法ではありません。このMCPをAIエージェントで使用できない場合は、以下の設定を調整してみてください。サーバーの動作をカスタマイズするためのオプションを追加することもできます。
{
"mcpServers": {
"backlog": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "BACKLOG_DOMAIN",
"-e", "BACKLOG_API_KEY",
"-e", "MAX_TOKENS",
"-e", "OPTIMIZE_RESPONSE",
"ghcr.io/nulab/backlog-mcp-server"
],
"env": {
"BACKLOG_DOMAIN": "your-domain.backlog.com",
"BACKLOG_API_KEY": "your-api-key",
"MAX_TOKENS": "10000",
"OPTIMIZE_RESPONSE": "true"
}
}
}
}MAX_TOKENS: レスポンスで許可されるトークンの最大数(デフォルト: 50000)OPTIMIZE_RESPONSE: レスポンスサイズを最適化するためにGraphQLスタイルのフィールド選択を有効にする(デフォルト:false)
Dockerイメージを最新の状態に保つ
デフォルトでは、Dockerはローカルにキャッシュされたイメージ(既にプルされている場合)を使用します。ghcr.io ghcr.io/nulab/backlog-mcp-server backlog-mcp-server の最新バージョンを常に使用するには、以下のいずれかの方法を検討してください。
オプション 1: --pull always使用する (推奨)
Docker 20.10 以降を使用している場合は、 args配列を変更して--pull alwaysフラグを含めることができます。
{
"mcpServers": {
"backlog": {
"command": "docker",
"args": [
"run",
"--pull", "always",
"-i",
"--rm",
"-e", "BACKLOG_DOMAIN",
"-e", "BACKLOG_API_KEY",
"ghcr.io/nulab/backlog-mcp-server"
],
"env": {
"BACKLOG_DOMAIN": "your-domain.backlog.com",
"BACKLOG_API_KEY": "your-api-key"
}
}
}
}これにより、Docker は実行前に常に GitHub Container Registry から最新のイメージをプルするようになります。
オプション2: 最新のイメージを手動で取得する
お使いの Docker バージョンが --pull always をサポートしていない場合は、サーバーを実行する前に最新のイメージを手動でプルできます。
docker pull ghcr.io/nulab/backlog-mcp-server:latestオプション2: 手動インストール
リポジトリをクローンします。
git clone https://github.com/nulab/backlog-mcp-server.git cd backlog-mcp-server依存関係をインストールします:
npm installプロジェクトをビルドします。
npm run buildMCPとして使用するJSONを設定します
{
"mcpServers": {
"backlog": {
"command": "node",
"args": [
"your-repository-location/build/index.js"
],
"env": {
"BACKLOG_DOMAIN": "your-domain.backlog.com",
"BACKLOG_API_KEY": "your-api-key"
}
}
}
}利用可能なツール
サーバーは、Backlog と対話するための次のツールを提供します。
宇宙ツール
ツール名 | 説明 |
| バックログスペースに関する情報を返します |
| Backlogスペース内のユーザーのリストを返します |
| 認証されたユーザーに関する情報を返します |
| 優先順位のリストを返します |
| 問題解決のリストを返します |
| プロジェクトの問題タイプのリストを返します |
プロジェクトツール
ツール名 | 説明 |
| プロジェクトのリストを返します |
| 新しいプロジェクトを作成します |
| 特定のプロジェクトに関する情報を返します |
| 既存のプロジェクトを更新する |
| プロジェクトを削除します |
| プロジェクトのカスタムフィールドのリストを返します |
問題ツール
ツール名 | 説明 |
| 特定の問題に関する情報を返します |
| 問題のリストを返します |
| 問題の数を返す |
| 指定されたプロジェクトに新しい問題を作成します |
| 既存の問題を更新します |
| 問題を削除します |
コメントツール
ツール名 | 説明 |
| 問題に対するコメントのリストを返します |
| 問題にコメントを追加する |
ウィキツール
ツール名 | 説明 |
| Wikiページのリストを返します |
| プロジェクト内のWikiページの数を返します |
| 特定のWikiページに関する情報を返します |
| 新しいWikiページを作成します |
カテゴリツール
ツール名 | 説明 |
| プロジェクトのカテゴリのリストを返します |
通知ツール
ツール名 | 説明 |
| 通知のリストを返します |
| 通知の数を返します |
| 未読通知数をリセット |
| 通知を既読にする |
Gitリポジトリツール
ツール名 | 説明 |
| プロジェクトのGitリポジトリのリストを返します |
| 特定のGitリポジトリに関する情報を返します |
プルリクエストツール
ツール名 | 説明 |
| リポジトリのプルリクエストのリストを返します |
| リポジトリのプルリクエストの数を返します |
| 特定のプルリクエストに関する情報を返します |
| 新しいプルリクエストを作成する |
| 既存のプルリクエストを更新する |
| プルリクエストのコメントのリストを返します |
| プルリクエストにコメントを追加する |
| プルリクエストのコメントを更新する |
監視ツール
ツール名 | 説明 |
| ユーザーの監視対象アイテムのリストを返します |
| ユーザーのウォッチアイテムの数を返します |
使用例
AIエージェントでMCPサーバーを設定すると、会話の中でツールを直接使用できるようになります。以下に例をいくつか示します。
プロジェクトの一覧
Could you list all my Backlog projects?新しい問題の作成
Create a new bug issue in the PROJECT-KEY project with high priority titled "Fix login page error"プロジェクトの詳細を取得する
Show me the details of the PROJECT-KEY projectGitリポジトリの操作
List all Git repositories in the PROJECT-KEY projectプルリクエストの管理
Show me all open pull requests in the repository "repo-name" of PROJECT-KEY projectCreate a new pull request from branch "feature/new-feature" to "main" in the repository "repo-name" of PROJECT-KEY projectアイテムの監視
Show me all items I'm watching フィールド選択の使用
OPTIMIZE_RESPONSEオプションを有効にすると、GraphQL スタイルの構文を使用して取得するフィールドを指定できます。
Show me the details of the PROJECT-KEY project, but only include the name, key, and description fieldsAI はフィールド選択を使用して応答を最適化します。
get_project(projectIdOrKey: "PROJECT-KEY", fields: "{ name key description }")これにより、特に大きなオブジェクトの場合、応答サイズと処理時間が削減されます。
高度な機能
レスポンスの最適化
フィールド選択
OPTIMIZE_RESPONSE=trueで有効にすると、GraphQL スタイルの構文を使用して特定のフィールドを選択できます。
{
id
name
description
users {
id
name
}
}これにより、次のことが可能になります。
必要なフィールドのみをリクエストすることでレスポンスのサイズを削減
特定のデータポイントに焦点を当てる
大規模なレスポンスのパフォーマンスを向上
トークン制限
トークン制限を超えないように、大きな応答は自動的に制限されます。
デフォルトの制限: 50,000トークン
MAX_TOKENS環境変数で設定可能制限を超えた応答はメッセージとともに切り捨てられます
i18n / 説明の上書き
ホームディレクトリに.backlog-mcp-serverrc.jsonファイルを作成することで、ツールの説明を上書きできます。
ファイルには、ツール名をキーとして、新しい説明を値として持つ JSON オブジェクトが含まれている必要があります。
例えば:
{
"TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "An alternative description",
"TOOL_CREATE_PROJECT_DESCRIPTION": "Create a new project in Backlog"
}サーバーが起動すると、次の優先順位に基づいて各ツールの最終的な説明が決定されます。
環境変数(例:
BACKLOG_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION).backlog-mcp-serverrc.jsonのエントリ - サポートされている構成ファイル形式: .json、.yaml、.yml組み込みフォールバック値(英語)
サンプル設定:
{
"mcpServers": {
"backlog": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "BACKLOG_DOMAIN",
"-e", "BACKLOG_API_KEY",
"-v", "/yourcurrentdir/.backlog-mcp-serverrc.json:/root/.backlog-mcp-serverrc.json:ro",
"ghcr.io/nulab/backlog-mcp-server"
],
"env": {
"BACKLOG_DOMAIN": "your-domain.backlog.com",
"BACKLOG_API_KEY": "your-api-key"
}
}
}
}現在の翻訳をエクスポートする
--export-translations フラグを付けてバイナリを実行すると、現在のデフォルトの翻訳 (オーバーライドを含む) をエクスポートできます。
これにより、行ったカスタマイズも含め、すべてのツールの説明が stdout に出力されます。
例:
docker run -i --rm ghcr.io/nulab/backlog-mcp-server node build/index.js --export-translationsまたは
npx github:nulab/backlog-mcp-server --export-translations日本語翻訳テンプレートの使用
日本語の設定ファイルのサンプルは次の場所に提供されています。
translationConfig/.backlog-mcp-serverrc.json.exampleこれを使用するには、.backlog-mcp-serverrc.json としてホーム ディレクトリにコピーします。
その後、必要に応じてファイルを編集して説明をカスタマイズできます。
環境変数の使用
あるいは、環境変数を使用してツールの説明を上書きすることもできます。
環境変数名はツール キーに基づいており、先頭に BACKLOG_MCP_ が付き、大文字で記述されます。
例: TOOL_ADD_ISSUE_COMMENT_DESCRIPTION をオーバーライドするには:
{
"mcpServers": {
"backlog": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "BACKLOG_DOMAIN",
"-e", "BACKLOG_API_KEY",
"-e", "BACKLOG_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION"
"ghcr.io/nulab/backlog-mcp-server"
],
"env": {
"BACKLOG_DOMAIN": "your-domain.backlog.com",
"BACKLOG_API_KEY": "your-api-key",
"BACKLOG_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "An alternative description"
}
}
}
}サーバーは起動時に設定ファイルを同期的に読み込みます。
環境変数は常に設定ファイルよりも優先されます。
発達
テストの実行
npm test新しいツールの追加
既存のツールのパターンに従って
src/tools/に新しいファイルを作成します。対応するテストファイルを作成する
新しいツールを
src/tools/tools.tsに追加する変更をビルドしてテストする
コマンドラインオプション
サーバーはいくつかのコマンドライン オプションをサポートしています。
--export-translations: すべての翻訳キーと値をエクスポートする--optimize-response: GraphQLスタイルのフィールド選択を有効にする--max-tokens=NUMBER: レスポンスの最大トークン制限を設定する
例:
node build/index.js --optimize-response --max-tokens=100000ライセンス
このプロジェクトはMIT ライセンスに基づいてライセンスされています。
注意: このツールは、MIT ライセンスの下で**、いかなる保証や公式サポートもなしに**提供されます。
内容をご確認の上、ご自身のニーズに適しているかどうかを判断した上で、自己責任でご使用ください。
何か問題が発生した場合は、 GitHub Issuesからご報告ください。