ci: add MCP interface diff workflow for Everything server#3260
ci: add MCP interface diff workflow for Everything server#3260SamMorrowDrums wants to merge 8 commits into
Conversation
Adds a GitHub Actions workflow that tracks public interface changes to the Everything MCP server using mcp-server-diff. Features: - Runs on PRs and pushes affecting src/everything/ - Auto-compares against merge-base (PRs) or previous state (pushes) - Manual workflow_dispatch for comparing any two refs - Generates diff reports showing tool, resource, prompt, and capability changes This helps catch unintended interface changes and provides clear visibility into how the reference server evolves over time. Related: modelcontextprotocol/inspector#1034
Composite actions don't support working-directory at step level. Use full paths in commands instead.
|
@cliffhall what do you think I'd need to do, or who do you think I'd need to ping to get this over the line (or get a definitive no)? As mentioned offer is open to:
https://discord.com/channels/1358869848138059966/1466125436932198483/1466211900160348394 |
|
@claude review |
|
Claude finished @cliffhall's task in 1m 9s —— View job PR Review:
|
Address review feedback: - Add concurrency group so superseded runs on the same ref are cancelled - Repin SamMorrowDrums/mcp-server-diff to the correct v2.3.5 commit SHA (the previous SHA did not exist in the action's repo) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Addressed the concurrency feedback in 4424981:
|
Surface the Everything server interface diff directly on the PR instead of requiring reviewers to dig into the Actions tab. - Add 'pull-requests: write' permission - Capture mcp-server-diff status output via step id - Build a comment body that summarises the status and includes the full report in a collapsed <details> block - Post via marocchino/sticky-pull-request-comment (SHA-pinned to v3.0.4) using a stable header so subsequent pushes update the same comment - Guarded to same-repo PRs only; fork PRs still get the summary and uploaded artifact Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Per @cliffhall's feedback about visibility, I've added a sticky PR comment so the diff shows up directly on the PR (commit ad5bf3f):
The action remains opt-in / non-failing on interface differences as before; this is purely about surfacing the report. |
…er-mcp-diff-workflow
Mirrors github/github-mcp-server's pattern of pushing on tags so each release surfaces its cumulative interface delta. The everything server ships as part of the typescript-servers monorepo bundle, so we trigger on typescript-servers-* tags and let mcp-server-diff auto-compare against the previous matching tag. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
@claude review |
|
Claude finished @cliffhall's task in 56s —— View job PR Review:
|
Summary
Adds a GitHub Actions workflow that tracks public interface changes to the Everything MCP server. This provides clear visibility into how the reference implementation evolves over time—useful for SDK compliance validation, catching unintended regressions, and reviewing PRs that modify the server interface.
Motivation
The Everything server is the reference implementation that exercises all MCP protocol features. Changes to its public interface (tools, resources, prompts, capabilities) often signal:
Currently there's no automated way to see these changes at a glance. This workflow surfaces them directly in the GitHub Actions summary.
Related discussion: modelcontextprotocol/inspector#1034 - Interest in using mcp-server-diff for SDK compliance testing with the Everything server.
What the workflow does
src/everything/workflow_dispatchfor comparing any two refs (commits, tags, branches)Example output
Here's a real diff between commit
737ce98and the current HEAD of the Everything server:This clearly shows the new Tasks capability and the
simulate-research-querytool that were added.Real-world example
See the MCP diff action in use on github/github-mcp-server - this workflow run shows interface changes from the "Generate server instructions in Inventory" PR.
Workflow features
contents: readonly)Testing
The workflow uses SamMorrowDrums/mcp-server-diff which is also available as a CLI: