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
Pagination cursor from a previous response.
Returns
listServerResources
(params?: ListServerResourcesParams) => Promise<ListServerResourcesResult | undefined>
Function to list available server resources.
ListServerResourcesResult
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>
);
}