Skip to content

Epistates/TurboMCP

v1.0.4 Breaking

This release includes breaking changes for platform teams planning a safe upgrade.

Published 9mo MCP Developer Tools
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

mcp mcp-client mcp-sdk mcp-server mcp-servers rust

Summary

AI summary

Zero‑ceremony builders simplify configuration forms with no breaking changes.

Full changelog

🚀 Major Features & Enhancements

Zero Ceremony Builders 🎉

// BEFORE: Verbose ceremony everywhere
let builder = elicit("Configure your app")
    .field("verbose", boolean().title("Verbose Output").build())
    .field("name", string().title("Name").min_length(2).build())
    .field("port", integer().title("Port").range(1000.0, 9999.0).build());

// AFTER: Beautiful zero-ceremony experience  
let builder = elicit("Configure your app")
    .field("verbose", checkbox("Verbose Output"))
    .field("name", text("Name").min_length(2))  
    .field("port", integer_field("Port").range(1000.0, 9999.0));

Key improvements:

  • Zero ceremony - No more .build() or .into() calls anywhere
  • Title-first constructors - checkbox("Title"), text("Name") with clear intent
  • Semantic naming - text(), checkbox(), integer_field() for intuitive usage
  • Slice-based options - options(&["a", "b"]) instead of Vec allocation
  • Smart field methods - .field() accepts builders directly via Into<T>
  • 100% backward compatible - Advanced builder variants available as *_builder()

Comprehensive Elicitation System Expansion

  • New field types: checkbox(), choices(), enum_of(), options()
  • Enhanced validation: Range constraints, length validation, format checking
  • Rich schema support: Object nesting, array handling, complex type definitions
  • 10+ new comprehensive examples demonstrating real-world usage patterns

🔧 Bug Fixes & Core Improvements

Fixed elicit!() Macro

  • Fixed: elicit!() macro compilation error
  • Issue: Macro was accessing incorrect field path for server capabilities
  • Solution: Updated field access to use ctx.request.server_capabilities()

Major Protocol Enhancement

  • Fixed: JSON schema conversion in turbomcp-protocol was incorrectly defaulting all property types to String
  • Impact: Elicitation schemas now preserve correct data types (integer, boolean, number, etc.)
  • Solution: Implemented proper JSON Value to PrimitiveSchemaDefinition conversion with full type preservation

Enhanced Test Infrastructure

  • Added: Shared configuration testing utilities eliminating code duplication
  • Enhanced: Server integration tests with comprehensive request/response validation
  • Expanded: 282+ tests passing with real service validation

📚 New Examples & Documentation

Comprehensive Example Suite

10+ new examples demonstrating real-world usage:

  • 01_basic_server.rs: Core server setup and configuration
  • 02_tool_registration.rs: Dynamic tool registration patterns
  • 03_context_usage.rs: Context API and logging best practices
  • 04_error_handling.rs: Production-grade error management
  • 05_async_handlers.rs: Async tool handler implementations
  • 06_schema_validation.rs: Input validation and type safety
  • 07_complex_schemas.rs: Nested objects and array handling
  • 08_batch_operations.rs: Multi-operation request handling
  • 09_lifecycle_management.rs: Server lifecycle and graceful shutdown
  • 10_elicitation_macro_demo.rs: Elicitation macro usage patterns
  • simple_elicit_macro.rs: Zero-ceremony builder demonstrations

Enhanced Documentation

  • Updated API docs with zero-ceremony builder patterns
  • Improved examples showing idiomatic usage
  • Better error messages with clear guidance
  • Comprehensive guides for migration and best practices

🏗️ Architecture & Infrastructure

Server Infrastructure Improvements

  • Enhanced server builder: Fluent API with comprehensive configuration
  • Improved lifecycle management: Graceful startup and shutdown sequences
  • Better component integration: Registry, router, and metrics coordination
  • Advanced health checking: Multi-component health validation

Testing Infrastructure Overhaul

  • Shared test utilities: DRY configuration testing across components
  • Real service testing: Docker/Testcontainers integration for authentic testing
  • Comprehensive validation: End-to-end request/response cycle testing

Code Quality Enforcement

  • Removed placeholder comments: Eliminated defensive "real implementation" language
  • Enhanced documentation accuracy: Honest capability descriptions
  • Improved error handling: Production-grade error types and recovery
  • Better async patterns: Send-safe implementations throughout

Migration Guide

From 1.0.3 to 1.0.4

No breaking changes. All existing code continues to work unchanged.

New Zero-Ceremony Builders (Optional Migration)

// Old pattern (still works)
use turbomcp::elicitation_api::{elicit, string_builder, boolean_builder};
let form = elicit("Config")
    .field("name", string_builder().title("Name").build())
    .field("debug", boolean_builder().title("Debug").build());

// New ergonomic pattern (recommended)
use turbomcp::elicitation_api::{elicit, text, checkbox};
let form = elicit("Config")
    .field("name", text("Name"))
    .field("debug", checkbox("Debug"));

Enhanced Elicitation Features

  • Use checkbox() instead of boolean() for better semantics
  • Use text() for string inputs with clear intent
  • Use integer_field() and number_field() for numeric inputs
  • All builders now support options(&["a", "b"]) slice syntax

🔍 What's Fixed

Critical Schema Bug Prevention

The enhanced test suite now prevents the schema bug where macro-generated schemas were being ignored:

// This bug would now be IMPOSSIBLE - our tests validate every schema
let (name, desc, _schema) = metadata(); // ❌ Ignoring schema
let (name, desc, schema) = metadata();  // ✅ Schema properly validated

Implementation Testing

  • Direct tool testing: test_tool_call() validates actual macro output
  • Schema validation: Every parameter type verified in generated schemas
  • Integration testing: Complete macro→schema→protocol chain validation

🎯 Quality Metrics

Testing Excellence

  • 282+ tests passing across entire workspace
  • Zero placeholder implementations remaining in codebase
  • Production-grade error handling throughout
  • Comprehensive integration validation for all major features

Architecture Status

  • Bidirectional Transport: Client-mode WebSocket fully functional
  • Enhanced Server Builder: Production-grade configuration and lifecycle management
  • Schema Generation: Full type preservation with proper JSON validation
  • Async Architecture: Send-safe implementations throughout the stack

Resources

  • Documentation: https://docs.rs/turbomcp/1.0.4
  • Repository: https://github.com/Epistates/turbomcp
  • Examples: See crates/turbomcp/examples/ directory

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Epistates/TurboMCP

Get notified when new releases ship.

Sign up free

About Epistates/TurboMCP

TurboMCP SDK: Enterprise MCP SDK in Rust

All releases →

Beta — feedback welcome: [email protected]