Skip to content

MCP API Protocols & CI/CD Integration

SyncETA implements the standard Model Context Protocol (MCP) for remote orchestration and CI/CD automation.


1. Protocol Specifications

  • Standard: Model Context Protocol (MCP) Specification
  • Transport: HTTP Server-Sent Events (SSE)
  • Auth: HTTP Bearer JWT (Role-claim authorized)
  • Endpoint: POST /mcp/v1/tools/call

2. Core Tool Schemas

run_playwright (Execute Scenario)

json
{
  "name": "run_playwright",
  "description": "Executes a test scenario across specified browser engines concurrently.",
  "parameters": {
    "type": "object",
    "properties": {
      "scenario_id": { "type": "string", "description": "Scenario UUID" },
      "browser_type": { "type": "string", "enum": ["chromium", "firefox", "webkit"], "default": "chromium" },
      "headless": { "type": "boolean", "default": true },
      "viewport": {
        "type": "object",
        "properties": {
          "width": { "type": "integer", "default": 1920 },
          "height": { "type": "integer", "default": 1080 }
        }
      }
    },
    "required": ["scenario_id"]
  }
}

capture_screenshot (Capture Rendered DOM)

json
{
  "name": "capture_screenshot",
  "description": "Captures viewport or full-page screenshot of a target URL.",
  "parameters": {
    "type": "object",
    "properties": {
      "target_url": { "type": "string" },
      "selector": { "type": "string" },
      "full_page": { "type": "boolean", "default": false }
    },
    "required": ["target_url"]
  }
}

3. GitHub Actions Integration Example

yaml
name: SyncETA E2E Regression Suite

on:
  pull_request:
    branches: [ main, develop ]

jobs:
  run-synceta-tests:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4

      - name: Trigger SyncETA Regression Tests via MCP
        id: synceta
        env:
          SYNCETA_API_KEY: ${{ secrets.SYNCETA_API_KEY }}
          SYNCETA_HOST: "https://synceta-api.company.internal"
        run: |
          RESPONSE=$(curl -s -X POST "$SYNCETA_HOST/mcp/v1/tools/call" \
            -H "Authorization: Bearer $SYNCETA_API_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "name": "run_playwright",
              "arguments": {
                "scenario_id": "scen_order_checkout_v2",
                "browser_type": "chromium",
                "headless": true
              }
            }')
          echo "Response: $RESPONSE"

Last updated: