Skip to content

feat: MCP Resources - Expose browsable data via resource:// URIsΒ #48

@nesquikm

Description

@nesquikm

πŸ¦† Duck Enhancement Proposal

πŸ’‘ The Problem

MCP defines three primitives: Tools, Prompts, and Resources. We implement Tools and Prompts but not Resources. This means clients can't browse conversation history, provider configs, or usage data without calling a tool.

πŸš€ Proposed Solution

Implement MCP Resources to expose server data as browsable, read-only content.

Proposed resources:

  • resource://providers β†’ list of configured providers with status
  • resource://providers/{name} β†’ provider details (model, capabilities, health)
  • resource://conversations β†’ list of active conversations
  • resource://conversations/{id} β†’ conversation history for a session
  • resource://usage/today β†’ today's token/cost stats
  • resource://usage/summary β†’ aggregated usage overview

Technical approach:

  • Implement ListResourcesRequestSchema and ReadResourceRequestSchema handlers in server.ts
  • Resources are read-only projections of existing data (conversations, providers, usage stats)
  • Support resource templates for parameterized URIs (e.g., conversations/{id})
  • Consider resource subscriptions for live-updating data

πŸ“š References

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions