# MCP Validator Release Notes

## v0.3.0 - 2025-06-21

### 🚀 Major Release: Full MCP 2025-06-18 Protocol Support

This release brings comprehensive support for the latest MCP 2025-06-18 specification, including OAuth 2.1 authentication, structured tool output, and production-ready GitHub Actions templates.

#### 🔐 OAuth 2.1 Authentication Framework
- **Complete OAuth 2.1 Implementation**: RFC 6749, RFC 6750, and OAuth 2.1 draft compliance
- **Bearer Token Support**: Automatic token extraction and validation from Authorization headers
- **WWW-Authenticate Headers**: Standards-compliant 401 responses with authentication challenges
- **Resource Server Capabilities**: Full OAuth 2.1 resource server implementation in reference HTTP server
- **MCP-Protocol-Version Headers**: Protocol version negotiation via HTTP headers
- **Security Features**: CORS support, origin validation, and DNS rebinding attack prevention

#### 📊 Structured Tool Output (2025-06-18)
- **Enhanced Tool Responses**: Tools return structured responses with `content`, `isError`, and `structuredContent` fields
- **Improved Tool Schema**: Tools use `inputSchema` (renamed from `parameters`), `title`, and `outputSchema` fields
- **Better Error Handling**: Structured error responses with detailed diagnostics
- **Validation Framework**: Comprehensive validation of tool output formats

#### 🔄 Protocol Enhancements
- **JSON-RPC Batching Removal**: Batch requests are properly rejected for 2025-06-18 protocol
- **Elicitation Support**: Framework for server-initiated user interactions and data collection
- **Enhanced Session Management**: Per-session protocol version tracking and feature negotiation
- **Resource Lifecycle Management**: Improved resource handling and metadata support

#### 🤖 GitHub Actions Templates
- **Production-Ready Templates**: Copy-paste GitHub Actions workflows for STDIO and HTTP servers
- **Multi-Protocol Testing**: Automated testing against 2025-03-26 and 2025-06-18 protocols
- **OAuth 2.1 Support**: Built-in authentication testing for 2025-06-18 servers
- **Detailed PR Comments**: Automatic compliance reports with feature-specific indicators
- **Easy Setup**: 3-step process - copy, edit one line, commit and push

#### 📈 Comprehensive Test Coverage
- **16 New Test Cases**: Specific validation for 2025-06-18 features
- **70% Protocol Coverage**: Achieved 70% test coverage for 2025-06-18 module (up from 12%)
- **End-to-End Testing**: Complete workflow testing from initialization to tool execution
- **Backward Compatibility**: All tests support 2024-11-05, 2025-03-26, and 2025-06-18 protocols

#### 🛠 Developer Experience Improvements
- **Updated CLI Tools**: All commands default to 2025-06-18 protocol
- **Enhanced Debug Output**: Better logging and error messages for troubleshooting
- **Comprehensive Documentation**: Updated README with OAuth 2.1 setup and examples
- **Reference Server Updates**: HTTP server supports all three protocol versions with feature detection

### 🔧 Technical Improvements

#### HTTP Transport Enhancements
- **Session ID Management**: Proper extraction from response body and URL parameters
- **Protocol Headers**: MCP-Protocol-Version header support for all requests
- **Error Handling**: Enhanced error responses with structured format
- **URL Construction**: Fixed endpoint handling for `/messages` vs root URL

#### STDIO Transport Updates
- **Protocol Negotiation**: Improved version detection and capability handling
- **Tool Output Validation**: Enhanced validation for structured responses
- **Error Recovery**: Better handling of malformed responses

#### Reference Server Improvements
- **Multi-Protocol Support**: Single server supporting 2024-11-05, 2025-03-26, and 2025-06-18
- **OAuth 2.1 Resource Server**: Complete authentication framework implementation
- **Dynamic Features**: Protocol-specific feature detection and response formatting
- **Production Ready**: Environment variable configuration for OAuth and security settings

### 🐛 Bug Fixes
- Fixed undefined `server` variable in reference HTTP server
- Corrected session ID extraction and URL parameter handling
- Fixed initialization request format for 2025-06-18 protocol
- Resolved unit test failures due to missing TransportError class
- Fixed CLI test expectations for default protocol version

### 📚 Documentation Updates
- **Comprehensive README**: OAuth 2.1 setup, 2025-06-18 features, and examples
- **GitHub Actions Guide**: Step-by-step setup instructions with troubleshooting
- **API Documentation**: Updated with new protocol features and authentication
- **Migration Guide**: Clear instructions for upgrading from older protocol versions

### 🔄 Backward Compatibility
- **Full Compatibility**: All existing protocol versions (2024-11-05, 2025-03-26) remain supported
- **Automatic Detection**: Protocol version detection and feature negotiation
- **Legacy Support**: Older tool response formats maintained for compatibility
- **Graceful Degradation**: Features unavailable in older protocols are properly handled

### 🚀 Getting Started with v0.3.0

#### Quick OAuth 2.1 Setup
```bash
# Enable OAuth 2.1 authentication
export MCP_OAUTH_ENABLED=true
export MCP_OAUTH_INTROSPECTION_URL=https://auth.example.com/oauth/introspect
export MCP_OAUTH_REQUIRED_SCOPES=mcp:read,mcp:write

# Start the reference server
python ref_http_server/reference_mcp_server.py --port 8088
```

#### GitHub Actions Integration
```bash
# Copy the template
cp ref_gh_actions/http-validation.yml .github/workflows/

# Edit one line - update SERVER_PATH
# Commit and push - automatic validation on PRs!
```

#### Test 2025-06-18 Features
```bash
# Test structured tool output
python -m mcp_testing.http.cli --server-url http://localhost:8088 --protocol-version 2025-06-18

# Test OAuth 2.1 authentication
curl -H "Authorization: Bearer your-token" \
     -H "MCP-Protocol-Version: 2025-06-18" \
     http://localhost:8088/messages
```

---

## v0.2.0 - 2025-01-11

### Added
- **MCP Protocol 2025-06-18 Support**: Initial implementation of the latest MCP specification
- **Enhanced Reference HTTP Server**: Updated to support multiple protocol versions
- **New Test Cases**: 7 additional test cases for 2025-06-18 features
- **Improved Documentation**: Updated README with 2025-06-18 examples

### Changed
- **Default Protocol Version**: Updated default from 2025-03-26 to 2025-06-18
- **Tool Response Format**: Enhanced tool result structure
- **Test Coverage**: Expanded test suite

---

## v0.1.0 - 2023-07-15

### Added
- Initial public release
- Support for MCP protocol versions 2024-11-05 and 2025-03-26
- Reference implementations for STDIO and HTTP transports
- Comprehensive test suite for protocol compliance
- Dynamic tool testing and timeout handling
- Detailed compliance reporting 