Skip to main content
Glama
keides2
by keides2
coverity_mcp_functional_spec.md12.8 kB
# Coverity Connect MCP Server 機能仕様書 **Version 1.0.0** **作成日**: 2025年7月21日 **更新日**: 2025年7月21日 ## 📋 概要 Coverity Connect MCP Serverは、Black Duck Coverity Connect静的解析プラットフォームとAIアシスタント(Claude Desktop等)間のシームレスな統合を提供するModel Context Protocol (MCP) サーバーです。 ### 目的 - Coverity Connectへの自然言語アクセスの実現 - 静的解析結果の効率的な分析・レポート生成 - セキュリティ脆弱性の迅速な検出・対応 - CI/CDパイプラインとの統合支援 ### アーキテクチャ ``` Claude Desktop/AI Assistant ↓ (MCP Protocol) Coverity Connect MCP Server ↓ (REST/SOAP API) Black Duck Coverity Connect ``` ## 🛠️ 実装技術スタック ### 主要技術 - **Python 3.8+**: 実行環境 - **FastMCP**: MCPサーバーフレームワーク - **aiohttp**: 非同期HTTPクライアント - **suds-community**: SOAP APIクライアント - **Click**: CLI インターフェース ### 依存関係 ```python dependencies = [ "mcp>=1.0.0", "fastmcp>=0.1.0", "suds-community>=1.1.2", "requests>=2.31.0", "pandas>=1.5.0", "pydantic>=2.0.0", "aiofiles>=23.0.0", "python-dotenv>=1.0.0", "click>=8.0.0", "rich>=13.0.0", "PyYAML>=6.0" ] ``` ## 🔧 システム機能一覧 ### 1. プロジェクト管理機能 #### 1.1 プロジェクト一覧取得 (`list_projects`) **機能説明**: Coverity Connect内の全プロジェクトを取得 **入力パラメータ**: なし **出力形式**: ```json [ { "projectKey": "PROJ001", "projectName": "WebApplication", "description": "メインWebアプリケーションプロジェクト", "createdDate": "2024-01-15T10:30:00Z", "lastModified": "2024-07-20T15:45:00Z", "streams": ["main", "develop", "release"] } ] ``` **使用例**: ``` Coverityの全プロジェクト一覧を表示してください ``` #### 1.2 プロジェクト詳細取得 (`get_project_summary`) **機能説明**: 指定プロジェクトの包括的な情報と統計を取得 **入力パラメータ**: - `project_id` (必須): プロジェクト識別子 **出力形式**: ```json { "project": { "projectKey": "PROJ001", "projectName": "WebApplication", "description": "メインWebアプリケーションプロジェクト" }, "streams": [ { "stream_name": "main-stream", "total_defects": 15, "severity_breakdown": { "High": 3, "Medium": 8, "Low": 4 }, "status_breakdown": { "New": 10, "Triaged": 3, "Fixed": 2 } } ], "total_streams": 3 } ``` ### 2. ストリーム管理機能 #### 2.1 ストリーム一覧取得 (`list_streams`) **機能説明**: プロジェクト内のストリーム一覧を取得 **入力パラメータ**: - `project_id` (任意): プロジェクトIDによるフィルタリング **出力形式**: ```json [ { "name": "main-stream", "description": "メイン開発ストリーム", "projectId": "WebApplication", "language": "MIXED" } ] ``` ### 3. 欠陥検索・分析機能 #### 3.1 欠陥検索 (`search_defects`) **機能説明**: 高度なフィルタリング機能を持つ欠陥検索 **入力パラメータ**: - `query` (任意): 汎用検索クエリ - `stream_id` (任意): ストリームIDフィルタ - `checker` (任意): チェッカー名フィルタ(例:NULL_RETURNS) - `severity` (任意): 重要度フィルタ(High, Medium, Low) - `status` (任意): ステータスフィルタ(New, Triaged, Fixed等) - `limit` (任意): 最大結果数(デフォルト:50) **出力形式**: ```json [ { "cid": "12345", "checkerName": "NULL_RETURNS", "displayType": "Null pointer dereference", "displayImpact": "High", "displayStatus": "New", "displayFile": "src/main.c", "displayFunction": "main", "firstDetected": "2024-01-15T10:00:00Z", "streamId": "main-stream" } ] ``` **使用例**: ``` main-streamでHigh重要度のセキュリティ欠陥を検索してください ``` #### 3.2 欠陥詳細取得 (`get_defect_details`) **機能説明**: CID(Coverity Issue Identifier)による詳細欠陥情報の取得 **入力パラメータ**: - `cid` (必須): Coverity Issue Identifier **出力形式**: ```json { "cid": "12345", "checkerName": "NULL_RETURNS", "displayType": "Null pointer dereference", "displayImpact": "High", "displayStatus": "New", "displayFile": "src/main.c", "displayFunction": "main", "firstDetected": "2024-01-15T10:00:00Z", "streamId": "main-stream", "occurrenceCount": 1, "events": [ { "eventNumber": 1, "eventTag": "assignment", "eventDescription": "Null assignment detected", "fileName": "src/main.c", "lineNumber": 42 } ] } ``` ### 4. ユーザー管理機能 ✨ **新機能** #### 4.1 ユーザー一覧取得 (`list_users`) **機能説明**: Coverity Connect内の全ユーザー情報を取得 **入力パラメータ**: - `include_disabled` (任意): 無効化ユーザーを含める(デフォルト:False) - `limit` (任意): 最大取得ユーザー数(デフォルト:200) **出力形式**: ```json [ { "name": "admin", "email": "admin@company.com", "familyName": "Administrator", "givenName": "System", "disabled": false, "locked": false, "superUser": true, "groupNames": ["Administrators", "Users"], "roleAssignments": [ { "roleName": "administrator", "scope": "global", "username": "admin" } ], "lastLogin": "2024-07-21T10:00:00Z", "dateCreated": "2024-01-01T00:00:00Z", "local": true } ] ``` **使用例**: ``` Coverityの全ユーザー一覧を表示してください ``` #### 4.2 ユーザー詳細取得 (`get_user_details`) **機能説明**: 指定ユーザーの詳細情報を取得 **入力パラメータ**: - `username` (必須): ユーザー名 **出力形式**: ```json { "name": "developer1", "email": "dev1@company.com", "familyName": "開発", "givenName": "太郎", "disabled": false, "locked": false, "superUser": false, "groupNames": ["Users"], "roleAssignments": [ { "roleName": "developer", "scope": "global", "username": "developer1" } ], "lastLogin": "2024-07-20T15:30:00Z", "dateCreated": "2024-02-01T00:00:00Z", "local": true } ``` #### 4.3 ユーザー権限情報取得 (`get_user_roles`) **機能説明**: 指定ユーザーのロールと権限情報を詳細に取得 **入力パラメータ**: - `username` (必須): 権限を調べるユーザー名 **出力形式**: ```json { "username": "projectowner1", "superUser": false, "groups": ["Users"], "roles": [ { "roleName": "projectOwner", "scope": "project", "roleAssignmentType": "user", "description": "プロジェクトの所有者権限" } ], "status": { "disabled": false, "locked": false, "local": true }, "lastLogin": "2024-07-19T09:15:00Z", "dateCreated": "2024-03-01T00:00:00Z" } ``` **ロール説明**: - `administrator`: システム全体の管理権限 - `projectOwner`: プロジェクトの所有者権限 - `developer`: 開発者権限 - `analyst`: 分析者権限 - `viewer`: 閲覧権限 **使用例**: ``` ユーザー 'developer1' の権限とロール情報を教えてください ``` ### 5. リソース機能 #### 5.1 プロジェクト設定リソース **URI**: `coverity://projects/{project_id}/config` **機能**: 指定プロジェクトの設定情報にアクセス #### 5.2 ストリーム欠陥リソース **URI**: `coverity://streams/{stream_id}/defects` **機能**: 指定ストリームの欠陥情報にアクセス ## 🔐 セキュリティ・認証 ### 環境変数設定 ```bash # 必須設定 export COVERITY_HOST="your-coverity-server.com" export COVERITY_PORT="8080" export COVERITY_SSL="True" export COVAUTHUSER="your-username" export COVAUTHKEY="your-auth-key" # オプション設定 export COVERITY_BASE_DIR="/path/to/workspace" export PROXY_HOST="proxy-server.com" export PROXY_PORT="3128" export LOG_LEVEL="INFO" ``` ### SSL/TLS設定 - デフォルトでHTTPS接続を使用 - 自己署名証明書への対応 - 企業プロキシ環境への対応 ### 権限モデル - Coverity Connectの既存認証システムを使用 - ユーザーごとのアクセス制御 - ロールベースの権限管理 ## 📊 エラーハンドリング ### エラーコード | コード | メッセージ | 説明 | |--------|-----------|------| | 401 | Authentication failed | 認証失敗 | | 404 | Resource not found | リソースが見つからない | | 500 | Server error | サーバー内部エラー | | 503 | Service unavailable | Coverity Connect接続不可 | ### エラー応答形式 ```json { "error": "Error message describing the issue" } ``` ## 🧪 テスト方式 ### 開発環境テスト ```bash # ダミーサーバー起動 python examples/development/mock_server.py # MCPサーバー起動 python -m coverity_mcp_server ``` ### 単体テスト ```bash # テスト実行 pytest tests/ # カバレッジテスト pytest --cov=coverity_mcp_server tests/ ``` ### 統合テスト ```bash # 実際のCoverity Connectとの接続テスト pytest tests/ -m integration ``` ## 🔄 CI/CDパイプライン統合 ### GitHub Actions - 自動テスト実行 - コード品質チェック - パッケージビルド・公開 ### Docker対応 ```dockerfile FROM python:3.11-slim COPY . /app WORKDIR /app RUN pip install -e . CMD ["coverity-mcp-server"] ``` ## 📈 パフォーマンス仕様 ### レスポンス時間 - プロジェクト一覧取得: < 5秒 - 欠陥検索(100件): < 10秒 - ユーザー一覧取得: < 3秒 - 詳細情報取得: < 2秒 ### スループット - 同時接続数: 10接続 - 最大クエリ数: 1000/時間 - メモリ使用量: < 512MB ### 制限事項 - 欠陥検索結果の上限: 1000件 - ユーザー一覧の上限: 200件 - タイムアウト設定: 30秒 ## 🌟 使用シナリオ例 ### シナリオ 1: セキュリティ脆弱性の分析 ``` 1. "WebApplicationプロジェクトのHigh重要度セキュリティ欠陥を分析してください" 2. システムが自動的に: - プロジェクト検索 - 重要度フィルタリング - セキュリティ関連欠陥抽出 - 対策提案 ``` ### シナリオ 2: プロジェクト品質レポート生成 ``` 1. "MyProjectの品質サマリーを生成してください" 2. システムが提供: - 全体統計 - ストリーム別分析 - 優先対応項目 - トレンド分析 ``` ### シナリオ 3: ユーザー権限管理 ``` 1. "開発チームのメンバーと権限を確認してください" 2. システムが表示: - ユーザー一覧 - ロール・権限詳細 - アクセス状況 - 権限不備の警告 ``` ### シナリオ 4: CI/CD統合 ``` 1. "main-streamの最新ビルド結果を分析してください" 2. システムが実行: - 最新スナップショット取得 - 新規欠陥識別 - 修正済み欠陥確認 - ビルド品質判定 ``` ## 🚀 今後の拡張計画 ### Version 1.1 - [ ] 高度な欠陥フィルタリング - [ ] カスタムビュー機能 - [ ] 欠陥トレンド分析 ### Version 1.2 - [ ] マルチテナント対応 - [ ] 拡張ユーザー管理 - [ ] チーム・グループ管理 ### Version 1.3 - [ ] REST API対応強化 - [ ] GraphQL API対応 - [ ] リアルタイム通知 ### Version 2.0 - [ ] ML欠陥優先度付け - [ ] プラグインアーキテクチャ - [ ] サードパーティ統合 ## 📞 サポート・連絡先 ### 技術サポート - **GitHub Issues**: [Issues](https://github.com/keides2/coverity-connect-mcp/issues) - **Discussions**: [Discussions](https://github.com/keides2/coverity-connect-mcp/discussions) ### ドキュメント - **API Reference**: [docs/api.md](docs/api.md) - **Configuration Guide**: [docs/configuration.md](docs/configuration.md) - **Installation Guide**: [docs/installation.md](docs/installation.md) - **Setup Guide**: [SETUP_GUIDE.md](SETUP_GUIDE.md) --- **この機能仕様書は、Coverity Connect MCP Server v1.0.0の全機能を包括的に説明しています。最新のユーザー管理機能の追加により、セキュリティ監査、アクセス制御、チーム管理がより効率的になりました。** **更新履歴**: - 2025-07-21: ユーザー管理機能(list_users, get_user_details, get_user_roles)追加 - 2025-07-21: 初版作成(v1.0.0ベース機能仕様)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/keides2/coverity-connect-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server