Commit graph

52 commits

Author SHA1 Message Date
Topher Bullock
2dd9e96b98 add release workflow for publishing to RubyGems 2025-05-30 08:59:52 -04:00
Topher Bullock
91219d30b7
Merge pull request #24 from modelcontextprotocol/update-gemspec
Update gemspec to reflect `mcp` naming
2025-05-29 17:45:45 -04:00
Topher Bullock
bf07d4a02c update README and cursor rule 2025-05-29 17:11:45 -04:00
Topher Bullock
9d2447b351 rename lib/{model_context_protocol => mcp} 2025-05-29 17:11:40 -04:00
Topher Bullock
a09f4786b4 update entrypoint 2025-05-29 17:11:33 -04:00
Topher Bullock
d48de195f6 update gemspec 2025-05-29 17:11:30 -04:00
Ateş Göral
6b49222edb
Merge pull request #22 from koic/fix_incorrect_capabilities_handling_for_completion_complete
Fix incorrect capabilities handling for `completion/complete`
2025-05-26 20:01:57 -04:00
Ateş Göral
1ba438feec
Merge pull request #21 from koic/remove_duplicate_require_relative
Remove redundant `require_relative`
2025-05-26 20:01:21 -04:00
Ateş Göral
34fa53c305
Merge pull request #10 from chrisbutcher/fix-sorbet-runtime-compatibility
Support Sorbet typed tools
2025-05-26 20:01:05 -04:00
Koichi ITO
d3dcde2460 Fix incorrect capabilities handling for completion/complete
This PR fixes incorrect capabilities handling for `completion/complete`.
As specified, the capability of `completion/complete` is `completions`, not `prompts`:
https://modelcontextprotocol.io/specification/2025-03-26/server/utilities/completion#capabilities

Note that in the Ruby SDK, `completion/complete`, like `logging/setLevel`, is not yet implemented.
Therefore, an empty implementation has been added to server.rb.
2025-05-26 17:37:13 +09:00
Koichi ITO
2a9926b51b Remove redundant require_relative
This PR removes a redundant require statement that is already present in the `server.rb`:
89ef9d8/lib/model_context_protocol/server.rb (L5)
2025-05-24 16:06:26 +09:00
Ateş Göral
89ef9d89e5
Merge pull request #18 from koic/remove_dot_ruby_version
Remove .ruby-version for development
2025-05-24 00:39:23 -04:00
Ateş Göral
6435de2f39
Merge pull request #17 from koic/fix_syntax_error_in_examples_of_the_readme
[Doc] Fix invalid syntax in README examples
2025-05-24 00:38:37 -04:00
Ateş Göral
a202b62b1f
Merge pull request #19 from koic/remove_unused_constant
Remove unused constant
2025-05-24 00:36:51 -04:00
Ateş Göral
097f979a30
Merge pull request #20 from koic/fix_a_typo
Fix a typo
2025-05-24 00:35:59 -04:00
Koichi ITO
8f64324f6c Fix a typo
The method that overrides `Methods::RESOURCES_READ` is named `resources_read_handler`,
not `read_resource_handler`:
18f3e87/lib/model_context_protocol/server.rb (L97-L99)
2025-05-24 01:02:04 +09:00
Koichi ITO
9bcb3bf15b Remove unused constant
This PR removes an unused constant that is not referenced anywhere
and was likely left over during development.
2025-05-24 00:53:05 +09:00
Koichi ITO
92ef9e4b63 Remove .ruby-version for development
RubyGems may be used across a wide range of Ruby versions,
from the minimum supported version to development versions.

To allow local development with any Ruby version,
the Ruby version is not locked using a `.ruby-version` file.

This enables developers to work with their preferred Ruby version and
frees repository maintainers from the need to update `.ruby-version`.

Additionally, because testing against supported Ruby versions is performed
in CI before release, the version in `.ruby-version` is not important.
2025-05-23 15:44:17 +09:00
Koichi ITO
e526009b52 [Doc] Fix invalid syntax in README examples
This PR corrects invalid syntax in the README examples.
Additionally, all lambda blocks using `->` have been consistently
formatted with `{}`.
2025-05-23 15:39:59 +09:00
Topher Bullock
18f3e8761e
Merge pull request #8 from kfischer-okarin/auto-determine-capabilities
Auto determine capabilities
2025-05-21 14:23:11 -04:00
Topher Bullock
049bac648d
Merge pull request #16 from koic/use_require_relative
Use `require_relative`
2025-05-21 14:22:44 -04:00
Topher Bullock
4b84f93375
Merge pull request #15 from koic/remove_useless_mcp_json_rpc_module
Remove useless `ModelContextProtocol::JsonRPC` module
2025-05-21 14:13:10 -04:00
Topher Bullock
6c25eec201
Merge pull request #14 from andyw8/andyw8/fix-gitignore
Fix .gitignore entry for `Gemfile.lock`
2025-05-21 14:11:14 -04:00
Koichi ITO
e8620659a6 Use require_relative
If there are many searches in the `$LOAD_PATH` in the user environment,
require will perform unnecessary searches that are not needed.
In contrast, `require_relative` is efficient because it uses a relative path.
2025-05-22 00:56:22 +09:00
Koichi ITO
5f7a5b5d7e Remove useless ModelContextProtocol::JsonRPC module
JSON-RPC is handled by https://github.com/Shopify/json-rpc-handler,
so `ModelContextProtocol::JsonRPC` module seems to have been
unintentionally left behind in the following commit:
c5591be

The files under `model_context_protocol/json_rpc/*.rb` have already been removed.
2025-05-22 00:53:21 +09:00
Andy Waite
19be50d2b9 Fix .gitignore entry for Gemfile.lock
The `Gemfile.lock` entry has a . in front which prevents it from being ignored.
2025-05-21 11:06:26 -04:00
Christopher Butcher
6e782098ec
Update ToolTest to use kwargs in example tool call methods 2025-05-21 09:03:21 -04:00
Christopher Butcher
84e83841b0
Support Sorbet typed tools 2025-05-21 09:03:19 -04:00
Topher Bullock
87cd467c58
Merge pull request #13 from modelcontextprotocol/remove-gemfile-lock
remove `Gemfile.lock`
2025-05-20 17:13:32 -04:00
Topher Bullock
032a28d660
Update lib/model_context_protocol/server.rb 2025-05-20 17:05:29 -04:00
Topher Bullock
00e1ed8fec
Merge branch 'main' into auto-determine-capabilities 2025-05-20 17:01:45 -04:00
Topher Bullock
e89af18e95
Merge pull request #7 from kfischer-okarin/specify-server-version
Allow specifying the server version
2025-05-20 16:58:17 -04:00
Topher Bullock
afa0d8b6ab remove Gemfile.lock
ci on #10 is failing due to darwin deps in the lockfile.
fix ci by removing the gemfile and adding `bundle install` to ci steps
2025-05-20 11:20:05 -04:00
Topher Bullock
bdbf015dd5
Merge pull request #6 from iberianpig/fix/use-utf8-for-stdout
fix: force UTF-8 encoding for stdio streams
2025-05-20 10:48:47 -04:00
Kevin Fischer
0f33dc05e1
Default capability determination 2025-05-14 00:25:49 +09:00
Kevin Fischer
81fa3a9efa
Move default capabilities into a private method 2025-05-14 00:10:32 +09:00
Kevin Fischer
7b390053bd
Update README and example with server version 2025-05-13 23:58:38 +09:00
Kevin Fischer
ea4828987c
Allow specifying a server version 2025-05-13 23:51:02 +09:00
iberianpig
01460b0b4f
fix: force UTF-8 encoding for stdio streams
This change forces $stdin/$stdout to use UTF-8 encoding,
similar to PR 198 in the python-sdk.
https://github.com/modelcontextprotocol/python-sdk/pull/198

It addresses platform-dependent encoding issues.
2025-05-13 17:26:10 +09:00
David Soria Parra
784b8b8548 Merge pull request #5 from modelcontextprotocol/davidsp/gem
Set Gemspec to official MCP account
2025-05-08 17:38:23 -04:00
David Soria Parra
71a2955215 Set gemspec 2025-05-08 17:38:23 -04:00
Tyler Rowsell
baeb99ffbc Internal Release 0.7.0
- add support for resource templates
- improve capability negotiation on handlers
- clean up readme
- reduce default protocol version to "2024-11-05"
- address spec compliance of resources
- add debug gem to development
- alias ModelContextProtocol to MCP
- move prompt subclasses to subdir
- improve tool and prompt definition
- improve passing of server context to tools
- improve tool input schema validation
2025-05-08 17:38:19 -04:00
Tyler Rowsell
62184957e0 Internal Release 0.6.0
Rename Context Arg
2025-05-08 17:38:13 -04:00
Topher Bullock
6da8bfab1a Internal Release 0.5.2
Added
- Added stdio transport functionality.
Changed
- Added stdio details to the README.
2025-05-08 17:38:09 -04:00
Topher Bullock
d2b6a33788 Internal Release 0.5.1
- Allow protocol version to be set at the server level through configuration instead of a class method, providing more flexibility in protocol version management [#43](https://github.com/Shopify/mcp-ruby/pull/43) @topherbullock

- Fixed instrumentation handling to ensure accurate timing information and proper error reporting [#42](https://github.com/Shopify/mcp-ruby/pull/42) @tobiasbales
  - Improved error handling and reporting in the server
  - Fixed timing information collection in instrumentation
  - Added proper error types for different failure scenarios
  - Enhanced test coverage for error cases

- [Allow protocol version to be set at the server level #43](https://github.com/Shopify/mcp-ruby/pull/43) @topherbullock
- [Fix instrumentation handling #42](https://github.com/Shopify/mcp-ruby/pull/42) @tobiasbales
2025-05-08 17:38:05 -04:00
Topher Bullock
7175d49108 Internal Release 0.5.0
Bump protocol version to 2025-03-26
Provide fallback value for tool_name
Make configuration per server
Add support for tool annotations
document tool annotations
2025-05-08 17:38:02 -04:00
Topher Bullock
2eca3681df Internal Release 0.4.0
- Added support for handle_json method from JSON RPC gem to allow consumers to pass JSON strings
- Added context parameter to prompt templating system

- Updated tool and prompt registration to use class references instead of instances
- Changed tool response is_error to isError to match protocol specification
2025-05-08 17:37:57 -04:00
Topher Bullock
0645351585 Internal Release 0.3.0
Add configurable exception reporter
Avoid leaking tool exceptions by sending them to a configurable exception reporter
Add optional context to pass to tools
Add basic instrumentation data/labels
2025-05-08 17:37:54 -04:00
Topher Bullock
f5a3567494 Internal Release 0.2.5
changes in this release:
- fix ping response #17
- add prompts and resources support to init response #18
- Bump json from 2.10.1 to 2.10.2 #14
2025-05-08 17:37:51 -04:00
Ates Goral
c5591be30b Internal Release 0.2.4
- remove activesupport as a runtime dependency
- use alternative to activesupport/inflector methods
- use `json_rpc_handler` gem
- add json_rpc_handler to gem dependencies
2025-05-08 17:37:45 -04:00