# Qase MCP Server
Qaseのテスト管理プラットフォームと連携するためのModel Context Protocol (MCP) サーバーです。
テストケースの作成、取得、テスト実行の管理などの機能を提供します。
## セットアップ
### 前提条件
- Node.js v22.17.0
- Qase APIトークン
- TypeScript
### インストール
```bash
# パッケージのインストール
npm install
# ビルド
npm run build
```
### 環境設定
MCPの設定ファイル(`cline_mcp_settings.json`)に以下の設定を追加します:
```json
{
"mcpServers": {
"qase": {
"command": "node",
"args": ["path/to/qase-mcp-server/build/index.js"],
"env": {
"QASE_API_TOKEN": "your-api-token"
},
"disabled": false,
"autoApprove": []
}
}
}
```
## 利用可能なツール
### get_projects
プロジェクト一覧を取得します。
**入力パラメータ**: なし
**使用例**:
```json
{
"name": "get_projects"
}
```
### get_test_cases
指定したプロジェクトのテストケース一覧を取得します。
**入力パラメータ**:
- `project_code`: プロジェクトコード(必須)
- `suite_id`: スイートID(オプション)- 指定したスイートに属するテストケースのみを取得
**使用例**:
```json
{
"name": "get_test_cases",
"arguments": {
"project_code": "DEMO",
"suite_id": 123
}
}
```
### create_test_case
テストケースを作成します。
**入力パラメータ**:
- `project_code`: プロジェクトコード(必須)
- `title`: テストケースのタイトル(必須)
- `description`: テストケースの説明(オプション)
- `preconditions`: 前提条件(オプション)
- `postconditions`: 事後条件(オプション)
- `suite_id`: 所属するスイートのID(オプション)
- `steps`: テストステップ(オプション)
**使用例**:
```json
{
"name": "create_test_case",
"arguments": {
"project_code": "DEMO",
"title": "ログイン機能のテスト",
"description": "ユーザーログイン機能の動作確認",
"preconditions": "テストユーザーアカウントが作成済みであること",
"steps": [
{
"action": "ログインページにアクセス",
"expected_result": "ログインフォームが表示される"
}
]
}
}
```
### create_suite
テストスイートを作成します。
**入力パラメータ**:
- `project_code`: プロジェクトコード(必須)
- `title`: テストスイートのタイトル(必須)
- `description`: テストスイートの説明(オプション)
- `preconditions`: テストスイートの前提条件(オプション)
- `parent_id`: 親スイートのID(オプション)
**使用例**:
```json
{
"name": "create_suite",
"arguments": {
"project_code": "DEMO",
"title": "認証機能テストスイート",
"description": "認証に関連する全てのテストケース",
"preconditions": "テスト用のデータベースが初期化されていること"
}
}
```
### create_test_run
テスト実行を作成します。
**入力パラメータ**:
- `project_code`: プロジェクトコード(必須)
- `title`: テスト実行のタイトル(必須)
- `description`: テスト実行の説明(オプション)
- `cases`: テスト実行に含めるテストケースのID一覧(オプション)
**使用例**:
```json
{
"name": "create_test_run",
"arguments": {
"project_code": "DEMO",
"title": "リグレッションテスト実行",
"description": "v1.2.0リリース前の確認テスト",
"cases": [1, 2, 3]
}
}
```
### create_test_cases_in_bulk
複数のテストケースを一括で作成します。
**入力パラメータ**:
- `project_code`: プロジェクトコード(必須)
- `cases`: 作成するテストケースの配列(必須)
- `title`: テストケースのタイトル(必須)
- `description`: テストケースの説明(オプション)
- `steps`: テストケースの手順(オプション)
- `action`: 手順のアクション(必須)
- `suite_id`: 所属するスイートのID(オプション)
**使用例**:
```json
{
"name": "create_test_cases_in_bulk",
"arguments": {
"project_code": "DEMO",
"cases": [
{
"title": "ログイン成功パターン",
"description": "正しい認証情報での確認",
"steps": [
{
"action": "ログインページにアクセス"
},
{
"action": "正しいユーザー名とパスワードを入力"
}
],
"suite_id": 123
},
{
"title": "ログイン失敗パターン",
"description": "不正な認証情報での確認",
"suite_id": 123
}
]
}
}
```
### update_test_case
既存のテストケースを更新します。
**入力パラメータ**:
- `project_code`: プロジェクトコード(必須)
- `case_id`: テストケースのID(必須)
- `title`: テストケースの新しいタイトル(オプション)
- `description`: テストケースの新しい説明(オプション)
- `preconditions`: 前提条件(オプション)
- `postconditions`: 事後条件(オプション)
- `severity`: 重要度 (0-6)(オプション)
- `priority`: 優先度 (0-3)(オプション)
- `type`: テストタイプ(オプション)
- `layer`: テストレイヤー(オプション)
- `is_flaky`: 不安定なテストかどうか (0 or 1)(オプション)
- `suite_id`: 所属するスイートのID(オプション)
- `steps`: テストステップ(オプション)
- `action`: 実行するアクション(必須)
- `expected_result`: 期待される結果(オプション)
- `data`: テストデータ(オプション)
**使用例**:
```json
{
"name": "update_test_case",
"arguments": {
"project_code": "DEMO",
"case_id": 456,
"title": "更新されたログイン機能のテスト",
"description": "ユーザーログイン機能の詳細な動作確認",
"severity": 2,
"priority": 1,
"steps": [
{
"action": "ログインページにアクセスする",
"expected_result": "ログインフォームが表示される"
},
{
"action": "有効な認証情報を入力してログインボタンをクリック",
"expected_result": "ダッシュボードページにリダイレクトされる"
}
]
}
}
```
## エラーハンドリング
各ツールは以下のようなエラーを返す可能性があります:
- 認証エラー: APIトークンが無効または未設定
- パラメータエラー: 必須パラメータの不足や不正な値
- APIエラー: Qase APIからのエラーレスポンス
エラーメッセージには具体的な問題と対処方法が含まれます。
## 開発
```bash
# 開発モードで実行(ファイル変更の監視)
npm run dev
# テストの実行
npm test
```
## ライセンス
ISC