Skip to content

Releases: JuliaSMLM/ModelContextProtocol.jl

v0.4.0

14 Dec 22:19
252d8b5

Choose a tag to compare

ModelContextProtocol v0.4.0

Diff since v0.3.1

New Features

  • Added input_schema field to MCPTool for defining arbitrary JSON Schema
  • Enables arrays, enums, nested objects, and all valid JSON Schema constructs
  • When input_schema is provided, it takes precedence over the parameters field

Closes #10

Breaking changes

None. This release is fully backward compatible with v0.3.x. Existing tools using the parameters field continue to work unchanged.

Merged pull requests:

  • Bump actions/checkout from 5 to 6 (#19) (@dependabot[bot])
  • feat: Add input_schema support for complex tool parameters (#23) (@kalidke)

Closed issues:

  • Supporting HTTP with SSE transport (#7)
  • Support more complex parameters schemas (#10)
  • Simple example from README gives errors within the Inspector (#15)

v0.3.1

14 Dec 04:14
29e146b

Choose a tag to compare

ModelContextProtocol v0.3.1

Diff since v0.3.0

Merged pull requests:

  • fix: Correct protocol version negotiation per MCP spec (#21) (@kalidke)

v0.3.0

16 Nov 20:43
971b18e

Choose a tag to compare

ModelContextProtocol v0.3.0

Diff since v0.2.1

Breaking Changes

This release introduces MCP protocol 2025-06-18 compliance with several breaking changes:

1. Server Version Default Changed

  • mcp_server() version parameter default: "2024-11-05""1.0.0"
  • The version field now represents YOUR server's version, not the MCP protocol version
  • Migration: Explicitly specify version parameter if you relied on the old default

2. Protocol Version Strictly Enforced

  • Only accepts MCP-Protocol-Version: 2025-06-18
  • Returns error for unsupported protocol versions
  • Migration: Update clients to send correct protocol version header

3. JSON-RPC Batching Removed

  • Per MCP 2025-06-18 specification, batch requests now return errors
  • Migration: Send requests individually instead of batching

4. Auto-Registration File Format

  • Component files must have the component as the last expression
  • Old behavior searched all module variables
  • Migration: Ensure component definition is the last line in your files

New Features

HTTP Transport with SSE

  • Full Streamable HTTP transport implementation
  • Server-Sent Events for real-time streaming
  • Session management with Mcp-Session-Id headers
  • Origin validation and security features

Auto-Registration System

  • Directory-based component organization (tools/, resources/, prompts/)
  • Automatic discovery and loading
  • Support for both stdio and HTTP transports

New Content Types

  • ResourceLink for referencing resources in tool results (MCP 2025-06-18)

Improvements

  • Enhanced documentation (transport guide, auto-registration guide, Claude integration)
  • Transport abstraction layer (StdioTransport, HttpTransport)
  • Better error handling and protocol compliance
  • Fixed broken documentation examples
  • Julia 1.12+ compatibility fixes
  • All 233 tests passing

See CHANGELOG.md for detailed migration guide.

Merged pull requests:

  • v0.3.0: HTTP Transport, Auto-Registration, and MCP 2025-06-18 Compliance (#18) (@kalidke)

Closed issues:

  • ZOD errors when connecting to MCP server (#16)

v0.2.1

22 Jul 19:37
a1a597c

Choose a tag to compare

ModelContextProtocol v0.2.1

Diff since v0.2.0

Merged pull requests:

  • v0.2.1: Add comprehensive API documentation and reorganize tests (#12) (@kalidke)

v0.2.0

15 Jul 18:59

Choose a tag to compare

ModelContextProtocol v0.2.0

Diff since v0.1.2

ModelContextProtocol.jl v0.2.0

Breaking Changes

  • Default return type changed: The default return_type for MCPTool has changed from TextContent to Vector{Content}. This enables tools to more easily return multiple content items of different types.

    Migration Guide:

    • If your tools expect to return a single content item, explicitly set return_type = TextContent in your tool definition
    • Single content items are automatically wrapped in vectors when Vector{Content} is expected, providing backward compatibility
    • Example migration:
      # Before (implicit TextContent)
      MCPTool(name="my_tool", handler=() -> "result")
      
      # After (explicit TextContent)
      MCPTool(name="my_tool", handler=() -> "result", return_type=TextContent)

New Features

  • Tools can now return multiple content items of mixed types (TextContent, ImageContent, EmbeddedResource)
  • Added support for tools to return CallToolResult directly for full control over responses
  • Added parameter defaults support via default field in ToolParameter
  • New content2dict utility function for serializing different content types

Improvements

  • Enhanced type validation and conversion logic in tool handlers
  • Better support for clients that send null params (e.g., Cursor)
  • Improved error messages for type mismatches
  • Comprehensive test coverage for multi-content scenarios

Merged pull requests:

  • Change default MCPTool return_type to Vector{Content} (#11) (@asinghvi17)

v0.1.2

04 Apr 16:20
91d634b

Choose a tag to compare

ModelContextProtocol v0.1.2

Diff since v0.1.1

Minor Update

  • included ping handler
  • add Julia version 1.10 LTS support
  • minor performance improvements to message handling.

Merged pull requests:

v0.1.1

30 Mar 04:53
12d42e9

Choose a tag to compare

ModelContextProtocol v0.1.1

Diff since v0.1.0

Merged pull requests:

  • Doc and minor performance and type flexibility updates (#5) (@kalidke)

v0.1.0

20 Jan 22:54
ce197a7

Choose a tag to compare

ModelContextProtocol v0.1.0

Merged pull requests: