mcpField
R
Redmine MCP Server

Redmine MCP Server

ローカル
github.com/yonaka15生産性7866 週間前に更新

Redmine MCP Server について

Redmine MCP Server は、Redmine REST API のチケットやプロジェクトの情報を LLM に提供する MCP サーバーです。AI アシスタントから Redmine の課題、プロジェクト、ユーザー、時間記録を照会または管理したい利用者を対象としています。

主な機能

  1. 01課題の検索、作成、更新、削除
  2. 02プロジェクトの照会、作成、アーカイブ、設定
  3. 03時間記録の登録と絞り込み
  4. 04課題と時間記録のカスタムフィールド対応
  5. 05管理者権限が必要なユーザー情報の照会

活用シーン

  1. 01AI アシスタントからステータスや担当者で Redmine の課題を検索
  2. 02MCP ツール経由で課題へのコメント追加やフィールド更新
  3. 03日付範囲を指定したプロジェクトの時間記録の確認

MCP 対応

本プロジェクトは MCP サーバーであり、Redmine REST API の操作を MCP クライアントから呼び出せるツールとして公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": [
"-y",
"/path/to/mcp-server-redmine"
],
"env": {
"REDMINE_HOST": "<REDMINE_HOST>",
"REDMINE_API_KEY": "<REDMINE_API_KEY>"
}
}
}
}
起動コマンドnpx -y /path/to/mcp-server-redmine
設定が必要な環境変数
REDMINE_HOST
REDMINE_API_KEYシークレット

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm/path/to/mcp-server-redmine

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Redmine MCP サーバー

smithery badge

Redmine 用の Model Context Protocol(MCP)サーバー実装です。Redmine の REST API と連携し、LLM にチケットやプロジェクトの情報を提供します。

Redmine Server MCP server

機能

Redmine REST API の安定したリソースに対応しています。

  • チケット(1.0~)
  • プロジェクト(1.0~)
  • ユーザー(1.1~)
  • 時間記録(1.1~)
ツール
チケット
  • チケットの検索
    • プロジェクト、ステータス、担当者などで絞り込み
    • キーワード検索
    • カスタムフィールドに対応
  • チケットの作成/更新
    • トラッカー、ステータス、優先度を設定
    • カスタムフィールドを設定
    • コメントを追加
  • チケットの削除
プロジェクト
  • プロジェクトの検索
    • アクティブ/アーカイブ済み/クローズ済みのステータスで絞り込み
    • キーワード検索
  • プロジェクトの詳細を取得
    • トラッカー、カテゴリの情報を含む
  • プロジェクトの作成/更新
    • モジュールとトラッカーを設定
    • メンバーの継承を設定
  • プロジェクトのアーカイブ/アーカイブ解除
  • プロジェクトの削除
時間記録
  • 時間記録の検索
    • プロジェクト、ユーザー、日付範囲で絞り込み
  • 時間記録の詳細を取得
  • 時間記録の作成/更新
    • プロジェクトまたはチケットに記録
    • 作業分類を指定
    • カスタムフィールドに対応
  • 時間記録の削除

Claude での使用

このサーバーを Claude で使用するには、次のように設定します。

{
  "mcp-server-redmine": {
    "command": "npx",
    "args": [
      "-y",
      "--prefix",
      "/path/to/mcp-server-redmine",
      "mcp-server-redmine"
    ],
    "env": {
      "REDMINE_HOST": "https://your-redmine.example.com",
      "REDMINE_API_KEY": "your-api-key-here"
    }
  }
}
設定オプション
  • command:npm パッケージを実行するコマンド
  • args:
    • -y:プロンプトに「yes」と自動で応答します
    • --prefix:インストール先ディレクトリを指定します
    • 最後の引数でパッケージ名を指定します
  • env:環境変数
    • REDMINE_HOST:Redmine サーバーの URL
    • REDMINE_API_KEY:Redmine API キー

セットアップ

API キーの取得
  1. Redmine の管理者設定で REST API を有効にします
  2. ユーザー設定ページから API キーを取得します
環境変数

次の環境変数を設定します。

  • REDMINE_API_KEY:Redmine のユーザー設定から取得した API キー
  • REDMINE_HOST:Redmine サーバーの URL(例:https://redmine.example.com)

テスト

単体テスト
# Run tests
npm test

データの安全性を確保するため、テストには GET 操作のみを含めています。

Inspector によるテスト

MCP Inspector を使用して機能を確認します。

MCP Inspector を使用して機能を確認します。

GUI モード
# Build
npm run build

# Set execute permission (important)
chmod +x dist/index.js

# Launch inspector
npx @modelcontextprotocol/inspector dist/index.js
CLI モード
CLI テストコマンド

CLI モードを使って Redmine MCP サーバーをテストする実用的な例を紹介します。

前提条件:

# Build the project
npm run build

# Set execute permission
chmod +x dist/index.js

# Set environment variables
export REDMINE_API_KEY=your-api-key-here
export REDMINE_HOST=http://localhost:3000  # or your Redmine server URL

基本的なテストコマンド:

  1. 利用可能なツールを一覧表示:

    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/list
    
  2. チケット機能をテスト:

    # List issues (with limit)
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name list_issues \
      --tool-arg limit=5
    
    # Get specific issue details
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name get_issue \
      --tool-arg id=1
    
    # Filter issues by project
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name list_issues \
      --tool-arg project_id=1 \
      --tool-arg limit=3
    
  3. プロジェクト機能をテスト:

    # List all projects
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name list_projects
    
    # Get specific project details
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name show_project \
      --tool-arg id=1
    
  4. ユーザー機能をテスト(管理者権限が必要):

    # List users
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name list_users
    
    # Get specific user details
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name show_user \
      --tool-arg id=1
    
  5. 時間記録機能をテスト:

    # List time entries
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name list_time_entries \
      --tool-arg limit=5
    
    # Get specific time entry details
    npx @modelcontextprotocol/inspector --cli \
      -e REDMINE_API_KEY=$REDMINE_API_KEY \
      -e REDMINE_HOST=$REDMINE_HOST \
      node dist/index.js \
      --method tools/call \
      --tool-name show_time_entry \
      --tool-arg id=1
    

高度なテスト:

# Filter issues by status
npx @modelcontextprotocol/inspector --cli \
  -e REDMINE_API_KEY=$REDMINE_API_KEY \
  -e REDMINE_HOST=$REDMINE_HOST \
  node dist/index.js \
  --method tools/call \
  --tool-name list_issues \
  --tool-arg status_id=1 \
  --tool-arg limit=5

# Search issues by keyword
npx @modelcontextprotocol/inspector --cli \
  -e REDMINE_API_KEY=$REDMINE_API_KEY \
  -e REDMINE_HOST=$REDMINE_HOST \
  node dist/index.js \
  --method tools/call \
  --tool-name list_issues \
  --tool-arg subject="bug" \
  --tool-arg limit=3

# Get time entries for specific project
npx @modelcontextprotocol/inspector --cli \
  -e REDMINE_API_KEY=$REDMINE_API_KEY \
  -e REDMINE_HOST=$REDMINE_HOST \
  node dist/index.js \
  --method tools/call \
  --tool-name list_time_entries \
  --tool-arg project_id=1 \
  --tool-arg limit=10

トラブルシューティング:

  • 接続の問題:Redmine サーバーが稼働しており、アクセス可能であることを確認します。

    curl -H "X-Redmine-API-Key: $REDMINE_API_KEY" \
         "$REDMINE_HOST/projects.json"
    
  • 権限エラー:一部の操作には管理者権限が必要です。Redmine で API キーの権限を確認してください。

  • 環境変数:環境変数が正しく設定されていることを確認します。

    echo $REDMINE_API_KEY
    echo $REDMINE_HOST
    
  • ビルドの問題:プロジェクトがビルドされ、権限が設定されていることを確認します。

    npm run build
    chmod +x dist/index.js
    ls -la dist/index.js
    

権限

一部の機能には管理者権限が必要です。

ユーザー関連の操作
  • list_users:管理者権限が必要
  • create_user:管理者権限が必要
  • update_user:管理者権限が必要
  • delete_user:管理者権限が必要

利用可能な情報は、ユーザーの権限レベルによって異なります。詳細については、Redmine API Documentation を参照してください。

開発

要件
  • Node.js 18 以降
  • npm 9 以降
ライブラリ
  • @modelcontextprotocol/sdk:MCP SDK
  • zod:スキーマ検証
  • typescript:型システム
ディレクトリ構成
.
├── src/
│   ├── tools/            # Tool definitions
│   │   ├── issues.ts
│   │   ├── projects.ts
│   │   ├── time_entries.ts
│   │   └── index.ts
│   ├── formatters/       # Formatters
│   │   ├── issues.ts
│   │   ├── projects.ts
│   │   ├── time_entries.ts
│   │   └── index.ts
│   ├── lib/              # Common libraries
│   │   ├── client.ts     # Redmine API client
│   │   ├── config.ts     # Configuration management
│   │   └── types.ts      # Type definitions
│   ├── handlers.ts       # Request handlers
│   └── index.ts          # Entry point
├── docs/
│   └── adr/              # Architecture Decision Records
├── package.json          # Project configuration
├── tsconfig.json         # TypeScript configuration
└── README.md             # Documentation
ビルド
# Install dependencies
npm install

# Build
npm run build

# Start development server
npm run dev
アーキテクチャ決定記録

主要な設計上の決定は docs/adr に記録されています。機能を追加または変更する際は、これらのドキュメントを参照してください。

ライセンス

MIT

関連プロジェクト

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。