Yuki Minamiya
4c3268ccb1
Add audience role validation for MCP::Annotations per MCP specification
...
The MCP specification constrains `Annotations.audience` to an array of
`Role` values (`"user"` or `"assistant"`), but the Ruby SDK accepts any
value. The other official SDKs already enforce this (TypeScript, Python,
and PHP).
This follows the existing pattern in `MCP::Icon`, which validates its
constrained `theme` value in the constructor and raises `ArgumentError`.
Added tests in `test/mcp/annotations_test.rb`:
- valid `audience` (`["user"]`, `["assistant"]`, `["user", "assistant"]`,
and an empty array) is accepted
- an unknown role, a mixed valid/invalid array, or a non-array `audience`
raises `ArgumentError`
Existing tests used `["developers"]`, which is not a valid `Role`, and are
updated to `["user"]`.
The full unit suite and RuboCop pass locally.
Strictly speaking this is a breaking change: a caller that currently passes
an invalid `audience` (e.g. `["developers"]`) will now get an
`ArgumentError`. Such values already violate the MCP specification, and
`nil` / valid-role values are unaffected.
2026-06-22 01:13:17 +09:00
..
client
Merge pull request #408 from koic/dcr_application_type
2026-06-17 10:57:19 +09:00
prompt
Add _meta field to resource, content, and result classes
2026-04-11 15:08:55 +09:00
resource
Add _meta field to resource, content, and result classes
2026-04-11 15:08:55 +09:00
server
Isolate Stateless Requests in Ephemeral Sessions per SEP-2567
2026-06-16 11:13:15 +09:00
tool
Speed Up Tool::Schema Validation by 5x to 100x
2026-06-01 21:47:30 +09:00
annotations_test.rb
Add audience role validation for MCP::Annotations per MCP specification
2026-06-22 01:13:17 +09:00
cancellation_test.rb
Support notifications/cancelled per MCP specification
2026-05-03 04:02:22 +09:00
client_test.rb
Standardize Resource Not Found Errors on -32602 with URI Data per SEP-2164
2026-06-14 01:03:23 +09:00
configuration_test.rb
feat: add opt-in tool output validation
2026-05-12 16:20:43 -04:00
content_test.rb
Add _meta field to resource, content, and result classes
2026-04-11 15:08:55 +09:00
icon_test.rb
Replace assert_empty with assert_equal using explicit literals
2026-02-24 16:09:34 +09:00
instrumentation_test.rb
Add around_request hook for request instrumentation
2026-04-11 13:54:47 +09:00
logging_message_notification_test.rb
Add logging support
2026-01-26 22:23:46 +09:00
methods_test.rb
Add roots/list and notifications/roots/list_changed support
2026-04-15 02:39:14 +09:00
progress_test.rb
Auto-set server.transport in Transport#initialize
2026-04-09 12:08:55 +09:00
prompt_test.rb
Fix Prompt#validate_arguments! crash when arguments are nil
2026-03-01 17:21:41 +09:00
resource_template_test.rb
Add annotations field to MCP::Resource and MCP::ResourceTemplate per MCP specification
2026-06-14 16:05:25 +09:00
resource_test.rb
Add annotations field to MCP::Resource and MCP::ResourceTemplate per MCP specification
2026-06-14 16:05:25 +09:00
server_cancellation_test.rb
Support notifications/cancelled per MCP specification
2026-05-03 04:02:22 +09:00
server_context_test.rb
Fix a SyntaxError on Ruby 2.7.0 caused by arguments forwarding syntax
2026-06-20 01:01:07 +09:00
server_elicitation_test.rb
Support notifications/cancelled per MCP specification
2026-05-03 04:02:22 +09:00
server_notification_test.rb
Auto-set server.transport in Transport#initialize
2026-04-09 12:08:55 +09:00
server_progress_test.rb
Auto-set server.transport in Transport#initialize
2026-04-09 12:08:55 +09:00
server_roots_test.rb
Add roots/list and notifications/roots/list_changed support
2026-04-15 02:39:14 +09:00
server_sampling_test.rb
Support notifications/cancelled per MCP specification
2026-05-03 04:02:22 +09:00
server_session_ping_test.rb
Support server-to-client ping per MCP specification
2026-05-22 11:28:51 +09:00
server_test.rb
Document That Tool Arguments Arrive with Symbol Keys
2026-06-16 03:09:55 +09:00
string_utils_test.rb
Fix ReDoS vulnerability in StringUtils#underscore
2026-01-09 01:14:52 +09:00
tool_test.rb
Speed Up Tool::Schema Validation by 5x to 100x
2026-06-01 21:47:30 +09:00
trace_context_test.rb
Support W3C Trace Context Propagation via _meta per SEP-414
2026-06-12 14:36:24 +09:00
transport_test.rb
Remove redundant require statements
2025-08-02 00:57:31 +09:00