Skip to main content
sunpeak API

Overview

Returns a function to discover available resources on the originating MCP server. The request is proxied through the host. Supports pagination via cursor. Use useReadServerResource to read a discovered resource. See the MCP Apps listServerResources request for protocol details.

Import

import { useListServerResources } from 'sunpeak';

Signature

function useListServerResources(): (
  params?: ListServerResourcesParams
) => Promise<ListServerResourcesResult | undefined>

ListServerResourcesParams

cursor
string
Pagination cursor from a previous response.

Returns

listServerResources
(params?: ListServerResourcesParams) => Promise<ListServerResourcesResult | undefined>
Function to list available server resources.

ListServerResourcesResult

resources
ServerResource[]
required
Available resources.
nextCursor
string
Cursor for fetching the next page, if more results exist.

Usage

import { useListServerResources, useReadServerResource } from 'sunpeak';
import { useState, useEffect } from 'react';

function ResourceBrowser() {
  const listServerResources = useListServerResources();
  const readServerResource = useReadServerResource();
  const [resources, setResources] = useState<Array<{ uri: string; name: string }>>([]);

  useEffect(() => {
    listServerResources().then(result => {
      if (result) setResources(result.resources);
    });
  }, [listServerResources]);

  const handleSelect = async (uri: string) => {
    const result = await readServerResource({ uri });
    console.log('Resource contents:', result?.contents);
  };

  return (
    <ul>
      {resources.map(r => (
        <li key={r.uri}>
          <button onClick={() => handleSelect(r.uri)}>{r.name}</button>
        </li>
      ))}
    </ul>
  );
}