name: MCP Agent Usability on: push: branches: [ master, main, develop/* ] paths: - '.github/workflows/mcpgrade.yml' - '.mcpgraderc.json' - 'Directory.Packages.props' - 'tools/Opc.Ua.Mcp/**' - 'tools/Opc.Ua.Mcp.*/**' pull_request: branches: [ master, main, develop/* ] paths: - '.github/workflows/mcpgrade.yml' - '.mcpgraderc.json' - 'Directory.Packages.props' - 'tools/Opc.Ua.Mcp/**' - 'tools/Opc.Ua.Mcp.*/**' workflow_dispatch: permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: grade: name: Static and probe grading runs-on: windows-latest steps: - uses: actions/checkout@v7 with: fetch-depth: 0 - name: Setup .NET 10 uses: actions/setup-dotnet@v6 with: dotnet-version: '10.0.402' - name: Setup Node.js uses: actions/setup-node@v7 with: node-version: '22' - name: Grade MCP catalogs shell: pwsh run: > ./tools/Opc.Ua.Mcp/Test-McpGrade.ps1 -ResultsDirectory '${{ runner.temp }}/mcpgrade-results' -IncludePrivilegedCatalogues -AdditionalProfiles @('wot', 'xregistry', 'wot-documents', 'wot,xregistry,wot-documents', 'gds', 'certificates', 'credentials', 'onboarding', 'roles', 'users', 'files', 'alarms', 'history', 'schemas', 'pubsub-runtime', 'pubsub-configuration', 'pubsub-bridge', 'pubsub-security', 'wot-runtime') - name: Upload grading reports if: ${{ always() }} uses: actions/upload-artifact@v7 with: name: mcpgrade-results path: ${{ runner.temp }}/mcpgrade-results