diff --git a/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/cloudinaryBefore&After.png b/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/cloudinaryBefore&After.png new file mode 100644 index 000000000000..b3b8d85dda1f Binary files /dev/null and b/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/cloudinaryBefore&After.png differ diff --git a/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/filesystemAfter.png b/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/filesystemAfter.png new file mode 100644 index 000000000000..d7a3af056dc4 Binary files /dev/null and b/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/filesystemAfter.png differ diff --git a/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/filesystemBefore.png b/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/filesystemBefore.png new file mode 100644 index 000000000000..3ce157d54310 Binary files /dev/null and b/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/filesystemBefore.png differ diff --git a/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/index.mdx b/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/index.mdx new file mode 100644 index 000000000000..2ed377876363 --- /dev/null +++ b/documentation/blog/2025-09-08-turn-any-mcp-server-mcp-ui-compatible/index.mdx @@ -0,0 +1,346 @@ +--- +title: "How to Make An MCP Server MCP-UI Compatible" +description: "How I made existing MCP servers MCP-UI compatible with just a few lines of code" +authors: + - ebony +--- + + + +[MCP-UI](https://mcpui.dev/guide/introduction) is in its infancy, and there's something addictive about being this early to the party. We're at this fascinating point where both the spec and client implementations are actively developing, and I find it thrilling to build alongside that evolution. + +I wanted to see how far I could push it. So I grabbed two open source MCP servers, [Cloudinary](https://github.com/felores/cloudinary-mcp-server) and [Filesystem](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem), and gave them a UI. Instead of boring text, I now get rich, interactive interfaces right inside goose. + + + +## Why I Wanted This + +Raw JSON and text is fine, it gets the job done but let's be real I'd rather interact with something pretty. Give me a cool UI over back and forth prompts. + +Take Cloudinary for example. By default, uploads return a block of text, basically a JSON dump of URLs, metadata, and public IDs. Useful, sure, but not exactly easy to glance at. + +What I really wanted was: + +- Image and video previews +- One‑click buttons to copy or view links +- Transformation examples + +With MCP-UI, it’s not just text responses anymore. Now responses can be little apps you can actually click around in within your agent's chat interface. + +{/* Video Player */} +