Skip to content

v0.9.0: Complete MCP Resource Integration with Modern Macro Patterns

Choose a tag to compare

@avrabe avrabe released this 13 Aug 17:05
· 100 commits to main since this release

🎯 PulseEngine MCP Framework v0.9.0

This release introduces comprehensive MCP resource support alongside significant improvements to the macro system and framework capabilities.

✨ Major Features

πŸ”— MCP Resource Integration

  • Complete MCP resource implementation with #[mcp_resource] macro
  • URI template support for parameterized resources (e.g., timedate://current-time/{timezone})
  • Automatic resource discovery and registration
  • Read-only data access pattern differentiated from tools
  • Resource listing via resources/list and reading via resources/read

πŸ›  Enhanced Macro System

  • Modern macro patterns with improved error handling
  • Generic type support for MCP servers (GenericServer<T>)
  • Comprehensive trait delegation with runtime detection
  • Improved clippy compliance and formatting standards
  • Fixed helper method generation for test compatibility

πŸ— Framework Improvements

  • Panic-catching resource trait delegation
  • Enhanced error handling and validation
  • Improved CI/CD pipeline with comprehensive testing
  • Updated template MCP server with resource examples
  • Complete documentation for tools vs resources distinction

πŸ“¦ Published Crates

All framework crates published to crates.io:

Crate Version Purpose
pulseengine-mcp-protocol v0.9.0 Core MCP protocol types & validation
pulseengine-mcp-logging v0.9.0 Structured logging & tracing
pulseengine-mcp-security v0.9.0 Security validation & monitoring
pulseengine-mcp-monitoring v0.9.0 Performance & health monitoring
pulseengine-mcp-auth v0.9.0 Authentication & authorization
pulseengine-mcp-transport v0.9.0 Transport layer implementations
pulseengine-mcp-server v0.9.0 Core MCP server framework
pulseengine-mcp-macros v0.9.0 Procedural macros & code generation
pulseengine-mcp-cli-derive v0.9.0 CLI derive macros
pulseengine-mcp-cli v0.9.0 CLI utilities & tooling

πŸ”§ Technical Improvements

  • βœ… Fixed clippy warnings and formatting issues
  • βœ… Enhanced generic support in macros
  • βœ… Improved trait bound handling
  • βœ… Better error propagation and handling
  • βœ… Comprehensive test coverage

πŸ“š Documentation & Templates

  • πŸ“– Updated template MCP server with resource examples
  • πŸ“– Complete tools vs resources distinction guide
  • πŸ“– URI template documentation and examples
  • πŸ“– Integration examples with MCP Inspector

πŸš€ Getting Started

Add the framework to your Cargo.toml:

[dependencies]
pulseengine-mcp-server = "0.9.0"
pulseengine-mcp-macros = "0.9.0"

Example with resources:

use pulseengine_mcp_macros::{mcp_server, mcp_tools, mcp_resource};

#[mcp_server(name = "My Server")]
#[derive(Clone)]
pub struct MyServer;

#[mcp_tools]
impl MyServer {
    /// A tool that performs an action
    pub async fn my_tool(&self, input: String) -> anyhow::Result<String> {
        Ok(format\!("Processed: {}", input))
    }
    
    /// A resource that provides read-only data
    #[mcp_resource(
        uri_template = "my-server://data/{id}",
        name = "server_data",
        description = "Server data by ID"
    )]
    pub async fn get_data(&self, id: String) -> anyhow::Result<MyData> {
        // Return data for the given ID
    }
}

πŸŽ‰ What's Next

This release represents a major milestone in MCP framework development, providing complete resource support while maintaining full backward compatibility.

View the full changelog and migration guide β†’


Install: cargo install pulseengine-mcp-cli
Template: Use our template repository to get started
Docs: Framework Documentation
MCP Spec: Model Context Protocol