[goose2] MCP Apps: translate ACP host capabilities into MCP initialization (#8623)

Signed-off-by: Andrew Harvard <aharvard@squareup.com>
This commit is contained in:
Andrew Harvard
2026-04-28 08:03:44 -04:00
committed by GitHub
parent 52b3f21ef7
commit f908837407
13 changed files with 345 additions and 69 deletions
+1
View File
@@ -40,6 +40,7 @@
"format": "prettier --write src/"
},
"dependencies": {
"@modelcontextprotocol/ext-apps": "^0.3.1",
"zod": "^3.25.76"
},
"peerDependencies": {
+1
View File
@@ -2,6 +2,7 @@ export * from "./generated/types.gen.js";
export * from "./generated/zod.gen.js";
export { GooseClient } from "./goose-client.js";
export { createHttpStream } from "./http-stream.js";
export * from "./mcp-apps.js";
export {
ClientSideConnection,
+36
View File
@@ -0,0 +1,36 @@
import type {
Implementation,
InitializeRequest,
} from "@agentclientprotocol/sdk";
import { RESOURCE_MIME_TYPE } from "@modelcontextprotocol/ext-apps";
export const GOOSE_MCP_UI_EXTENSION_ID = "io.modelcontextprotocol/ui" as const;
export interface GooseMcpUiExtensionSettings {
mimeTypes: string[];
}
export interface GooseMcpHostCapabilities {
extensions: Record<string, GooseMcpUiExtensionSettings>;
}
export interface GooseClientMeta {
goose: {
mcpHostCapabilities: GooseMcpHostCapabilities;
};
}
export type GooseInitializeRequest = InitializeRequest & {
clientCapabilities: NonNullable<InitializeRequest["clientCapabilities"]> & {
_meta: GooseClientMeta;
};
clientInfo: Implementation;
};
export const DEFAULT_GOOSE_MCP_HOST_CAPABILITIES: GooseMcpHostCapabilities = {
extensions: {
[GOOSE_MCP_UI_EXTENSION_ID]: {
mimeTypes: [RESOURCE_MIME_TYPE],
},
},
};