Skip to content

v0.3.0 - Rich Annotations & Elicitation Support

Latest

Choose a tag to compare

@timothywarner timothywarner released this 15 Dec 16:11

What's New in v0.3.0

This release transforms the MCP server into a feature-rich, well-documented reference implementation with full support for MCP best practices including tool annotations and interactive elicitations.

✨ MCP Elicitation Support

The server now supports form-mode elicitations for interactive workflows:

  • memory_purge - Requests user confirmation before permanently deleting memories

    • Shows count of affected memories and criteria
    • Requires explicit boolean confirmation
    • Falls back gracefully if client doesn't support elicitation
  • memory_write - Offers tag selection from existing tags (opt-in via suggestTags: true)

    • Multi-select from existing tags
    • Custom tag input option
    • Only triggers when 2+ tags exist

Note: Not all MCP clients support elicitation yet. Tools work normally without it.

📝 Rich Tool Annotations

All 7 tools now include comprehensive annotations for MCP Inspector visibility:

Tool Annotation Hints
memory_write readOnly: false, destructive: false
memory_search readOnly: true, idempotent: true
memory_compress readOnly: true, idempotent: true
memory_delete idempotent: true (soft delete is reversible)
memory_purge destructive: true (permanent deletion!)
memory_export readOnly: true, idempotent: true
inject_context readOnly: true, idempotent: true

📚 Enhanced Documentation

  • Server instructions: Added server-level instructions field with quick start guide
  • Tool descriptions: Each tool has detailed JSDoc comments with examples
  • Parameter descriptions: Rich descriptions for all input parameters
  • Resources & Prompts: All upgraded to registerResource/registerPrompt with titles

🔧 API Changes

  • All tools now use server.registerTool() instead of deprecated server.tool()
  • All resources now use server.registerResource() instead of deprecated server.resource()
  • All prompts now use server.registerPrompt() instead of deprecated server.prompt()
  • Tool responses include more informative feedback (keywords extracted, deletion status, etc.)

🎓 Learning Resource

This release is designed as a teaching example for MCP server development, demonstrating:

  • Proper use of tool annotations
  • Elicitation patterns for interactive workflows
  • Graceful fallbacks when features aren't supported
  • Comprehensive documentation practices

Full Changelog: v0.2.1...v0.3.0

Full Changelog: v0.2.1...v0.3.0