blob: 82b8ca814882db4c48b169e8903eda7f976f9cb7 [file]
# Copyright (c) 2026, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
name: package:dart_mcp conformance
permissions: read-all
# The MCP conformance suite is an npm package that is still in alpha. This job
# runs weekly, by hand, and on pull requests that touch the package.
# `continue-on-error` keeps the run green when the suite fails. The job itself
# still reports the failure.
on:
pull_request:
paths:
- '.github/workflows/conformance.yaml'
- 'pkgs/dart_mcp/**'
schedule:
- cron: '0 0 * * 0' # weekly
workflow_dispatch:
defaults:
run:
working-directory: pkgs/dart_mcp
jobs:
conformance:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- uses: dart-lang/setup-dart@6afc89df92d6eb3834022f73cd65adc8cdfcb92d
with:
sdk: stable
- run: dart pub get
- name: Server
run: |
dart run tool/conformance_server.dart > server.log &
for i in $(seq 1 30); do
grep -q '^http' server.log && break
sleep 1
done
URL="$(grep -m1 '^http' server.log)"
test -n "$URL"
npx @modelcontextprotocol/conformance@0.2.0-alpha.11 server \
--url "$URL" --requirements 2026-07-28
- name: Client
run: |
npx @modelcontextprotocol/conformance@0.2.0-alpha.11 client \
--command "dart run tool/conformance_client.dart" \
--requirements 2026-07-28 \
--expected-failures tool/conformance_expected_failures.yaml \
--timeout 120000