-
Notifications
You must be signed in to change notification settings - Fork 72
Open
Description
✅ Compliant Features
- Protocol Version Support: The SDK correctly supports the 2025-03-26 protocol version (lib/mcp/configuration.rb:6)
- Base Protocol: JSON-RPC 2.0 messaging fully implemented
- Server Features:
- ✅ Resources (list, read, templates)
- ✅ Prompts (list, get)
- ✅ Tools (list, call)
- ✅ Tool annotations (destructive_hint, idempotent_hint, open_world_hint, read_only_hint)
- ✅ Instructions support (for 2025-03-26+)
- Lifecycle Management: Initialize, initialized notification, ping
- Capabilities Negotiation: Server capabilities properly implemented
⚠️ Gaps Identified
1. Client Features Missing
- ❌ Sampling support not implemented: No server-side handling for
sampling/createMessage
requests - ❌ Client lacks prompts/resources methods: The
MCP::Client
class only hastools
andcall_tool
methods, missingprompts
andresources
support
2. Utilities Partially Missing
- ❌ Progress tracking: Methods defined but no handlers implemented
- ❌ Cancellation: Methods defined but no handlers implemented
- ✅ Error reporting: Implemented via exception handling
- ✅ Logging: Basic support present
3. Security & Safety Documentation
- ❌ No security guidelines in README: The specification emphasizes user consent, data privacy, tool safety, and LLM sampling controls, but the README lacks any security documentation
- ❌ No implementation guidance for consent flows
- ❌ No documentation about trust & safety considerations
4. Documentation Gaps
- ❌ Missing details about security best practices
- ❌ No guidance on implementing user consent mechanisms
- ❌ No documentation about sampling feature (when implemented)
Recommendations
High Priority
- Add
prompts
andresources
methods toMCP::Client
- Implement sampling support for server-initiated LLM interactions
- Add security & safety section to README
Medium Priority
- Implement progress tracking handlers
- Implement cancellation handlers
- Document consent and authorization best practices
Low Priority
- Add examples for all missing features
- Enhance test coverage for new capabilities
Summary
The Ruby SDK has good coverage of the core MCP 2025-03-26 specification but lacks client-side feature parity and security documentation that the specification emphasizes as critical.
topherbullock and dak2
Metadata
Metadata
Assignees
Labels
No labels