Skip to content

Releases: localrivet/gomcp

v1.7.2

07 Jul 15:48
0f0f96a

Choose a tag to compare

What's Changed

  • Fix array schema generation to include required 'items' property by @gambtho in #10

New Contributors

Full Changelog: v1.7.1...v1.7.2

v1.7.1

04 Jul 22:27

Choose a tag to compare

Full Changelog: v1.7.0...v1.7.1

v1.7.0

04 Jul 13:22

Choose a tag to compare

Full Changelog: v1.6.5...v1.7.0

v1.6.5

22 Jun 19:50

Choose a tag to compare

Full Changelog: v1.6.4...v1.6.5

v1.6.4

22 Jun 01:18

Choose a tag to compare

🚀 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

21 Jun 23:56

Choose a tag to compare

Full Changelog: v1.6.2...v1.6.3

v1.6.2

21 Jun 23:43

Choose a tag to compare

🚀 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 implementation
  • client/embedded_transport.go - Client adapter for embedded transport
  • examples/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

19 Jun 14:49

Choose a tag to compare

Full Changelog: v1.6.0...v1.6.1

v1.6.0

16 Jun 17:39

Choose a tag to compare

Full Changelog: v1.5.5...v1.6.0

v1.5.5

02 Jun 20:35

Choose a tag to compare

🚀 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.