Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion crates/goose-server/src/auth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ pub async fn check_token(
next: Next,
) -> Result<Response, StatusCode> {
if request.uri().path() == "/status"
|| request.uri().path() == "/mcp-ui-proxy"
|| request.uri().path() == "/mcp-app-proxy"
|| request.uri().path() == "/mcp-app-guest"
{
Expand Down
1 change: 0 additions & 1 deletion crates/goose-server/src/openapi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,6 @@ derive_utoipa!(IconTheme as IconThemeSchema);
super::routes::status::status,
super::routes::status::system_info,
super::routes::status::diagnostics,
super::routes::mcp_ui_proxy::mcp_ui_proxy,
super::routes::config_management::validate_config,
super::routes::config_management::upsert_config,
super::routes::config_management::remove_config,
Expand Down
53 changes: 0 additions & 53 deletions crates/goose-server/src/routes/mcp_ui_proxy.rs

This file was deleted.

2 changes: 0 additions & 2 deletions crates/goose-server/src/routes/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ pub mod errors;
#[cfg(feature = "local-inference")]
pub mod local_inference;
pub mod mcp_app_proxy;
pub mod mcp_ui_proxy;
pub mod prompts;
pub mod recipe;
pub mod recipe_utils;
Expand Down Expand Up @@ -38,7 +37,6 @@ pub fn configure(state: Arc<crate::state::AppState>, secret_key: String) -> Rout
.merge(schedule::routes(state.clone()))
.merge(setup::routes(state.clone()))
.merge(telemetry::routes(state.clone()))
.merge(mcp_ui_proxy::routes(secret_key.clone()))
.merge(mcp_app_proxy::routes(secret_key))
.merge(session_events::routes(state.clone()))
.merge(sampling::routes(state.clone()))
Expand Down
143 changes: 0 additions & 143 deletions crates/goose-server/src/routes/templates/mcp_ui_proxy.html

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"label": "MCP Apps and MCP-UI",
"label": "MCP Apps",
"position": 55,
"link": {
"type": "doc",
Expand Down
116 changes: 35 additions & 81 deletions documentation/docs/guides/interactive-chat/index.mdx
Original file line number Diff line number Diff line change
@@ -1,118 +1,72 @@
---
title: Rich Interactive Chat with MCP Apps and MCP-UI
title: Rich Interactive Chat with MCP Apps
hide_title: true
description: Build interactive UI applications that render inside goose Desktop using MCP Apps and MCP-UI
description: Build interactive UI applications that render inside goose Desktop using MCP Apps
---

import Card from '@site/src/components/Card';
import styles from '@site/src/components/Card/styles.module.css';
import VideoCarousel from '@site/src/components/VideoCarousel';
import Card from "@site/src/components/Card";
import styles from "@site/src/components/Card/styles.module.css";
import VideoCarousel from "@site/src/components/VideoCarousel";

<h1 className={styles.pageTitle}>Rich Interactive Chat with MCP Apps and MCP-UI</h1>
<h1 className={styles.pageTitle}>Rich Interactive Chat with MCP Apps</h1>
<p className={styles.pageDescription}>
goose Desktop supports extensions that transform text-only responses into graphical, interactive experiences. Instead of reading through lists and descriptions, you can click, explore, and interact with UI components directly in your conversations.
goose Desktop supports extensions that transform text-only responses into
graphical, interactive experiences. Instead of reading through lists and
descriptions, you can click, explore, and interact with UI components directly
in your conversations.
</p>

<div className="video-container margin-bottom--lg">
<iframe
class="aspect-ratio"
src="https://www.youtube.com/embed/QJHGvsVXhjw"
title="Turn Any AI Chat Into an Interactive Experience | MCP-UI"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
></iframe>
</div>

<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>📚 Documentation & Guides</h2>
<div className={styles.cardGrid}>
<Card
<Card
title="Building MCP Apps"
description="Step-by-step tutorial to create interactive UI applications that render inside goose Desktop."
link="/docs/tutorials/building-mcp-apps"
/>
<Card
title="Using MCP Apps and MCP-UI"
description="goose transforms text-based responses into engaging graphical and interactive user experiences."
<Card
title="Using MCP Apps"
description="Launch standalone apps and render interactive UI directly in goose Desktop conversations."
link="/docs/guides/interactive-chat/mcp-ui"
/>
<Card
<Card
title="Auto Visualiser Extension"
description="Generate interactive data visualizations automatically in goose."
link="/docs/mcp/autovisualiser-mcp"
/>
</div>
</div>

<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>🎥 Videos</h2>

<VideoCarousel
id="mcp-apps-videos"
videos={[
{
type: "iframe",
src: "https://youtube.com/embed/QcojQ3Fwqsw",
title: "What are MCP Apps?",
description:
"What MCP Apps are and how they render interactive UIs in goose",
duration: "1:53",
},
]}
/>
</div>

<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>📝 Featured Blog Posts</h2>
<div className={styles.cardGrid}>
<Card
<Card
title="From MCP-UI to MCP Apps: Evolving Interactive Agent UIs"
description="A practical migration guide to MCP Apps: the 4 key changes, what broke, and why this shift matters."
link="/blog/2026/01/22/mcp-ui-to-mcp-apps"
/>
<Card
<Card
title="goose Lands MCP Apps"
description="goose ships early support for the draft MCP Apps specification, aligning with the emerging standard for interactive UIs."
link="/blog/2026/01/06/mcp-apps"
/>
<Card
title="MCP UI: Bringing the Browser into the Agent"
description="MCP-UI servers return content that goose Desktop renders as rich, embeddable UI."
link="/blog/2025/08/11/mcp-ui-post-browser-world"
/>
<Card
title="MCP-UI: The Future of Agentic Interfaces"
description="AI agents need to move beyond walls of text to rich and interactive UX."
link="/blog/2025/08/25/mcp-ui-future-agentic-interfaces"
/>
<Card
title="Auto Visualiser with MCP-UI"
description="Automatically render visual representations of data as you interact with it, powered by MCP-UI"
link="/blog/2025/08/27/autovisualiser-with-mcp-ui"
/>
<Card
title="How to Make An MCP Server MCP-UI Compatible"
description="Making an MCP server MCP-UI compatible requires just a few lines of code"
link="/blog/2025/09/08/turn-any-mcp-server-mcp-ui-compatible"
/>
<Card
title="Designing AI for Users, Not Just LLMs"
description="Building intent-based AI experiences with MCP-UI."
link="/blog/2025/10/14/designing-ai-for-humans"
/>
</div>
</div>

<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>🎥 More Videos</h2>

<VideoCarousel
id="more-videos"
videos={[
{
type: 'iframe',
src: 'https://youtube.com/embed/QcojQ3Fwqsw',
title: 'What are MCP Apps?',
description: 'Why MCP Apps are different from MCP-UI and what makes them portable, secure, and standardized',
duration: '1:53'
},
{
type: 'iframe',
src: 'https://youtube.com/embed/Kxj-vFBO_9U',
title: 'Building A MCP-UI Server',
description: 'Learn how to build your own MCP-UI server from scratch',
duration: '40:07'
},
{
type: 'iframe',
src: 'https://youtube.com/embed/GS-kmreZDgU',
title: 'Livestream - MCP-UI: The Future of Agentic Interfaces',
description: 'The goose team talks with MCP-UI creators about the future of visual interfaces',
duration: '55:32'
}
]}
/>
</div>
Loading
Loading