Releases: grparry/MCPBuckle
v2.1.0 - Claude Code CLI Compatibility Fix
🔧 Fixed - Claude Code CLI Compatibility
This minor release resolves critical compatibility issues between MCPBuckle-generated MCP tools and Claude Code CLI.
Key Fixes
-
Critical Fix: Optional Route Parameter Parsing - Resolved Claude Code CLI compatibility issues with ASP.NET Core optional route parameters
- Fixed regex pattern in
ExtractRouteParameters()method to properly strip?from parameter names like{customerId?} - Updated regex from
@"\{([^}:]+)(?::[^}]+)?\}"to@"\{([^}:?]+)(?:\?)?(?::[^}]+)?\}" - Parameter names now correctly parse as
customerIdinstead ofcustomerId? - Resolves Claude Code CLI error:
Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$'
- Fixed regex pattern in
-
Enhanced Type Mapping: Nullable Type Support - Added support for nullable types in route parameter type detection
- Updated
MapDotNetTypeToJsonSchemaType()method to handle nullable types likeint?,bool?, etc. - Nullable types are now correctly unwrapped to their underlying type for JSON schema generation
int?now properly maps to"integer"instead of"object"
- Updated
Quality Assurance
- 3 New TDD Tests Added - Comprehensive test coverage for the optional route parameter fixes:
ExtractRouteParameters_WithOptionalParameter_ShouldRemoveQuestionMark- Validates single optional parameter parsingExtractRouteParameters_WithMultipleOptionalParameters_ShouldRemoveAllQuestionMarks- Validates multiple optional parametersExtractRouteParameters_WithOptionalParameterAndConstraints_ShouldHandleBoth- Validates optional parameters with route constraints
- 128/128 Tests Passing - All tests continue to pass, ensuring backward compatibility
- End-to-End Validation - Verified all 247 MCP tools now have property names compatible with Claude Code CLI
Impact
This fix specifically addresses Claude Code CLI integration issues where optional ASP.NET Core route parameters (using {parameter?} syntax) were generating invalid property names in MCP schemas. Before version 2.1.0, tools with optional route parameters would be rejected by Claude Code CLI due to invalid character patterns. With version 2.1.0, all MCP-generated tools are fully compatible with Claude Code CLI's property naming requirements.
Full Changelog: v2.0.0...v2.1.0
MCPBuckle v1.3.0
This release enhances the tool discovery capabilities of MCPBuckle by providing crucial information for tool invocation.
Key Changes:
Enhanced Tool Metadata: The ControllerDiscoveryService now populates the Annotations property of each discovered McpTool with the following key-value pairs:
"HandlerTypeAssemblyQualifiedName": The assembly-qualified name of the controller class.
"MethodName": The name of the action method. This allows consuming libraries (such as MCPInvoke) to accurately identify and invoke the correct handler and method for a given tool.
This update improves the integration capabilities of MCPBuckle, making it easier for AI agents and other systems to execute the tools defined by your API.
Feel free to adjust it as you see fit!
Initial release of MCPBuckle
[1.0.1] - 2025-04-23
Added
- Initial release of MCPBuckle
- Core MCP models (McpContext, McpTool, McpSchema)
- Controller discovery service to extract API metadata
- XML documentation parsing service
- Middleware to serve static MCP JSON at
/.well-known/mcp-context - Extension methods for easy integration
- Configuration options for customization
- Enhanced schema generation for complex types
- Support for required fields, enums, arrays, and nested objects
- Multi-targeting for .NET 6.0, 7.0, 8.0, and 9.0