MCPcopy Create free account
hub / github.com/modelcontextprotocol/typescript-sdk / resource

Method resource

src/server/mcp.ts:657–698  ·  view source on GitHub ↗
(name: string, uriOrTemplate: string | ResourceTemplate, ...rest: unknown[])

Source from the content-addressed store, hash-verified

655 ): RegisteredResourceTemplate;
656
657 resource(name: string, uriOrTemplate: string | ResourceTemplate, ...rest: unknown[]): RegisteredResource | RegisteredResourceTemplate {
658 let metadata: ResourceMetadata | undefined;
659 if (typeof rest[0] === 'object') {
660 metadata = rest.shift() as ResourceMetadata;
661 }
662
663 const readCallback = rest[0] as ReadResourceCallback | ReadResourceTemplateCallback;
664
665 if (typeof uriOrTemplate === 'string') {
666 if (this._registeredResources[uriOrTemplate]) {
667 throw new Error(`Resource ${uriOrTemplate} is already registered`);
668 }
669
670 const registeredResource = this._createRegisteredResource(
671 name,
672 undefined,
673 uriOrTemplate,
674 metadata,
675 readCallback as ReadResourceCallback
676 );
677
678 this.setResourceRequestHandlers();
679 this.sendResourceListChanged();
680 return registeredResource;
681 } else {
682 if (this._registeredResourceTemplates[name]) {
683 throw new Error(`Resource template ${name} is already registered`);
684 }
685
686 const registeredResourceTemplate = this._createRegisteredResourceTemplate(
687 name,
688 undefined,
689 uriOrTemplate,
690 metadata,
691 readCallback as ReadResourceTemplateCallback
692 );
693
694 this.setResourceRequestHandlers();
695 this.sendResourceListChanged();
696 return registeredResourceTemplate;
697 }
698 }
699
700 /**
701 * Registers a resource with a config object and callback.

Callers 2

createMcpServerFunction · 0.95
mcp.test.tsFile · 0.80

Tested by 1

createMcpServerFunction · 0.76