버전 간 MCP server의 공개 인터페이스를 비교하여 도구, 리소스, 프롬프트 및 기능의 변경 사항을 감지합니다.
다른 이름 SamMorrowDrums/mcp-server-diff
- 스타
- 9
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- MIT
diff MCP란?
diff은(는) MCP server입니다. 버전 간 MCP server의 공개 인터페이스를 비교하여 도구, 리소스, 프롬프트 및 기능의 변경 사항을 감지합니다.
프로젝트 README에서 생성된 요약
diff MCP server 정보
Model Context Protocol server를 구축하는 개발자는 이 도구를 사용하여 AI 어시스턴트에 노출되는 공개 인터페이스의 변경 사항을 추적할 수 있습니다. 현재 브랜치를 특정 태그나 merge-base와 같은 기준점과 비교하는 프로세스를 자동화하여 도구, 리소스, 프롬프트 및 server capabilities의 수정 사항을 식별합니다. 이를 통해 입력 스키마나 광고된 기능의 업데이트가 클라이언트 통합을 예기치 않게 중단시키지 않도록 보장합니다.
이 도구는 GitHub Action 또는 npx를 통한 독립형 CLI로 작동합니다. 필요한 환경 설정, 설치 및 빌드 명령을 관리함으로써 Node.js, Python, Go, Rust, .NET을 포함한 다양한 프로그래밍 언어를 지원합니다. stdio와 streamable-http 전송 방식을 모두 테스트할 수 있어 로컬 빌드와 원격 서비스 또는 Docker 이미지를 비교할 수 있습니다. 결과는 GitHub Job Summary에 직접 표시되어 인터페이스 진화 과정을 즉시 확인할 수 있습니다.
활용 사례
- 1인터페이스 중단 변경 사항 감지풀 리퀘스트가 기존 도구의 입력 스키마를 수정하거나 리소스를 제거하는지 식별합니다.
- 2릴리스 버전 검증새로운 릴리스 후보를 이전 버전과 비교하여 인터페이스 안정성을 보장합니다.
- 3기능 제한 기능 테스트특정 클라이언트 capabilities가 광고될 때, 해당 capabilities를 필요로 하는 도구가 올바르게 노출되는지 확인합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
diff MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 diff MCP 설치
$ claude mcp add mcp-server-diff -- npx -y mcp-server-diffCursor에 diff MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server-diff": {
"command": "npx",
"args": [
"-y",
"mcp-server-diff"
]
}
}
}VS Code에 diff MCP 설치
.vscode/mcp.json
{
"servers": {
"mcp-server-diff": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-server-diff"
]
}
}
}VS Code CLI에 diff MCP 설치
$ code --add-mcp '{"name":"mcp-server-diff","type":"stdio","command":"npx","args":["-y","mcp-server-diff"]}'Claude Desktop에 diff MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"mcp-server-diff": {
"command": "npx",
"args": [
"-y",
"mcp-server-diff"
]
}
}
}Codex에 diff MCP 설치
$ codex mcp add mcp-server-diff -- npx -y mcp-server-diffCodex config.toml에 diff MCP 설치
~/.codex/config.toml
[mcp_servers.mcp-server-diff] command = "npx" args = ["-y", "mcp-server-diff"]
Gemini CLI에 diff MCP 설치
$ gemini mcp add -s user mcp-server-diff npx -- -y mcp-server-diffGemini settings.json에 diff MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"mcp-server-diff": {
"command": "npx",
"args": [
"-y",
"mcp-server-diff"
]
}
}
}구성
MCP_TOKEN
| 이름 | 설명 | 유형 |
|---|---|---|
| MCP_TOKEN | — |
자동 검사
2026년 11월 13일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능sammorrowdrums/mcp-server-diff is public and reachablegithub.com/sammorrowdrums/mcp-server-diff ↗통과
- 패키지가 이 저장소를 소스로 명시mcp-server-diff names sammorrowdrums/mcp-server-diff as sourcenpmjs.com/package/mcp-server-diff ↗통과
- 빌드 출처(Sigstore 증명)Sigstore attestation for mcp-server-diffnpmjs.com/package/mcp-server-diff/v/3.0.0#provenance ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-11github.com/sammorrowdrums/mcp-server-diff ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from mcp-server-diff통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기MCP Server Diff
A GitHub Action for diffing Model Context Protocol (MCP) server public interfaces between versions. Compares the current branch against a baseline to surface any changes to your server's exposed tools, resources, prompts, and capabilities.
Also available as a standalone CLI — see CLI Documentation or install with
npx mcp-server-diff
Overview
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:
- Building your MCP server from both the current branch and a baseline (merge-base, tag, or specified ref)
- Querying both versions for their complete public interface (tools, resources, prompts, capabilities)
- Generating a diff report showing exactly what changed
- Surfacing results directly in GitHub's Job Summary
This is not about testing internal logic or correctness—it's about visibility into what your server advertises to clients.
Quick Start
Create .github/workflows/mcp-diff.yml in your repository:
name: MCP Server Diff
on:
pull_request:
branches: [main]
push:
branches: [main]
tags: ['v*']
permissions:
contents: read
jobs:
mcp-diff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.0
with:
fetch-depth: 0
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
setup_node: true
install_command: npm ci
build_command: npm run build
start_command: node dist/stdio.js
Language Examples
Node.js / TypeScript
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
setup_node: true
node_version: '22'
install_command: npm ci
build_command: npm run build
start_command: node dist/stdio.js
Python
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
setup_python: true
python_version: '3.12'
install_command: pip install -e .
start_command: python -m my_mcp_server
Go
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
setup_go: true
install_command: go mod download
build_command: go build -o bin/server ./cmd/stdio
start_command: ./bin/server
Rust
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
setup_rust: true
install_command: cargo fetch
build_command: cargo build --release
start_command: ./target/release/my-mcp-server
C# / .NET
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
setup_dotnet: true
dotnet_version: '9.0.x'
install_command: dotnet restore
build_command: dotnet build -c Release
start_command: dotnet run --no-build -c Release
Custom Setup
If you need more control over environment setup (caching, specific registries, etc.), do your own setup before calling the action:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.0
with:
fetch-depth: 0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '22'
cache: 'npm'
registry-url: 'https://npm.pkg.github.com'
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
install_command: npm ci
build_command: npm run build
start_command: node dist/stdio.js
Testing Multiple Transports
Test both stdio and HTTP transports in a single run using the configurations input:
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
setup_node: true
install_command: npm ci
build_command: npm run build
configurations: |
[
{
"name": "stdio",
"transport": "stdio",
"start_command": "node dist/stdio.js"
},
{
"name": "streamable-http",
"transport": "streamable-http",
"start_command": "node dist/http.js",
"server_url": "http://localhost:3000/mcp"
}
]
Inputs Reference
Language Setup (Optional)
| Input | Description | Default |
|---|---|---|
setup_node |
Set up Node.js environment | false |
node_version |
Node.js version | 22 |
setup_python |
Set up Python environment | false |
python_version |
Python version | 3.11 |
setup_go |
Set up Go environment | false |
go_version |
Go version (reads from go.mod if empty) | "" |
setup_rust |
Set up Rust environment | false |
rust_toolchain |
Rust toolchain | stable |
setup_dotnet |
Set up .NET environment | false |
dotnet_version |
.NET version | 8.0.x |
Required Inputs
| Input | Description |
|---|---|
install_command |
Command to install dependencies (e.g., npm ci, pip install -e ., go mod download) |
Server Configuration
| Input | Description | Default |
|---|---|---|
build_command |
Command to build the server. Optional for interpreted languages. | "" |
start_command |
Command to start the server for stdio transport | "" |
transport |
Transport type: stdio or streamable-http |
stdio |
server_url |
Server URL for HTTP transport (e.g., http://localhost:3000/mcp) |
"" |
configurations |
JSON array of test configurations for testing multiple transports | "" |
server_timeout |
Timeout in seconds to wait for server response | 10 |
env_vars |
Environment variables as newline-separated KEY=VALUE pairs |
"" |
client_capabilities |
JSON object advertised as the MCP client's capabilities. See Client Capability Profile. | Standard core profile |
Either start_command (for stdio) or server_url (for HTTP) must be provided, unless using configurations.
Comparison Configuration
| Input | Description | Default |
|---|---|---|
compare_ref |
Git ref to compare against. Auto-detects merge-base on PRs or previous tag on tag pushes if not specified. | "" |
fail_on_diff |
Fail the action if API changes are detected. Useful for release validation workflows. | false |
fail_on_error |
Fail the action if a genuine probe error occurs (e.g. the server fails to start on both sides). A configuration that starts on only one side is reported as "missing on one side" and is not treated as a probe error — see One-Sided Startup Failures. | true |
Configuration Object Schema
When using configurations, each object supports:
| Field | Description | Required |
|---|---|---|
name |
Identifier for this configuration (appears in report) | Yes |
transport |
stdio or streamable-http |
No (default: stdio) |
start_command |
Server start command (stdio: spawns process, HTTP: starts server in background) | Yes for stdio, optional for HTTP |
server_url |
URL for HTTP transport | Required for streamable-http |
startup_wait_ms |
Milliseconds to wait for HTTP server to start (when using start_command) |
No (default: 2000) |
pre_test_command |
Command to run before probing (alternative to start_command for HTTP) |
No |
pre_test_wait_ms |
Milliseconds to wait after pre_test_command |
No |
post_test_command |
Command to run after probing (cleanup, used with pre_test_command) |
No |
headers |
HTTP headers for this configuration | No |
env_vars |
Additional environment variables | No |
custom_messages |
Config-specific custom messages | No |
client_capabilities |
Config-specific capability object; replaces the global/default profile | No |
base_start_command |
Command for baseline comparison (skips git checkout for this config) | No |
base_server_url |
URL for baseline HTTP server (used with base_start_command) |
No |
Client Capability Profile
Servers can conditionally expose public-interface elements based on what an MCP client advertises. The probe sends the same client capability object through both protocol paths:
- On MCP 2026-07-28+, every stateless request includes it at
_meta.io.modelcontextprotocol/clientCapabilities, includingserver/discover, list requests, and custom requests. - On earlier protocols, the SDK client includes it in
initialize.params.capabilities.
When client_capabilities is empty or omitted, the probe advertises every standardized
core client capability from MCP 2026-07-28:
{
"roots": {},
"sampling": {
"context": {},
"tools": {}
},
"elicitation": {
"form": {},
"url": {}
}
}
This default makes capability-gated interface surfaces visible, including tools that require form elicitation. It intentionally does not opt into extensions such as Tasks.
Provide a JSON object to replace the profile completely. Use {} to advertise no optional
capabilities. Capability names are open-ended and each top-level value must be a JSON object,
so future and vendor-defined capabilities round-trip without a release of this action:
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
start_command: ./server
client_capabilities: |
{
"elicitation": {
"form": {}
},
"extensions": {
"io.modelcontextprotocol/tasks": {},
"com.example/future-client": {
"version": 2
}
},
"com.example/top-level": {
"enabled": true
}
}
client_capabilities inside a configurations entry overrides the global input for that
configuration, which is useful when intentionally comparing capability-dependent surfaces.
[!IMPORTANT] Capabilities are an interface-discovery declaration, not an interactive client implementation. The probe sends discovery and list requests; it does not invoke tools, provide model sampling, collect elicited user input, follow elicitation URLs, or execute extension workflows. Advertising additional capabilities is safe for inspecting conditional interface visibility, but a server that actively exercises a client callback while handling discovery/list requests can cause that probe to fail. Only declare extensions whose conditional surface you intend to validate.
Comparing Against External Servers
When comparing against external servers (e.g., Docker images, remote services), use base_start_command to specify a different command for the baseline. This skips git checkout for that configuration and probes the specified server directly:
configurations: |
[
{
"name": "compare-versions",
"transport": "stdio",
"start_command": "docker run -i ghcr.io/example/mcp-server:v2.0.0",
"base_start_command": "docker run -i ghcr.io/example/mcp-server:v1.0.0"
}
]
This is useful for:
- Version comparison: Compare a new release against the previous version
- Golden reference testing: Compare your local code against a known-good reference
- Cross-implementation testing: Compare different implementations of the same server
- Self-testing CI: Verify the action detects diffs by comparing two known-different servers
For HTTP transport, use base_server_url alongside base_start_command:
configurations: |
[
{
"name": "http-comparison",
"transport": "streamable-http",
"start_command": "docker run -p 3000:3000 myserver:latest",
"server_url": "http://localhost:3000/mcp",
"base_start_command": "docker run -p 3001:3000 myserver:v1.0.0",
"base_server_url": "http://localhost:3001/mcp"
}
]
Security
The action executes configured install, build, and server commands, and its server processes inherit the job environment. Use trusted configuration and avoid exposing secrets or write-capable tokens when running it against untrusted pull request code. Grant workflows only the permissions they need, and pass servers only the credentials required for the probe.
How It Works
Execution Flow
- Baseline Detection: Determines the comparison ref:
- For pull requests: merge-base with target branch
- For tag pushes: previous tag (e.g.,
v1.1.0compares againstv1.0.0) - Explicit: uses
compare_refif provided
- Build Baseline: Creates a git worktree at the baseline ref and builds the server
- Build Current: Builds the server from the current branch
- Conformance Testing: Sends MCP protocol requests to both servers:
initialize- Server capabilities and metadatatools/list- Available tools and their schemasresources/list- Available resourcesprompts/list- Available prompts
- Report Generation: Produces a Markdown report with diffs, uploaded as an artifact and displayed in Job Summary
What Gets Compared
The action queries the public interface of both server versions and compares the responses:
| Method | What It Reveals |
|---|---|
initialize |
Server name, version, capabilities |
tools/list |
Available tools and their JSON schemas |
resources/list |
Exposed resources |
prompts/list |
Available prompts |
Differences appear as unified diffs in the report. Common changes include:
- New tools, resources, or prompts added
- Schema changes (new parameters, updated descriptions)
- Capability changes (new features enabled)
- Version string updates
One-Sided Startup Failures
Sometimes a configuration starts on one side of the comparison but fails to start on
the other. The most common cause is a brand-new configuration that depends on a CLI
flag or option that doesn't exist on the compare ref yet — for example a PR that
introduces a new scoped server mode. On the compare ref the unknown flag is rejected and
the server exits with something like MCP error -32000: Connection closed.
When exactly one side fails to start (and the other probes successfully), the action:
- Reports a fail on the side that could not start, naming the version (current branch or compare ref) in a dedicated "🚫 missing on one side" section and a per-config callout, instead of an opaque probe error.
- Diffs the working side against an empty baseline, so the entire surface of the new (or removed) configuration renders as added/removed — giving you a complete picture of what it exposes.
- Does not trip
fail_on_error. A one-sided startup failure is treated as a surface difference (config-missing), not a genuine probe error, so an introducing PR isn't failed for the expected "this config doesn't exist on the base ref yet" case. It still counts as a difference, sofail_on_diffwill flag it if enabled.
When both sides fail to start, that is a genuine probe failure: it is reported as an
error and trips fail_on_error (when enabled).
Transport Support
stdio Transport
The default transport communicates with your server via stdin/stdout using JSON-RPC. For stdio, each configuration spawns a fresh server process:
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
setup_node: true
install_command: npm ci
build_command: npm run build
start_command: node dist/stdio.js
Streamable HTTP Transport
For HTTP servers, you typically want to start the server once and test multiple configurations against it. Use start_command at the configuration level—the action spawns the server, waits for startup, probes it, then terminates it after that configuration completes:
configurations: |
[{
"name": "http-server",
"transport": "streamable-http",
"start_command": "node dist/http.js",
"server_url": "http://localhost:3000/mcp",
"startup_wait_ms": 2000
}]
Per-configuration server lifecycle: If your use case requires a fresh server instance per configuration (e.g., testing different flags or environment variables), include start_command in each configuration—each will get its own server process started and stopped.
Shared server for multiple configurations: If you want one HTTP server to handle multiple test configurations, use pre_test_command/post_test_command on the first/last configuration, or start the server in a prior workflow step:
configurations: |
[
{
"name": "config-a",
"transport": "streamable-http",
"server_url": "http://localhost:3000/mcp",
"pre_test_command": "node dist/http.js &",
"pre_test_wait_ms": 2000
},
{
"name": "config-b",
"transport": "streamable-http",
"server_url": "http://localhost:3000/mcp"
},
{
"name": "config-c",
"transport": "streamable-http",
"server_url": "http://localhost:3000/mcp",
"post_test_command": "pkill -f 'node dist/http.js' || true"
}
]
Pre-deployed servers: For already-running servers (staging, production), omit lifecycle commands entirely:
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
install_command: 'true'
transport: streamable-http
server_url: https://mcp.example.com/api
Version Comparison Strategies
Pull Requests
On pull requests, the action automatically compares against the merge-base with the target branch. This shows exactly what changes the PR introduces.
Tag Releases
When triggered by a tag push matching v*, the action finds the previous tag and compares against it:
on:
push:
tags: ['v*']
# v1.2.0 will automatically compare against v1.1.0
Explicit Baseline
Specify any git ref to compare against:
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
setup_node: true
install_command: npm ci
build_command: npm run build
start_command: node dist/stdio.js
compare_ref: v1.0.0
Failing on Changes (Release Validation)
For release workflows where you want to ensure no API changes, use fail_on_diff:
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
setup_node: true
install_command: npm ci
build_command: npm run build
start_command: node dist/stdio.js
compare_ref: v1.0.0
fail_on_diff: true # Action fails if any API changes are detected
Artifacts and Reports
The action produces:
- Job Summary: Inline Markdown report in the GitHub Actions UI showing test results and diffs
- Artifact:
mcp-diff-reportartifact containingMCP_DIFF_REPORT.mdfor download or further processing
Example Output
No Changes Detected
When the MCP server's public interface hasn't changed between branches:
📊 Comparison:
Current: HEAD
Compare: abc1234 (v1.0.0)
🧪 Running diff...
📊 Phase 3: Comparing results...
📋 Configuration stdio: ✅ No changes
✅ No API Changes - All configurations match the baseline.
Changes Detected
When changes are detected, the action shows a semantic diff with clear paths to each change:
📋 Configuration stdio: 3 change(s) found
The generated report shows exactly what changed using path notation:
--- base/tools.json
+++ branch/tools.json
+ tools[new_tool]: {"name": "new_tool", "description": "A newly added tool", ...}
- tools[old_tool].inputSchema.properties.name.description: "Old description"
+ tools[old_tool].inputSchema.properties.name.description: "Updated description"
- tools[calculator].inputSchema.properties.precision.type: "string"
+ tools[calculator].inputSchema.properties.precision.type: "number"
--- base/resources.json
+++ branch/resources.json
+ resources[config://settings]: {"uri": "config://settings", "name": "Settings", ...}
Each line shows:
+for additions (new tools, resources, or changed values)-for removals (deleted items or previous values)- Full path to the change:
tools[tool_name].inputSchema.properties.param.type
This makes it easy to see exactly what changed without wading through entire JSON dumps
Recommended Workflow
name: MCP Server Diff
on:
workflow_dispatch:
pull_request:
branches: [main]
push:
branches: [main]
tags: ['v*']
permissions:
contents: read
jobs:
mcp-diff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.0
with:
fetch-depth: 0
- uses: SamMorrowDrums/mcp-server-diff@v3
with:
setup_node: true
install_command: npm ci
build_command: npm run build
configurations: |
[
{
"name": "stdio",
"transport": "stdio",
"start_command": "node dist/stdio.js"
},
{
"name": "streamable-http",
"transport": "streamable-http",
"start_command": "node dist/http.js",
"server_url": "http://localhost:3000/mcp"
}
]
Troubleshooting
Server fails to start
- Check that
start_commandworks locally - Increase
server_timeoutfor slow-starting servers - Verify all dependencies are installed by
install_command
Missing baseline
- Ensure
fetch-depth: 0in your checkout step - For new repositories, the first run may fail (no baseline exists)
HTTP transport connection refused
- Verify
server_urlmatches your server's listen address - Ensure the server binds to
0.0.0.0or127.0.0.1, not justlocalhoston some systems - Check firewall or container networking if running in Docker
CLI Tool
The CLI lets you diff any two MCP servers directly from your terminal—useful for local development, CI pipelines, or comparing servers across different implementations.
Installation
# Run directly with npx (no install required)
npx mcp-server-diff --help
# Or install globally
npm install -g mcp-server-diff
Basic Usage
# Compare two local stdio servers
npx mcp-server-diff -b "python -m mcp_server" -t "node dist/stdio.js"
# Compare local server vs remote HTTP endpoint
npx mcp-server-diff -b "go run ./cmd/server stdio" -t "https://mcp.example.com/api"
# Replace the default capability profile for both servers
npx mcp-server-diff -b "./server-v1" -t "./server-v2" \
--client-capabilities '{"elicitation":{"form":{}}}'
# Output formats
npx mcp-server-diff -b "..." -t "..." -o diff # Raw diff hunks only
npx mcp-server-diff -b "..." -t "..." -o json # Full JSON with details
npx mcp-server-diff -b "..." -t "..." -o markdown # Formatted report
npx mcp-server-diff -b "..." -t "..." -o summary # One-line summary (default)
HTTP Headers & Authentication
For authenticated HTTP endpoints, pass headers with -H (target) or --base-header:
# Direct header value for target
npx mcp-server-diff -b "./server" -t "https://api.example.com/mcp" \
-H "Authorization: Bearer your-token-here"
# Read from environment variable (keeps secrets out of shell history)
export MCP_TOKEN="your-secret-token"
npx mcp-server-diff -b "./server" -t "https://api.example.com/mcp" \
-H "Authorization: Bearer env:MCP_TOKEN"
# Prompt for secret interactively (hidden input, named "token")
npx mcp-server-diff -b "./server" -t "https://api.example.com/mcp" \
-H "Authorization: Bearer secret:token"
diff MCP 질문
diff MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add mcp-server-diff -- npx -y mcp-server-diff를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
diff MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
이 도구는 실제로 무엇을 비교하나요?
MCP server의 공개 인터페이스, 구체적으로는 노출된 도구(입력 스키마 포함), 리소스, 프롬프트 및 server capabilities를 비교합니다.
서버의 내부 로직을 테스트하나요?
아니요, 이 도구는 내부 로직이나 정확성을 테스트하기보다는 광고된 인터페이스를 가시화하도록 설계되었습니다.
로컬 서버와 Docker 이미지를 비교하는 데 사용할 수 있나요?
네, base_start_command 입력을 사용하여 특정 Docker 이미지 버전을 실행하는 등 기준점(baseline)에 대한 다른 명령을 지정할 수 있습니다.
HTTP 전송 방식을 테스트할 수 있나요?
네, 이 도구는 stdio와 streamable-http 전송 방식을 모두 지원합니다.