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

Method registerResource

src/server/mcp.ts:711–750  ·  view source on GitHub ↗
(
        name: string,
        uriOrTemplate: string | ResourceTemplate,
        config: ResourceMetadata,
        readCallback: ReadResourceCallback | ReadResourceTemplateCallback
    )

Source from the content-addressed store, hash-verified

709 readCallback: ReadResourceTemplateCallback
710 ): RegisteredResourceTemplate;
711 registerResource(
712 name: string,
713 uriOrTemplate: string | ResourceTemplate,
714 config: ResourceMetadata,
715 readCallback: ReadResourceCallback | ReadResourceTemplateCallback
716 ): RegisteredResource | RegisteredResourceTemplate {
717 if (typeof uriOrTemplate === 'string') {
718 if (this._registeredResources[uriOrTemplate]) {
719 throw new Error(`Resource ${uriOrTemplate} is already registered`);
720 }
721
722 const registeredResource = this._createRegisteredResource(
723 name,
724 (config as BaseMetadata).title,
725 uriOrTemplate,
726 config,
727 readCallback as ReadResourceCallback
728 );
729
730 this.setResourceRequestHandlers();
731 this.sendResourceListChanged();
732 return registeredResource;
733 } else {
734 if (this._registeredResourceTemplates[name]) {
735 throw new Error(`Resource template ${name} is already registered`);
736 }
737
738 const registeredResourceTemplate = this._createRegisteredResourceTemplate(
739 name,
740 (config as BaseMetadata).title,
741 uriOrTemplate,
742 config,
743 readCallback as ReadResourceTemplateCallback
744 );
745
746 this.setResourceRequestHandlers();
747 this.sendResourceListChanged();
748 return registeredResourceTemplate;
749 }
750 }
751
752 private _createRegisteredResource(
753 name: string,

Callers 7

createMcpServerFunction · 0.95
getServerFunction · 0.95
getServerFunction · 0.95
index.test.tsFile · 0.80
title.test.tsFile · 0.80
mcp.test.tsFile · 0.80
addResourceFunction · 0.80

Tested by

no test coverage detected