MCPcopy Create free account
hub / github.com/modelcontextprotocol/inspector / createReceiverTask

Function createReceiverTask

client/src/lib/hooks/useConnection.ts:877–923  ·  view source on GitHub ↗
(opts: {
        ttl?: number;
        initialStatus: Task["status"];
        statusMessage?: string;
        pollInterval?: number;
      })

Source from the content-addressed store, hash-verified

875 };
876
877 const createReceiverTask = (opts: {
878 ttl?: number;
879 initialStatus: Task["status"];
880 statusMessage?: string;
881 pollInterval?: number;
882 }): ReceiverTaskRecord => {
883 const taskId = makeTaskId();
884 const createdAt = nowIso();
885 const ttl = opts.ttl ?? getMCPTaskTtl(config);
886
887 let resolvePayload: (payload: ClientResult) => void = () => undefined;
888 let rejectPayload: (reason?: unknown) => void = () => undefined;
889 const payloadPromise = new Promise<ClientResult>((resolve, reject) => {
890 resolvePayload = resolve;
891 rejectPayload = reject;
892 });
893
894 const task: Task = {
895 taskId,
896 status: opts.initialStatus,
897 ttl,
898 createdAt,
899 lastUpdatedAt: createdAt,
900 ...(opts.pollInterval !== undefined
901 ? { pollInterval: opts.pollInterval }
902 : undefined),
903 ...(opts.statusMessage ? { statusMessage: opts.statusMessage } : {}),
904 };
905
906 const record: ReceiverTaskRecord = {
907 task,
908 payloadPromise,
909 resolvePayload,
910 rejectPayload,
911 };
912
913 // Cleanup after TTL (best-effort).
914 if (ttl !== null && ttl > 0) {
915 record.cleanupTimeoutId = setTimeout(() => {
916 receiverTasksRef.current.delete(taskId);
917 }, ttl);
918 }
919
920 receiverTasksRef.current.set(taskId, record);
921 void emitTaskStatus(task);
922 return record;
923 };
924
925 // Server -> client Tasks handlers (receiver side)
926 client.setRequestHandler(ListTasksRequestSchema, async () => {

Callers 1

connectFunction · 0.85

Calls 4

getMCPTaskTtlFunction · 0.90
makeTaskIdFunction · 0.85
nowIsoFunction · 0.85
emitTaskStatusFunction · 0.85

Tested by

no test coverage detected