Skip to content

Conversation

@peteski22
Copy link
Contributor

@peteski22 peteski22 commented Oct 17, 2025

Summary

Implements resources and resource templates support following the MCP specification (2025-06-18).

Server-Level API

// Direct server access
await client.servers.files.getResources()
await client.servers.files.getResourceTemplates()
await client.servers.files.readResource(uri)
await client.servers.files.hasResource(uri)  // Safe boolean predicate

Key Features

  • Server-level resource operations via dynamic caller
  • Graceful degradation for servers without resource support (501 responses)
  • Automatic health checks before resource operations
  • Support for both text and blob resource content
  • Full TypeScript support with comprehensive type definitions

Implementation Details

  • Follows existing patterns from tools and prompts implementation
  • Uses dynamic caller pattern for clean API ergonomics
  • Health checks ensure operations only run against healthy servers

@peteski22 peteski22 requested a review from khaledosman October 17, 2025 15:28
  Server-level methods:
  - getResources(), getResourceTemplates(), readResource(uri)
  - hasResource(uri) safe boolean predicate

  Client-level methods:
  - Aggregation across servers with namespacing (serverName__resourceName)
  - Auto-population of resource cache on first readResource() call
  - Filtering by specified servers
  - Graceful handling of 501 Not Implemented and unhealthy servers
* (client) getToolSchemas -> getTools
* (server) listTools -> getTools
* Remove console messages
@peteski22 peteski22 force-pushed the peteski22/support-resources branch from b4aaf35 to 21636b1 Compare October 20, 2025 12:37
@peteski22 peteski22 merged commit 3b56aa0 into main Oct 20, 2025
2 checks passed
@peteski22 peteski22 deleted the peteski22/support-resources branch October 20, 2025 12:41
@peteski22 peteski22 added this to the mcpd milestone Oct 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants