fix: make listServerResources() params optional (#528)

Follow-up to #470. Matches MCP SDK Client.listResources(params?) signature
so callers can omit the empty {} for the common case.

Also reflows a line in app-bridge.test.ts that prettier flagged.
This commit is contained in:
Olivier Chafik 2026-03-06 14:30:36 +00:00 • committed by GitHub
commit ef8fc6e2f0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 11 additions and 7 deletions

View file

@ -123,7 +123,7 @@ async function discoverVideos() {
} }
try { try {
const resourceList = await app.listServerResources({}); const resourceList = await app.listServerResources();
const videoResources = resourceList.resources.filter((r) => const videoResources = resourceList.resources.filter((r) =>
r.uri.startsWith("videos://"), r.uri.startsWith("videos://"),

View file

@ -794,7 +794,7 @@ describe("App <-> AppBridge integration", () => {
await bridge.connect(bridgeTransport); await bridge.connect(bridgeTransport);
await app.connect(appTransport); await app.connect(appTransport);
const result = await app.listServerResources({}); const result = await app.listServerResources();
expect(receivedRequests).toHaveLength(1); expect(receivedRequests).toHaveLength(1);
expect(result.resources).toEqual(resources); expect(result.resources).toEqual(resources);
@ -826,7 +826,11 @@ describe("App <-> AppBridge integration", () => {
it("onreadresource handles readServerResource() calls from App", async () => { it("onreadresource handles readServerResource() calls from App", async () => {
const requestParams = { uri: "videos://bunny-1mb" }; const requestParams = { uri: "videos://bunny-1mb" };
const contents = [ const contents = [
{ uri: "videos://bunny-1mb", blob: "dmlkZW9kYXRh", mimeType: "video/mp4" }, {
uri: "videos://bunny-1mb",
blob: "dmlkZW9kYXRh",
mimeType: "video/mp4",
},
]; ];
const receivedRequests: unknown[] = []; const receivedRequests: unknown[] = [];

View file

@ -335,7 +335,7 @@ async function App_listServerResources_buildPicker(
) { ) {
//#region App_listServerResources_buildPicker //#region App_listServerResources_buildPicker
try { try {
const result = await app.listServerResources({}); const result = await app.listServerResources();
const videoResources = result.resources.filter((r) => const videoResources = result.resources.filter((r) =>
r.mimeType?.startsWith("video/"), r.mimeType?.startsWith("video/"),
); );

View file

@ -805,7 +805,7 @@ export class App extends Protocol<AppRequest, AppNotification, AppResult> {
* *
* Results may be paginated using the `cursor` parameter for servers with many resources. * Results may be paginated using the `cursor` parameter for servers with many resources.
* *
* @param params - Optional parameters (empty object `{}` for all resources, or `{ cursor }` for pagination) * @param params - Optional parameters (omit for all resources, or `{ cursor }` for pagination)
* @param options - Request options (timeout, etc.) * @param options - Request options (timeout, etc.)
* @returns List of resources with their URIs, names, descriptions, mimeTypes, and optional pagination cursor * @returns List of resources with their URIs, names, descriptions, mimeTypes, and optional pagination cursor
* *
@ -815,7 +815,7 @@ export class App extends Protocol<AppRequest, AppNotification, AppResult> {
* @example Discover available videos and build a picker UI * @example Discover available videos and build a picker UI
* ```ts source="./app.examples.ts#App_listServerResources_buildPicker" * ```ts source="./app.examples.ts#App_listServerResources_buildPicker"
* try { * try {
* const result = await app.listServerResources({}); * const result = await app.listServerResources();
* const videoResources = result.resources.filter((r) => * const videoResources = result.resources.filter((r) =>
* r.mimeType?.startsWith("video/"), * r.mimeType?.startsWith("video/"),
* ); * );
@ -833,7 +833,7 @@ export class App extends Protocol<AppRequest, AppNotification, AppResult> {
* @see {@link readServerResource `readServerResource`} to read a specific resource * @see {@link readServerResource `readServerResource`} to read a specific resource
*/ */
async listServerResources( async listServerResources(
params: ListResourcesRequest["params"], params?: ListResourcesRequest["params"],
options?: RequestOptions, options?: RequestOptions,
): Promise<ListResourcesResult> { ): Promise<ListResourcesResult> {
return await this.request( return await this.request(