Koichi ITO
26bbdfc28c
Merge pull request #180 from koic/refactor_mcp_server
...
Refactor to extract duplicate error tool response in `MCP::Server`
2025-11-21 02:43:05 +09:00
Koichi ITO
3c452b807c
Merge pull request #176 from koic/tweak_the_readme_doc_for_stateless
...
[Doc] Tweak the README for stateless
2025-11-20 10:10:31 +09:00
Koichi ITO
1c4ac125e1
Refactor to extract duplicate error tool response in MCP::Server
...
Consolidates four identical constructions of error `Tool::Response` in
`handle_call_tool_request` into a single private `error_tool_response` method,
reducing duplication and improving maintainability. No behavior change.
2025-11-14 13:54:44 +09:00
Koichi ITO
b8719ce04f
[Doc] Tweak the README for stateless
...
`stateless` was supported in #101 . However, as shown in the official specification below,
the supported transports are stdout and Streamable HTTP, and whether it is stateless is
a detail specific to Streamable HTTP:
https://modelcontextprotocol.io/specification/2025-06-18/basic/transports
This PR updates the documentation to describe `stateless` as part of the Streamable HTTP section.
2025-11-08 12:55:35 +09:00
Koichi ITO
400a56e83d
Merge pull request #101 from 1debit/stateless
...
Add `stateless` feature to Streamable HTTP protocol
2025-11-07 09:11:33 +09:00
Hiren Hiranandani
08a84c7320
Introduce stateless mode to allow for HA
...
- Create failing tests for `stateless` mode
- Implement `stateless` mode by turning of SSE in Streamable HTTP,
making the interaction a standard HTTP Req/Resp
2025-11-04 15:26:12 -08:00
Koichi ITO
55dfbdc3b6
Merge pull request #174 from koic/extract_release_from_readme_to_a_new_file
...
[Docs] Extract release documentation to RELEASE.md
2025-11-04 12:33:39 +09:00
Koichi ITO
5b737eb9c3
[Docs] Extract release documentation to RELEASE.md
...
README is generally better kept focused on information that is most valuable to users.
For that reason, release procedures that are not relevant to end users have been moved to
a separate RELEASE.md file.
2025-11-04 11:13:39 +09:00
Ateş Göral
3f5f6f8494
Internalize json_rpc_handler along with an XSS vulnerability fix ( #175 )
...
* Copy-paste of files from original gem
* Update copied code to match repo style
* Use the lib instead of the gem
2025-10-30 17:43:31 -04:00
Koichi ITO
c152f15a25
Merge pull request #173 from koic/add_bug_tracker_url_to_gemspec
...
Add bug tracker URL metadata to gemspec
2025-10-29 09:36:38 +08:00
Koichi ITO
fc59f440b0
Add bug tracker URL metadata to gemspec
...
It would be convenient if users could visit to the bug tracker directly from the published RubyGems.
https://rubygems.org/gems/mcp
2025-10-28 08:15:30 +09:00
Topher Bullock
ea216047dc
Merge pull request #169 from koic/remove_redundant_require_rack_gem
...
Remove redundant `rack` gem
2025-10-27 11:06:01 -04:00
Koichi ITO
cdf5b1cf92
Merge pull request #171 from koic/fix_incorrect_schema_name
...
[Doc] Fix incorrect schema name
2025-10-27 00:24:31 +09:00
Koichi ITO
fb67a9b969
[Doc] Fix incorrect schema name
...
This PR fixes an incorrect schema name.
The test code already uses `items:`.
https://github.com/modelcontextprotocol/ruby-sdk/blob/v0.4.0/test/mcp/tool/output_schema_test.rb#L135-L141
Fixes #170 .
2025-10-26 01:24:45 +09:00
Koichi ITO
61d48cd6d9
Merge pull request #165 from Jflick58/fix/make-tool-error-spec-compliant
...
Fix tool error handling to follow MCP spec
2025-10-22 10:58:29 +09:00
Justin Flick
389cc2e8e6
Fix tool error handling to follow MCP spec
...
Tool execution errors now return successful responses with isError: true
instead of JSON-RPC protocol errors, per the MCP specification.
This allows clients to distinguish between protocol-level errors and
tool execution errors, providing better error context.
Fixes #159
2025-10-21 18:33:42 -07:00
Koichi ITO
4851a16d39
Remove redundant rack gem
...
This PR removes the existing `rack` dependency.
`rack` is a dependency of `rackup`.
2025-10-20 19:24:21 +09:00
Koichi ITO
ad87c8d805
Merge pull request #163 from dak2/add-client-prompts-support
...
Add `prompts/list` and `prompts/get` support to client
2025-10-19 02:24:36 +09:00
Koichi ITO
b36aea0716
Merge pull request #168 from koic/add_changelog_url_metadata_to_gemspec
...
Add changelog URL metadata to gemspec
2025-10-17 03:31:56 +09:00
Koichi ITO
e03222d206
Add changelog URL metadata to gemspec
...
It would be convenient if users could trace the change history directly from the published RubyGems.
https://rubygems.org/gems/mcp
2025-10-16 11:43:41 +09:00
Topher Bullock
944660a8b0
Merge pull request #167 from modelcontextprotocol/release-0.4.0
...
v0.4.0
Release v0.4.0
2025-10-15 14:56:18 -04:00
Topher Bullock
9aafc9add5
Release 0.4.0
2025-10-15 01:25:05 -04:00
dak2
e88deb6b65
Add prompts/list and prompts/get support to client
...
This commit adds two new methods to `MCP::Client`:
- prompts: Lists available prompts from the server via `prompts/list`
- get_prompt: Retrieves a specific prompt by name via `prompts/get`
Both methods follow the same pattern as the existing resources support,
including comprehensive test coverage and README documentation updates.
ref. https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2025-03-26/server/prompts.mdx#protocol-messages
2025-10-15 13:16:41 +09:00
Koichi ITO
f312695798
Merge pull request #153 from modelcontextprotocol/prompt-spec-compliance
...
fix `Prompt` type gaps with 2025-06-18 spec
2025-10-15 01:22:45 +09:00
Koichi ITO
f8557e5ceb
Merge pull request #166 from dak2/fix-client-tools-test
...
Fix and add test for client tools functionality
2025-10-14 01:49:22 +09:00
dak2
7b4ece294b
Fix and add test for client tools functionality
...
- Add test for empty tools array response to ensure client handles empty
results correctly
- Update call_tool test to use proper content format (array of content
objects) instead of plain string based on
modelcontextprotocol spec.
https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2025-03-26/server/tools.mdx#calling-tools
Follow up: modelcontextprotocol#160
2025-10-13 11:14:48 +09:00
Koichi ITO
92a08bafc7
Merge pull request #162 from dak2/fix-client-resouces-test
...
Fix test for empty resources response of client
2025-10-13 02:02:25 +09:00
Koichi ITO
5b57563738
Merge pull request #161 from koic/mention_mcp_client_resources_methods_to_readme
...
[Doc] Mention `resources/list` and `resources/read` in the README
2025-10-12 11:28:30 +09:00
dak2
ad3c1b1b72
Fix test for empty resources response
...
Update test_resources_returns_empty_array_when_no_resources to use
correct mock response format with empty resources array instead of
empty result object. Also reorder test to group with other resources
tests.
Follow up: https://github.com/modelcontextprotocol/ruby-sdk/pull/160
2025-10-12 00:44:17 +09:00
Koichi ITO
93215f4d52
[Doc] Mention resources/list and resources/read in the README
...
Follow-up to https://github.com/modelcontextprotocol/ruby-sdk/pull/160
2025-10-12 00:33:01 +09:00
Koichi ITO
c51060031a
Merge pull request #160 from modelcontextprotocol/client-add-resource-support
...
add `resources/list` and `resources/read` support to client
2025-10-11 01:16:06 +09:00
Topher Bullock
2d1a1da937
add resources/list and resources/read support to client
2025-10-10 10:51:42 -04:00
Topher Bullock
a1dd3dd005
add _meta field to Prompt
...
> See [General fields: `_meta`](/specification/2025-06-18/basic/index#meta) for notes on `_meta` usage.
51e093b8eb/schema/2025-06-18/schema.ts (L680-L683)
2025-10-10 09:05:55 -04:00
Koichi ITO
b10a469013
Merge pull request #157 from koic/fix_a_typo_for_streamable_http_transport
...
[Doc] Fix incorrect example code in README
2025-10-10 01:03:52 +09:00
Koichi ITO
a217f70d95
[Doc] Fix incorrect example code in README
...
Follow-up to https://github.com/modelcontextprotocol/ruby-sdk/pull/33 .
A `NameError` occurs because `MCP::Transports::HTTP` does not exist.
The correct constant is `MCP::Server::Transports::StreamableHTTPTransport`.
2025-10-09 11:44:58 +09:00
Koichi ITO
77370cbb93
Merge pull request #154 from koic/remove_redundant_requiring_transports
...
Remove unnecessary transport requires
2025-10-08 12:06:31 +09:00
Koichi ITO
bee6eace22
Remove unnecessary transport requires
...
The transports are already required by `require 'mcp'`:
https://github.com/modelcontextprotocol/ruby-sdk/blob/v0.3.0/lib/mcp.rb#L16-L17
2025-10-07 14:10:48 +09:00
Topher Bullock
701f6faab6
add title field to prompt argument
...
`PromptArgument extends BaseMetadata`, which includes both name and
title
- 51e093b8eb/schema/2025-06-18/schema.ts (L686-L698)
- 51e093b8eb/schema/2025-06-18/schema.ts (L294-l309)
2025-10-06 09:35:42 -04:00
Koichi ITO
b5e344e456
Merge pull request #132 from dr03ramos/patch-1
...
Update metaschema URI format in input_schema.rb
2025-10-06 10:34:47 +09:00
Koichi ITO
f226e57ce3
Merge pull request #152 from modelcontextprotocol/dependabot/github_actions/actions/checkout-5
...
Bump actions/checkout from 3 to 5
2025-10-05 02:47:54 +09:00
dependabot[bot]
e41d961e4c
Bump actions/checkout from 3 to 5
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 3 to 5.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v3...v5 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-10-04 16:35:48 +00:00
Koichi ITO
04de0c8be9
Merge pull request #151 from koic/move_dependabot_yml
...
Move dependabot.yml into .github
2025-10-05 01:35:06 +09:00
ramos
4c13f6dc08
Update metaschema URI format in input_schema.rb and output_schema.rb for
...
cross-compatibility across different OS
2025-10-03 17:29:50 -03:00
Koichi ITO
435b8c8b22
Move dependabot.yml into .github
...
Follow-up to https://github.com/modelcontextprotocol/ruby-sdk/pull/138 .
The `dependabot.yml` file must be placed under the `.github` directory,
but it was mistakenly placed outside of it.
2025-10-04 00:14:49 +09:00
Koichi ITO
c5f2f98077
Merge pull request #150 from koic/set_default_content_to_an_empty_array_instead_of_nil
...
Set default `content` to an empty array instead of `nil`
2025-10-03 10:22:46 +09:00
Koichi ITO
0034952df9
Set default content to an empty array instead of nil
...
Follow-up to https://github.com/modelcontextprotocol/ruby-sdk/pull/147 .
According to the specification schema, `content` is not optional and therefore cannot be omitted:
```typescript
interface CallToolResult {
_meta?: { [key: string]: unknown };
content: ContentBlock[];
isError?: boolean;
structuredContent?: { [key: string]: unknown };
[key: string]: unknown;
}
```
https://modelcontextprotocol.io/specification/2025-06-18/schema#calltoolresult
Instead of `nil`, an empty array is set as the default value.
There may be a better value for `content`, but at the very least it should not be missing.
2025-10-02 23:52:19 +09:00
Tyler Untisz
73cec83b99
Add support for _meta field on tool schema ( #124 )
...
* Add support for _meta field on tool schema
* use `meta` naming for `_meta` field on tool schema
* apply suggestions to fix `_meta` tests
Co-authored-by: Ateş Göral <ates@magnetiq.com>
* Update lib/mcp/tool.rb
Co-authored-by: Ateş Göral <ates@magnetiq.com>
* Update lib/mcp/tool.rb
Co-authored-by: Ateş Göral <ates@magnetiq.com>
---------
Co-authored-by: Topher Bullock <topherbullock@users.noreply.github.com>
Co-authored-by: Ateş Göral <ates@magnetiq.com>
2025-10-01 17:21:27 -04:00
Topher Bullock
c0f7605d25
Merge pull request #149 from juharris/client-call_tool_raw
...
[client] Change call_tool method to return the full tool response to help get structuredContent
2025-10-01 15:37:49 -04:00
Justin Harris
ae60e2d904
[client] Add call_tool_raw method to get the full tool response to help get structuredContent
2025-10-01 15:18:02 -04:00
Koichi ITO
010ae74edc
Merge pull request #145 from koic/add_validation_to_mcp_configuration_setters
...
Add validation to `MCP::Configuration` setters
2025-10-01 10:50:38 +09:00