Releases: localrivet/gomcp
Releases · localrivet/gomcp
v1.7.2
v1.7.1
Full Changelog: v1.7.0...v1.7.1
v1.7.0
Full Changelog: v1.6.5...v1.7.0
v1.6.5
Full Changelog: v1.6.4...v1.6.5
v1.6.4
🚀 Embedded Transport Implementation
This release introduces a complete embedded transport implementation for zero-overhead in-process MCP communication.
✨ New Features
- Embedded Transport: Direct in-process communication using Go channels with no serialization overhead
- Client Integration: New
WithEmbedded()option for seamless client configuration - Server Integration: New
AsEmbedded()method following the same pattern as other transports - Full MCP Protocol Support: Complete bidirectional communication for all MCP operations
🔧 Implementation Details
- Thread-safe concurrent operations using atomic operations and sync.Map
- Proper JSON-RPC 2.0 message handling and notification routing
- Clean channel-based architecture eliminating mutex usage
- Comprehensive integration tests covering tools, resources, prompts, and sampling
📚 Examples
- Complete embedded transport example demonstrating all MCP capabilities
- Integration tests showing concurrent operations and notification handling
🎯 Use Cases
Perfect for:
- Library integration scenarios
- Testing and development environments
- High-performance in-process MCP communication
- Scenarios where network overhead should be eliminated
🧪 Testing
- All existing tests continue to pass
- New comprehensive integration tests added
- Example application demonstrates full functionality
This embedded transport provides the fastest possible MCP communication method while maintaining full protocol compatibility.
v1.6.3
Full Changelog: v1.6.2...v1.6.3
v1.6.2
🚀 New Features
Embedded Transport
- Added in-process embedded transport for zero-overhead communication
- Client adapter following the same pattern as other transports
- Perfect for testing, library integration, and embedded use cases
📦 New Components
transport/embedded/- Core embedded transport implementationclient/embedded_transport.go- Client adapter for embedded transportexamples/embedded/- Working example demonstrating usage
🔧 Usage
// Create transport pair
serverTransport, clientTransport := embedded.NewTransportPair()
// Use with MCP server
server := server.NewServer("my-app")
// Use with MCP client
client := client.NewEmbeddedTransport(clientTransport)✅ Compatibility
- Full backward compatibility maintained
- All existing tests pass
- No breaking changes
🎯 Use Cases
- Testing: Fast, reliable test environments
- Library Integration: Embed MCP servers directly in applications
- Microservices: In-process communication between components
- Development: Quick prototyping without network setup
v1.6.1
Full Changelog: v1.6.0...v1.6.1
v1.6.0
Full Changelog: v1.5.5...v1.6.0
v1.5.5
🚀 MCP Session Architecture Implementation
✨ New Features
- Enhanced ClientInfo struct with Env and Roots fields for comprehensive session data
- ClientSession convenience methods: Env(), Roots(), Capabilities() for easy access
- Transport-aware session data extraction - environment from transport headers/process, not init params
- Automated workspace root fetching following complete MCP protocol flow
- Proper response handling with request tracking for roots/list requests
🔧 Implementation Details
- Server automatically detects client roots capability and sends roots/list requests
- Workspace roots extracted from both clientInfo during initialization AND via automated roots/list
- Environment data correctly sourced from transport layer per MCP specification
- Full MCP compliance across all three protocol versions (2024-11-05, 2025-03-26, draft)
🧪 Testing & Quality
- Added comprehensive MCP compliance tests for all three protocol specifications
- Added session integration tests with complete flow verification
- Enhanced workspace roots testing with URI-to-path conversion validation
- All 500+ tests passing across all packages and protocol versions
📚 Documentation
- Added MCP_Session_Architecture.md with detailed implementation notes
- Documented key discovery: roots are client capability given to server for file access awareness
✅ Compliance & Standards
- Maintains pure API contract - exactly one method per operation
- Follows Go development rules: minimal locks, test-first approach, idiomatic patterns
- Zero breaking changes - seamless integration with existing functionality
This release provides production-ready session management and automated root fetching while maintaining full backward compatibility.