Skip to content

Latest commit

 

History

History
82 lines (76 loc) · 4.5 KB

File metadata and controls

82 lines (76 loc) · 4.5 KB

Revision history for mcp

0.3.0.0 -- 2025-06-18

  • Protocol Update: Full support for MCP protocol version 2025-06-18 with complete schema compliance
  • Major Type System Updates:
    • Add BaseMetadata interface with name/title distinction for consistent naming across all types
    • Rename Content to ContentBlock for consistency with official schema
    • Add ResourceLink content type for referencing resources in prompts and tool results
    • Create restricted SamplingContent type (text, image, audio only) for SamplingMessage
    • Fix ResourceTemplateReference to use correct type "ref/resource" with uri field
  • Enhanced Features:
    • Add tool output schema support (outputSchema field in Tool type)
    • Add elicitation system for interactive user input forms with primitive schema validation
    • Add enhanced metadata with lastModified timestamps and _meta fields throughout
    • Add context parameter to completion requests for better autocompletion
    • Add structured content support for tool results (structuredContent field)
    • Add instructions field to InitializeResult for server usage hints
  • Schema Compliance:
    • Update all types to include optional _meta fields where specified in schema
    • Fix Reference union to include ResourceTemplateReference instead of ResourceReference
    • Ensure CreateMessageResult properly extends SamplingMessage with restricted content
    • Add ResourceTemplateReference type with correct schema-compliant structure
    • Complete type exports for all new schema elements
  • Documentation and Examples:
    • Add comprehensive documentation for CompleteParams with field descriptions
    • Update all example code to include new required fields (_meta, title, outputSchema, etc.)
    • Update README with latest protocol version information
    • Enhanced Cabal description highlighting 2025-06-18 protocol support
  • BREAKING CHANGE: Various type signatures updated to match new protocol
    • Content renamed to ContentBlock (legacy alias provided for backward compatibility)
    • SamplingMessage content restricted to TextContent | ImageContent | AudioContent
    • ResourceTemplateReference structure changed to match schema
    • Reference union now uses ResourceTemplateReference instead of ResourceReference

0.2.0.0 -- 2025-01-18

  • Add HTTP transport support following MCP specification
  • Implement full OAuth 2.0 authorization flow with mandatory PKCE
    • OAuth metadata discovery at /.well-known/oauth-authorization-server
    • Dynamic client registration at /register endpoint
    • /authorize endpoint for authorization requests with PKCE validation
    • /token endpoint for authorization code and refresh token grants
    • In-memory storage for authorization codes, tokens, and registered clients
    • Automatic user approval for demo mode
    • Support for public clients (no client secret required)
  • Add OAuth 2.1 authentication module (MCP.Server.Auth)
    • JWT token validation and introspection
    • PKCE code verifier/challenge generation and validation (S256 method)
    • OAuth metadata discovery with ToJSON/FromJSON instances
    • Support for multiple OAuth providers (Google, GitHub, custom)
    • Token expiration and not-before time validation
  • OAuth implementation features:
    • Returns empty string for client_secret (public clients)
    • Validates redirect URIs and client IDs
    • 10-minute authorization code expiry
    • 1-hour access token validity
    • Refresh token support with rotation
    • Proper JWT token generation using servant-auth-server
    • Fixed authentication loop issue by replacing UUID tokens with JWT
  • Add example OAuth resources:
    • OAuth demo client script (examples/oauth-client-demo.sh)
    • OAuth metadata test script (test-oauth-metadata.sh)
    • Updated HTTP server example with --oauth flag
  • Fix all compiler warnings with -Wall enabled
  • Clean up unused imports and parameters
  • Add uuid dependency for token generation
  • BREAKING CHANGE: Refactor HTTP server to be production-ready:
    • Extract hardcoded demo values into configurable parameters
    • Add httpBaseUrl and httpProtocolVersion to HTTPServerConfig
    • Expand OAuthConfig with timing, OAuth parameters, and demo settings
    • Move demo-specific configuration to examples/http-server.hs
    • Add defaultDemoOAuthConfig helper for testing
    • Make server library more robust and configurable for production use
  • Package metadata cleanup and code formatting improvements
  • Remove unused MyLib module
  • Add MCP configuration and examples
  • Published to Hackage

0.1.0.0 -- YYYY-mm-dd

  • First version. Released on an unsuspecting world.