Repository navigation
[MCP] feat(samples): add the Kanban board showcase for agent and MCP App communication - #3226
Draft
josemontespg wants to merge 1 commit into
Draft
josemontespg wants to merge 1 commit into
josemontespg wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request introduces a new Kanban Board Showcase sample application, demonstrating bidirectional communication between a Python agent, a sandboxed MCP App, and sibling A2UI components. The feedback focuses on enhancing the robustness and error handling of the newly added code. Key recommendations include wrapping server tool calls in try-catch blocks to safely roll back optimistic UI updates on failure, and adding defensive type checks in the agent executor, MCP client, and chat host to prevent potential runtime crashes from malformed or unexpected data payloads.
josemontespg
force-pushed
the
catalogs-example-kanban
branch
from
October 15, 2026 00:23
569c4d2 to
55b0ec8
Compare
josemontespg
commented
Oct 15, 2026
josemontespg
force-pushed
the
catalogs-example-kanban
branch
8 times, most recently
from
October 15, 2026 23:04
8a22333 to
9c6fafd
Compare
josemontespg
force-pushed
the
catalogs-example-kanban
branch
5 times, most recently
from
October 19, 2026 22:38
0d4a556 to
57c49f6
Compare
josemontespg
commented
Oct 19, 2026
josemontespg
force-pushed
the
catalogs-example-kanban
branch
from
October 19, 2026 23:17
57c49f6 to
81118b3
Compare
josemontespg
force-pushed
the
catalogs-example-kanban
branch
from
October 19, 2026 23:49
81118b3 to
69d9f23
Compare
josemontespg
force-pushed
the
catalogs-example-kanban
branch
from
October 19, 2026 23:59
69d9f23 to
ae22cd3
Compare
josemontespg
force-pushed
the
catalogs-example-kanban
branch
from
October 20, 2026 00:09
ae22cd3 to
299b98b
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a Kanban board sample under
samples/community/mcp/a2ui-kanban/that connects a Node MCP server, a Python ADK + A2A agent, and a Lit chat host through@a2ui/catalog-mcp.The sample exercises four communication paths around the
McpAppcomponent: the agent mutates the board via MCP server tools and pushes/kanban/boardupdates to the app (updateDataModeltoui/notifications/data-model-update); the app publishes selection, filter, and column WIP state to/kanban/modelContext(ui/update-model-context) so the agent can answer questions about the live view; card drags write/kanban/board(ui/notifications/data-model-change) so siblingTextcounters recompute client-side without an agent turn; and card drops (tools/call+ui/message) and split requests (ui/message) dispatcha2ui.mcpAppMessageactions that the chat host forwards to the agent.Live demo: http://josemontesp.c.googlers.com:5173/
Changes
samples/community/mcp/a2ui-kanban/mcp-server/: Streamable HTTP MCP server exposinglist_board,move_task,create_task,assign_task, andopen_board, plus the@modelcontextprotocol/ext-appsboard UI bundled into theui://kanban/boardresource (text/html;profile=mcp-app) and unit/HTTP tests.samples/community/mcp/a2ui-kanban/agent/: Python ADK + A2A agent (and a deterministicKANBAN_AGENT=scriptedfallback for tests and keyless runs) that connects to the MCP server and emits A2UI v1.0 surface and data-model messages, withpytestcoverage.samples/community/mcp/a2ui-kanban/client/: Lit chat host registeringbasicCatalogandmcpCatalog, connectingcallMcpToolto the MCP server, deriving/kanban/summary/*from/kanban/boardfor siblingTextcomponents, and testing all four channels with Vitest and Playwright E2E tests.samples/community/mcp/a2ui-kanban/README.md,samples/community/README.md,samples/community/package.json,samples/community/yarn.lock: Three-terminal setup instructions, walkthrough storyline, and community workspace registration.docs/public/guides/mcp-apps-in-a2ui.md: Adds the Kanban showcase as Sample 3.Verification
yarn testinsamples/community/mcp/a2ui-kanban/mcp-server(13node:testserver/tool tests + 20 Vitest app tests passing),yarn testinsamples/community/mcp/a2ui-kanban/client(9 Vitest host tests passing),yarn test:e2einsamples/community/mcp/a2ui-kanban/client(6 Playwright E2E CUJ + WCAG AA contrast tests passing), anduv run pytestinsamples/community/mcp/a2ui-kanban/agent(11 tests passing).a2ui-kanban-mcp-serveranda2ui-kanban-clientfromsamples/community, ranuv sync --no-install-project, verified formatting and license headers, and ran the three services end-to-end (http://josemontesp.c.googlers.com:5173/); fullcommunity_code.ymlworkflow runs in CI.Related to #3157