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

Function mergeCapabilities

src/shared/protocol.ts:1668–1682  ·  view source on GitHub ↗
(base: T, additional: Partial<T>)

Source from the content-addressed store, hash-verified

1666export function mergeCapabilities(base: ServerCapabilities, additional: Partial<ServerCapabilities>): ServerCapabilities;
1667export function mergeCapabilities(base: ClientCapabilities, additional: Partial<ClientCapabilities>): ClientCapabilities;
1668export function mergeCapabilities<T extends ServerCapabilities | ClientCapabilities>(base: T, additional: Partial<T>): T {
1669 const result: T = { ...base };
1670 for (const key in additional) {
1671 const k = key as keyof T;
1672 const addValue = additional[k];
1673 if (addValue === undefined) continue;
1674 const baseValue = result[k];
1675 if (isPlainObject(baseValue) && isPlainObject(addValue)) {
1676 result[k] = { ...(baseValue as Record<string, unknown>), ...(addValue as Record<string, unknown>) } as T[typeof k];
1677 } else {
1678 result[k] = addValue as T[typeof k];
1679 }
1680 }
1681 return result;
1682}

Callers 3

protocol.test.tsFile · 0.85
registerCapabilitiesMethod · 0.85
registerCapabilitiesMethod · 0.85

Calls 1

isPlainObjectFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…