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

Function readResource

client/src/App.tsx:917–960  ·  view source on GitHub ↗
(uri: string)

Source from the content-addressed store, hash-verified

915 };
916
917 const readResource = async (uri: string) => {
918 if (fetchingResources.has(uri) || resourceContentMap[uri]) {
919 return;
920 }
921
922 console.log("[App] Reading resource:", uri);
923 setFetchingResources((prev) => new Set(prev).add(uri));
924 lastToolCallOriginTabRef.current = currentTabRef.current;
925
926 try {
927 const response = await sendMCPRequest(
928 {
929 method: "resources/read" as const,
930 params: { uri },
931 },
932 ReadResourceResultSchema,
933 "resources",
934 );
935 console.log("[App] Resource read response:", {
936 uri,
937 responseLength: JSON.stringify(response).length,
938 hasContents: !!(response as { contents?: unknown[] }).contents,
939 });
940 const content = JSON.stringify(response, null, 2);
941 setResourceContent(content);
942 setResourceContentMap((prev) => ({
943 ...prev,
944 [uri]: content,
945 }));
946 } catch (error) {
947 console.error(`[App] Failed to read resource ${uri}:`, error);
948 const errorString = (error as Error).message ?? String(error);
949 setResourceContentMap((prev) => ({
950 ...prev,
951 [uri]: JSON.stringify({ error: errorString }),
952 }));
953 } finally {
954 setFetchingResources((prev) => {
955 const next = new Set(prev);
956 next.delete(uri);
957 return next;
958 });
959 }
960 };
961
962 const subscribeToResource = async (uri: string) => {
963 if (!resourceSubscriptions.has(uri)) {

Callers 3

AppFunction · 0.70
ResourcesTabFunction · 0.50

Calls 1

sendMCPRequestFunction · 0.85

Tested by

no test coverage detected