Skip to content

Conversation

@SamMorrowDrums
Copy link

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:

  • New protocol features being demonstrated
  • SDK updates affecting server behavior
  • Potential breaking changes

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

  1. Triggers on PRs and pushes affecting src/everything/
  2. Compares current branch against merge-base (PRs) or previous commit (pushes)
  3. Generates a diff report showing changes to tools, resources, prompts, and capabilities
  4. Supports manual workflow_dispatch for comparing any two refs (commits, tags, branches)

Example output

Here's a real diff between commit 737ce98 and the current HEAD of the Everything server:

--- base/initialize.json
+++ target/initialize.json

+ capabilities.tasks: {"cancel":{},"list":{},"requests":{"tools":{"call":{}}}}
--- base/tools.json
+++ target/tools.json

+ tools[simulate-research-query]: {"description":"Simulates a deep research operation..."}

This clearly shows the new Tasks capability and the simulate-research-query tool 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

  • Minimal permissions (contents: read only)
  • Pinned action versions with SHA references
  • Path filtering - only runs when Everything server changes
  • Manual trigger - compare any refs via workflow_dispatch
  • Clear summary - results appear directly in GitHub Actions UI

Testing

The workflow uses SamMorrowDrums/mcp-server-diff which is also available as a CLI:

# Try it locally
npx mcp-server-diff@latest -b "node dist/index.js stdio" -t "node dist/index.js stdio" -o markdown

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant