You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: improve UX with neutral messaging and fail_on_diff option
- Change '⚠️ API Differences Detected' to '📋 API Changes Detected' for less alarming tone
- Remove <details> nesting for diffs - show them directly for easier reading
- Add fail_on_diff option to fail the action when API changes are detected (for release validation)
- Show ref names (branch/tag) instead of just SHA in reports where possible
- Add links to language starter repos and github-mcp-server in README
- Update README overview to focus on visibility rather than alarming about breaking changes
A GitHub Action for detecting changes to [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server **public interfaces**. This action compares the current branch against a baseline to surface any changes to your server's exposed tools, resources, prompts, and capabilities—helping you catch unintended breaking changes and document intentional API evolution.
7
+
A GitHub Action for detecting changes to [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server **public interfaces**. This action compares the current branch against a baseline to surface any changes to your server's exposed tools, resources, prompts, and capabilities—helping you document API evolution and catch unintended modifications.
8
8
9
9
## Overview
10
10
11
-
MCP servers expose a **public interface** to AI assistants: tools (with their input schemas), resources, prompts, and server capabilities. As your server evolves, changes to this interface can break clients or alter expected behavior. This action automates public interface comparison by:
11
+
MCP servers expose a **public interface** to AI assistants: tools (with their input schemas), resources, prompts, and server capabilities. As your server evolves, changes to this interface are worth tracking. This action automates public interface comparison by:
12
12
13
13
1. Building your MCP server from both the current branch and a baseline (merge-base, tag, or specified ref)
14
14
2. Querying both versions for their complete public interface (tools, resources, prompts, capabilities)
15
-
3. Generating a detailed diff report showing exactly what changed
15
+
3. Generating a diff report showing exactly what changed
16
16
4. Surfacing results directly in GitHub's Job Summary
17
17
18
18
This is **not** about testing internal logic or correctness—it's about visibility into what your server _advertises_ to clients.
@@ -200,6 +200,8 @@ Either `start_command` (for stdio) or `server_url` (for HTTP) must be provided,
200
200
| Input | Description | Default |
201
201
|-------|-------------|---------|
202
202
| `compare_ref` | Git ref to compare against. Auto-detects merge-base on PRs or previous tag on tag pushes if not specified. | `""` |
203
+
| `fail_on_diff` | Fail the action if API changes are detected. Useful for release validation workflows. | `false` |
204
+
| `fail_on_error` | Fail the action if probe errors occur (connection failures, etc.) | `true` |
203
205
204
206
### Configuration Object Schema
205
207
@@ -354,6 +356,21 @@ Specify any git ref to compare against:
354
356
compare_ref: v1.0.0
355
357
```
356
358
359
+
### Failing on Changes (Release Validation)
360
+
361
+
For release workflows where you want to ensure no API changes, use `fail_on_diff`:
362
+
363
+
```yaml
364
+
- uses: SamMorrowDrums/mcp-conformance-action@v2
365
+
with:
366
+
setup_node: true
367
+
install_command: npm ci
368
+
build_command: npm run build
369
+
start_command: node dist/stdio.js
370
+
compare_ref: v1.0.0
371
+
fail_on_diff: true # Action fails if any API changes are detected
372
+
```
373
+
357
374
## Artifacts and Reports
358
375
359
376
The action produces:
@@ -439,3 +456,17 @@ Contributions are welcome. Please read [CONTRIBUTING.md](CONTRIBUTING.md) for gu
0 commit comments