Skip to main content
Glama

QA MCP Server

Model Context Protocol (MCP)を拡張したサーバーで、統合されたAI駆動QAプラットフォームになることを目指しています。

現在のステータス

フェーズ 1 — 基盤とQAインテリジェンス

完了

ステップ

機能

ステータス

1

プロジェクト基盤

完了

2

MCP サーバー + ヘルスチェック

完了

3

LLMプロバイダーの抽象化

完了

4

要件分析器

完了

5

テストケース生成器

完了

6

テストケースレビューアー

完了

7

エンドツーエンドのQAワークフロー

完了

フェーズ 2 — プロジェクトコンテキスト、永続化、バージョニング、移植性

ステップ

機能

ステータス

1

QAプロジェクトコンテキスト

完了

2

SQLite永続化

完了

3

QAスイートのバージョニング

完了

4

インポート / エクスポート

完了


1. ビジョン

長期的な目標は、再利用可能なQA MCPプラットフォームを構築し、MCP互換のAIクライアントにQA機能を公開することです。

MCP Client / AI Assistant
          |
          v
      QA MCP Server
          |
   +------+------+------+
   |             |      |
   v             v      v
QA Intelligence Connectors Automation
   |             |      |
Analyze        Jira    UI
Generate       GitHub  API
Review         Slack   Mobile
                       Performance
          |
          v
       QA Agent
          |
          v
 Persistent QA Context
          |
          v
 Project / Requirement / Suite Versions
          |
          v
 Import / Export

2. フェーズ 1 のアーキテクチャ

Requirement
     |
     v
Requirement Analyzer
     |
     v
RequirementAnalysis
     |
     v
Test Case Generator
     |
     v
TestCaseResponse
     |
     v
Test Case Reviewer
     |
     v
TestCaseReview
     |
     v
QASuiteResult

中核的なMCP機能:

analyze_requirement
generate_test_cases
review_test_cases
generate_qa_suite

3. LLMアーキテクチャ

LLMProvider
     |
     +---- MockLLM
     |
     +---- BedrockLLM

LLMアクセスはプロバイダーに依存しないため、QAツールはローカルでテストし、後でAWS Bedrockや別のプロバイダーに接続できます。

AIの出力は、ダウンストリーム処理の前にPydanticモデルを使用して検証されます。


4. フェーズ 2 ステップ 1 — QAプロジェクトコンテキスト

ステータス: 完了

QAプロジェクトには以下が含まれます:

QAProject
 |
 +-- project_id
 +-- name
 +-- description
 +-- application
 +-- environment
 +-- metadata

中核サービス:

ProjectContext
 |
 +-- create_project()
 +-- get_project()

MCPツール:

create_qa_project
get_qa_project

5. フェーズ 2 ステップ 2 — SQLite永続化

ステータス: 完了

プロジェクトは以下に永続化されます:

data/qa_mcp.db

SQLiteテーブル:

qa_projects

アーキテクチャ:

ProjectContext
       |
       v
ProjectRepository
       |
       v
SQLiteProjectRepository
       |
       v
SQLite

中核コンテキストは直接SQLiteに依存しません。

永続化は別々のPythonプロセス間で検証されました。


6. フェーズ 2 ステップ 3 — QAスイートのバージョニング

ステータス: 完了

QA要件と生成されたスイートはバージョン管理され、独立して永続化されます。

Related MCP server: test-case-generator-ai-mcp

要件バージョン

QA Project
   |
   +-- Requirement v1
   +-- Requirement v2
   +-- Requirement v3

各要件バージョンには以下が含まれます:

  • version_id

  • project_id

  • version

  • requirement

  • application

  • environment

  • created_at

バージョンは各プロジェクトごとに独立して管理されます。

スイートバージョン

各スイートは、それを生成した要件バージョンを記録します:

Requirement v1
      |
      v
Suite v1

Requirement v2
      |
      v
Suite v2

各スイートバージョンには以下が含まれます:

  • suite_id

  • project_id

  • requirement_version_id

  • version

  • test_cases

  • review

  • created_at

アーキテクチャ

core/
└── versioning/
    └── service.py
        |
        v
infrastructure/
└── versioning/
    ├── repositories.py
    └── sqlite_version_repository.py
        |
        v
      SQLite

2つのversioningフォルダは意図的です:

  • core/versioning にはビジネスロジックが含まれます。

  • infrastructure/versioning にはリポジトリインターフェースとSQLite実装が含まれます。

中核サービス

QARequirementVersioningService
QASuiteVersioningService

リポジトリインターフェース

RequirementVersionRepository
SuiteVersionRepository

SQLite実装

SQLiteRequirementVersionRepository
SQLiteSuiteVersionRepository

MCPツール

要件:

create_requirement_version
get_requirement_version
list_requirement_versions

スイート:

create_suite_version
get_suite_version
list_suite_versions

7. フェーズ 2 ステップ 4 — インポート / エクスポート

ステータス: 完了

QA MCP サーバーは、次を含む移植性のあるプロジェクトアーティファクトをサポートするようになりました:

QA Project
    |
    +-- Requirement Versions
    |
    +-- Suite Versions

エクスポート

エクスポートのフローは以下です:

SQLite
   |
   +-- Project
   +-- Requirement Versions
   +-- Suite Versions
           |
           v
QAImportExportService
           |
           v
QAProjectExport
           |
           v
JSON

エクスポートは、呼び出し元が組み立てたオブジェクトではなく、永続化されたデータに基づいています。

MCPツール:

export_qa_project

入力:

project_id

出力:

{
    "project_id": "...",
    "export_version": "1.0",
    "payload": "..."
}

インポート

インポートのフロー:

JSON
  |
  v
Parse
  |
  v
QAProjectExport validation
  |
  v
Relationship validation
  |
  v
Duplicate project check
  |
  v
SQLite persistence

MCPツール:

import_qa_project

インポートは以下を検証します:

  • エクスポートJSON

  • エクスポート構造

  • プロジェクト識別子

  • 要件 → プロジェクト関係

  • スイート → プロジェクト関係

  • スイート → 要件バージョン関係

  • 重複プロジェクト保護

既存のプロジェクトは自動に上書きされません。

ラウンドトリップ検証

完全な往復検証が完了しました:

SQLite DB A
    |
    v
EXPORT
    |
    v
JSON
    |
    v
IMPORT
    |
    v
SQLite DB B
    |
    v
Compare

検証されたアーティファクト:

Project           ✅
Requirements      ✅
Suites            ✅
Relationships     ✅

テスト分離

MCPインポート/エクスポートテストでは、隔離された一時SQLiteデータベースを使用します。

これにより、テスト実行が以下を汚染するのを防ぎます:

data/qa_mcp.db

また、以前のテスト状態に依存せずにテストを繰り返し実行できます。

P2-S4検証ベースライン

Import/Export focused tests: 7 passed
MCP Import/Export tests:     2 passed
Full regression:            49 passed
Application-code warnings:   0
Known external warning:      1

残りの警告は、既知の外部pydantic_settings警告で、lifespan フィールドの未解決の前方参照に関するものです。


8. プロジェクト構造

現在の重要なソース構造:

qa-mcp/
|
+-- src/
|   +-- qa_mcp/
|       |
|       +-- core/
|       |   +-- config.py
|       |   +-- llm.py
|       |   +-- project/
|       |   |   +-- context.py
|       |   |
|       |   +-- versioning/
|       |   |   +-- service.py
|       |   |
|       |   +-- import_export/
|       |       +-- service.py
|       |
|       +-- infrastructure/
|       |   +-- project_repository.py
|       |   +-- sqlite_project_repository.py
|       |   |
|       |   +-- versioning/
|       |       +-- repositories.py
|       |       +-- sqlite_version_repository.py
|       |
|       +-- models/
|       |   +-- schemas.py
|       |
|       +-- tools/
|       |   +-- requirement/
|       |   +-- testcase/
|       |   +-- workflow/
|       |
|       +-- server.py
|
+-- tests/
+-- config/
+-- data/
|   +-- qa_mcp.db
|
+-- README.md

9. ローカルセットアップ

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

テストの実行:

pytest -q

現在の検証済みベースライン:

49 passed

MCPサーバーの実行:

python -m qa_mcp.server

サーバーのインポートの検証:

python -c "from qa_mcp.server import mcp; print('MCP server imports OK')"

10. 開発ガイドライン

実装の各ステップで次のワークフローに従います:

IMPLEMENT
    |
    v
FOCUSED TESTS
    |
    v
FULL REGRESSION
    |
    v
RUNTIME / MCP VERIFICATION
    |
    v
FIX / REFINE
    |
    v
MARK STEP COMPLETE
    |
    v
UPDATE README
    |
    v
DOWNLOAD NEW README CHECKPOINT
    |
    v
NEXT STEP

ルール:

  1. 一度に1つのステップを実装する。

  2. すべての機能をテストする。

  3. 既存のテストはグリーンのままにしておく。

  4. ローカルで検証されるまでステップは完了しない。

  5. 検証されたマイルストーンごとにREADMEを更新する。

  6. 中核ビジネスロジックはMCPトランスポートに依存しない。

  7. 永続化と外部統合はインターフェースの背後に置く。

  8. LLMプロバイダーは交換可能なままにしておく。

  9. AI出力を検証する。

  10. テストは永続ストレージに対して繰り返し実行可能でなければならない。

  11. テストをパスさせるために永続データベースを削除しない。

  12. 永続化に重点を置くテストには分離データベースを使用する。

  13. アシスタントの会話をREADMEに手動でコピーしない。

  14. README が主導的な開発チェックポイントである。

  15. 主要機能は、そのMCP/実行時パスが検証されるまで完了しない。


11. アーキテクチャ原則

  1. 中核ビジネスロジックはcoreに属する。

  2. 永続化はinfrastructureに属する。

  3. **MCPトランスポートはserver.pyおよびMCP向けツール群に属する。 **

  4. ドメイン/データモデルはmodelsに属する。

  5. 中核サービスはSQLite実装に直接依存しない。

  6. **外部統合はインターフェースの背後に隔離する。

  7. LLMプロバイダーは交換可能なままにする。

  8. AI生成出力はダウンストリームで使用する前に検証する。

  9. 永続データをテストフィクスチャと混同しない。

  10. テストは繰り返し実行可能でなければならない。

  11. インポート操作は永続化の前にリレーションシップを検証する必要がある。

  12. インポート既存のプロジェクトを黙って上書きしない。

  13. 完了したマイルストーンには回帰テストが必要である。

  14. READMEの更新はマイルストーン完了の一部です。 */


12. フェーズ2 ロードマップ

ステップ

機能

ステータス

1

QAプロジェクトコンテキスト

完了

2

SQLite永続化

完了

3

QAスイートのバージョニング

完了

4

インポート / エクスポート

完了

5

Jiraコネクタ

次

6

Jira → QAワークフロー

計画中

7

自動化ケース生成器

計画中

8

QAエージェント

計画中

9

GitHub / CI統合

計画中

10

インターネット展開

計画中


13. 計画された最終アーキテクチャ

                    MCP CLIENT / AI ASSISTANT
                              |
                              v
                       +-------------+
                       |   QA MCP    |
                       |   Server    |
                       +------+------+
                              |
              +---------------+----------------+
              |               |                |
              v               v                v
        QA Intelligence   Connectors      Automation
              |               |                |
        +-----+-----+     +---+---+       +----+----+
        |     |     |     |   |   |       |    |    |
     Analyze Gen  Review Jira GitHub    UI   API  Perf
                                            Mobile
              |
              v
          QA Agent
              |
              v
       Persistent Context
              |
              v
     Project / Requirement
        / Suite Versions
              |
              v
       Import / Export

14. 現在のベースライン

Phase 1
  Steps 1–7  COMPLETED

Phase 2
  Step 1 — QA Project Context       COMPLETED
  Step 2 — SQLite Persistence       COMPLETED
  Step 3 — QA Suite Versioning      COMPLETED
  Step 4 — Import / Export          COMPLETED

現在の検証:

49 tests passed
SQLite persistence verified
Requirement versioning verified
Suite versioning verified
Import/export contract verified
Import validation verified
Round-trip persistence verified
MCP import/export verified
MCP server imports successfully
Test isolation verified

既知の警告:

pydantic_settings
IncompleteFieldDefinitionWarning
Field 'lifespan'

これは外部依存関係の警告であり、現在は機能やテストを妨げていません。


15. 次の開発ステップ

Phase 2 → Step 5
       |
       v
Jira Connector

次の実装フェーズは、このREADMEチェックポイントが保存された後にのみ開始する必要があります。


16. マイルストーン履歴

Phase 1
  |
  +-- Foundation
  +-- LLM abstraction
  +-- Requirement analysis
  +-- Test generation
  +-- Test review
  +-- QA suite workflow
  +-- MCP integration
  |
  v
Phase 1 COMPLETE

Phase 2
  |
  +-- QA Project Context
  +-- SQLite Persistence
  +-- Requirement/Suite Versioning
  +-- Import / Export
  |
  v
Phase 2 Step 4 COMPLETE

このREADMEは、フェーズ 2 → ステップ 4 — インポート / エクスポートの正常な検証後のプロジェクト状態を表しています。

Related MCP Connectors

Related MCP Servers