ci: add MCP interface diff workflow for Everything server #1
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Tracks public interface changes to the Everything MCP server. | ||
| # The Everything server is a reference implementation demonstrating all MCP features. | ||
| # This workflow helps reviewers see how tools, resources, prompts, and capabilities | ||
| # evolve over time - useful for SDK compliance validation and catching regressions. | ||
| # | ||
| # See: https://github.com/modelcontextprotocol/inspector/issues/1034 | ||
| name: Everything Server MCP Diff | ||
| on: | ||
| push: | ||
| branches: [main] | ||
| paths: | ||
| - 'src/everything/**' | ||
| pull_request: | ||
| paths: | ||
| - 'src/everything/**' | ||
| # Manual trigger for comparing any two refs (commits, tags, branches) | ||
| workflow_dispatch: | ||
| inputs: | ||
| compare_ref: | ||
| description: 'Base ref to compare against (commit SHA, tag, or branch)' | ||
| required: false | ||
| default: '' | ||
| target_ref: | ||
| description: 'Target ref to compare (defaults to current branch if empty)' | ||
| required: false | ||
| default: '' | ||
| permissions: | ||
| contents: read | ||
| jobs: | ||
| mcp-diff: | ||
| name: Diff Everything Server Interface | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | ||
| with: | ||
| fetch-depth: 0 | ||
| ref: ${{ github.event.inputs.target_ref || github.ref }} | ||
| - name: Run MCP Server Diff | ||
| uses: SamMorrowDrums/mcp-server-diff@a5555e85d68eaa014a334ae7d12b73787f2c49cc # v2.3.5 | ||
| with: | ||
| setup_node: 'true' | ||
| node_version: '22' | ||
| install_command: npm ci | ||
| build_command: npm run build | ||
| start_command: node dist/index.js stdio | ||
| compare_ref: ${{ github.event.inputs.compare_ref || '' }} | ||
| server_timeout: '15' | ||
| working-directory: src/everything | ||
| - name: Add summary context | ||
| if: always() | ||
| run: | | ||
| echo "" >> $GITHUB_STEP_SUMMARY | ||
| echo "---" >> $GITHUB_STEP_SUMMARY | ||
| echo "" >> $GITHUB_STEP_SUMMARY | ||
| echo "ℹ️ **Interpreting Results**" >> $GITHUB_STEP_SUMMARY | ||
| echo "" >> $GITHUB_STEP_SUMMARY | ||
| echo "The Everything server is a reference implementation that exercises all MCP features." >> $GITHUB_STEP_SUMMARY | ||
| echo "Interface changes here may indicate:" >> $GITHUB_STEP_SUMMARY | ||
| echo "- New MCP protocol features being demonstrated" >> $GITHUB_STEP_SUMMARY | ||
| echo "- Updated tool schemas or descriptions" >> $GITHUB_STEP_SUMMARY | ||
| echo "- New resources, prompts, or capabilities" >> $GITHUB_STEP_SUMMARY | ||
| echo "" >> $GITHUB_STEP_SUMMARY | ||
| echo "Review changes to ensure they align with the intended protocol updates." >> $GITHUB_STEP_SUMMARY | ||