Changelog
Source:NEWS.md
plumber2mcp 0.4.0
Breaking Changes
-
Protocol Version Update: Upgraded from MCP protocol version 2024-11-05 to 2025-06-18
- This is a breaking change for clients still using the old protocol version
- Clients must support protocol version 2025-06-18 to communicate with this version
Critical Bug Fixes
-
Fixed default parameter value serialization (#issue-tbd)
- Default values using
c(),list(), and other R expressions are now correctly evaluated - Previously,
c("a", "b")was serialized as["c", "a", "b"](incorrect) - Now correctly serialized as
["a", "b"](correct) - This fixes Claude Desktop compatibility issues where tools were disabled due to invalid schemas
- Added comprehensive test suite (22 new tests) for default value handling
- Fixes validation errors: “malformed default” in MCP schema validators
- Default values using
-
Fixed description field being array instead of string (#issue-tbd)
- When endpoints had multiple documentation sources (plumber + roxygen), description was an array
- Previously:
{"description": ["First doc", "Second doc"]}(incorrect - violates MCP spec) - Now:
{"description": "First doc"}(correct - single string as required by MCP spec) - Prioritizes plumber-specific documentation (#* comments) over roxygen docs (#’ comments)
- Filters out NA values and empty strings before processing
- This fixes Claude Desktop showing servers as disabled/grayed out
- Added comprehensive test suite (17 new tests) for description handling
- Ensures strict MCP schema compliance
New Features
MCP Protocol 2025-06-18 Support
- HTTP Header Support: Added MCP-Protocol-Version header for HTTP transport (required by new spec)
- Structured Tool Output: Re-enabled outputSchema support for tools (now standard feature in 2025-06-18)
-
Tool Titles: Added optional title fields to tools for human-friendly display names
- Automatically extracted from roxygen comments or generated from method and path
Improvements
- Better protocol negotiation during initialization
- Enhanced tool definitions with both machine-readable names and human-friendly titles
- Output schemas now provide AI assistants with structured format expectations
- All 393 tests passing with new protocol version
Technical Details
- Updated all protocol version strings throughout codebase
- Modified HTTP handler to set and read MCP-Protocol-Version header
- Updated both HTTP and stdio transports to include new fields
- Enhanced handle_tools_list to include title and outputSchema when available
- Package documentation updated to reflect new protocol version
plumber2mcp 0.3.0
New Features
Prompts Support
- Added full MCP Prompts support allowing you to define reusable prompt templates that AI assistants can discover and use
- New
pr_mcp_prompt()function to register prompt templates with your MCP server - Prompts support optional arguments with required/optional parameters
- Prompts can return simple strings, structured messages, or multi-turn conversations
- Both HTTP and stdio transports fully support prompts
- Added
prompts/listandprompts/getJSON-RPC handlers - Updated
initializeresponse to advertise prompts capability
Enhanced Testing
- Added comprehensive edge case testing (24 new tests)
- Added integration tests for combined features (10 new tests)
- Added security and validation tests (18 new tests)
- Total test count increased from ~69 to ~121 tests (75% increase)
- Tests now cover error handling, malformed inputs, injection attacks, and real-world scenarios
Improvements
- Enhanced schema generation now includes output schemas
- Better error handling for malformed JSON-RPC requests
- Improved handling of NULL, NA, and empty values
- More robust handling of complex nested data structures
- Added support for functions with req/res parameters
plumber2mcp 0.2.0
New Features
Resources Support
- Added MCP Resources support for exposing R content to AI assistants
- New
pr_mcp_resource()function to add custom resources - New
pr_mcp_help_resources()convenience function for R help topics - Resources can provide documentation, data summaries, session info, and more
- Added
resources/listandresources/readhandlers
Stdio Transport
- Added native stdio transport support for standard MCP clients
- New
pr_mcp_stdio()function for stdio-based servers - Compatible with mcp-cli, Claude Desktop, and other MCP clients
- Handles JSON-RPC over stdin/stdout
plumber2mcp 0.1.0
Initial Release
Core Features
- HTTP transport for MCP protocol
- Automatic endpoint discovery from Plumber APIs
- JSON-RPC 2.0 protocol implementation
- Tool schema generation from function signatures
- Support for include/exclude endpoint filters
- Customizable server name, version, and mount path