Set default protocol version to the latest specification
Currently, MCP has three versions: 2024-11-05, 2025-03-26, and 2025-06-18. - https://modelcontextprotocol.io/specification/2024-11-05/basic/transports (stdio and HTTP with SSE) - https://modelcontextprotocol.io/specification/2025-03-26/basic/transports (stdio and Streamable HTTP) - https://modelcontextprotocol.io/specification/2025-06-18/basic/transports (stdio and Streamable HTTP) The newer specification supports stdio and Streamable HTTP as transport mechanisms. Only the oldest version, 2024-11-05, supports stdin and HTTP with SSE, but that version is now considered legacy. Given the current behavior of the Ruby SDK, it likely makes more sense to set the default protocol version to the latest one, 2025-06-18, rather than the oldest, 2024-11-05. Ideally, the implementation should adjust its behavior based on the version, but this PR is limited to updating the default protocol version only.
This commit is contained in:
parent
e4d5f19574
commit
2b36bf6b2d
4 changed files with 6 additions and 6 deletions
|
|
@ -148,7 +148,7 @@ server.notify_tools_list_changed()
|
|||
#### Rails Controller
|
||||
|
||||
When added to a Rails controller on a route that handles POST requests, your server will be compliant with non-streaming
|
||||
[Streamable HTTP](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http) transport
|
||||
[Streamable HTTP](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#streamable-http) transport
|
||||
requests.
|
||||
|
||||
You can use the `Server#handle_json` method to handle requests.
|
||||
|
|
@ -340,7 +340,7 @@ MCP::Server.protocol_version = nil
|
|||
|
||||
If an invalid `protocol_version` value is set, an `ArgumentError` is raised.
|
||||
|
||||
Be sure to check the [MCP spec](https://modelcontextprotocol.io/specification/2025-03-26) for the protocol version to understand the supported features for the version being set.
|
||||
Be sure to check the [MCP spec](https://modelcontextprotocol.io/specification) for the protocol version to understand the supported features for the version being set.
|
||||
|
||||
### Exception Reporting
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
module MCP
|
||||
class Configuration
|
||||
DEFAULT_PROTOCOL_VERSION = "2024-11-05"
|
||||
SUPPORTED_PROTOCOL_VERSIONS = ["2025-06-18", "2025-03-26", DEFAULT_PROTOCOL_VERSION]
|
||||
DEFAULT_PROTOCOL_VERSION = "2025-06-18"
|
||||
SUPPORTED_PROTOCOL_VERSIONS = [DEFAULT_PROTOCOL_VERSION, "2025-03-26", "2024-11-05"]
|
||||
|
||||
attr_writer :exception_reporter, :instrumentation_callback, :protocol_version, :validate_tool_call_arguments
|
||||
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ module MCP
|
|||
body = JSON.parse(response[2][0])
|
||||
assert_equal "2.0", body["jsonrpc"]
|
||||
assert_equal "123", body["id"]
|
||||
assert_equal "2024-11-05", body["result"]["protocolVersion"]
|
||||
assert_equal "2025-06-18", body["result"]["protocolVersion"]
|
||||
end
|
||||
|
||||
test "handles GET request with valid session ID" do
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ module MCP
|
|||
jsonrpc: "2.0",
|
||||
id: 1,
|
||||
result: {
|
||||
protocolVersion: "2024-11-05",
|
||||
protocolVersion: "2025-06-18",
|
||||
capabilities: {
|
||||
prompts: { listChanged: true },
|
||||
resources: { listChanged: true },
|
||||
|
|
|
|||
Loading…
Reference in a new issue