How I added experimental MCP Apps support to Apollo MCP Server with Goose

Published: (January 10, 2026 at 04:27 PM EST)
4 min read
Source: Dev.to

Source: Dev.to

The Challenge

Contribute to my company’s codebase in a language I do not write using an agentic dev workflow.

As a developer advocate, I’m usually creating demo and educational code rather than contributing to our product codebases. Over the holiday break I wanted to challenge myself to fully lean into agentic coding by adding experimental support for the MCP Apps draft spec to the Apollo MCP Server (repo: ).

It was time to test everything I teach in a real‑world scenario—in a language I don’t write… Rust.

The Apollo MCP Server is open source and is used to expose GraphQL operations as MCP tools without writing any additional code. We recently added support for the OpenAI Apps SDK, so evolving into MCP UI apps was a great next step to challenge myself on.

Constraints

  • The agent had to add experimental support for MCP Apps without breaking existing functionality or interfering with the OpenAI Apps implementation.
  • To validate the changes, I also needed a separate repository with a prototype MCP UI App for my Luma Community Analytics tool.

The Tools

  • Goose – CLI and Desktop
  • Markdown files – used to provide instructions, MCP spec details, and project goals/rules to the agent
  • Apollo MCP Server – the target codebase
  • MCP Jam – an alternative to the MCP Inspector for testing

The Build

I worked with the agent using a research → plan → code‑in‑chunks → test → report deviations → repeat loop.

Research Prompt

Research all files in the apollo-mcp-server local repo to understand the OpenAI apps implementation and the details of the draft MCP UI Apps spec. Then create a plan to add experimental support for MCP apps that preserves the OpenAI SDK version.

The first plan wasn’t perfect; iterating on it was the most “human‑in‑the‑loop” work I performed. In my experience, spending time on a planning phase is crucial when adding a new/experimental feature to an existing codebase.

A key part of the plan was testing each chunk of code immediately. This caught errors early and prevented a messy final integration. I also asked the agent to report any deviations from the plan caused by errors or new information.

After the plan was executed, I built the Rust binary and added it to an MCP Apps project for testing.

First Run

Did it work the first time? No.

Using Goose, I quickly debugged a few loose ends—most notably a query parameter used in our OpenAI SDK version that wasn’t MCP‑App compliant and therefore didn’t flag in the tests.

Offending query‑parameter code

With the app working, I performed a preliminary test in MCP Jam, an alternative to the MCP Inspector (the regular inspector does not currently support apps).

Initial load test in MCP Jam

At this point I had to wait. MCP Apps is still in draft, and the agent ecosystem hadn’t begun to support it yet. The Goose team was almost there, but it was the holiday break, so I shut my laptop (go touch grass?).

The Final Test!

When the Goose team released draft‑spec support, I rushed to test in the Goose Desktop agent—only to run into a few issues. Back to Goose for debugging!

Goose helped me discover two small bugs in the early release of MCP Apps support in Goose, which I reported to the team so they could patch it.

You read that right. I made Goose debug Goose!

Spiderman pointing meme

Ultimately I ended up with an early prototype of my Luma events dashboard, a tool that will help folks internally at Apollo understand community metrics for events I host.

Goose Desktop with a running MCP App

Learnings

  • You don’t have to be an expert in a language to contribute effectively.
  • A solid research‑and‑planning phase dramatically reduces friction when adding experimental features.
  • Incremental testing catches regressions early and keeps the integration manageable.
  • Agentic workflows can surface bugs not only in your code but also in the tooling that powers them.

Contribute a Meaningful Feature to a Codebase

  • Plan → Iterate → Plan
  • Agents working in small chunks and always testing means they can catch errors early, fix them, and move on while you grab a coffee.
  • Is perfection the goal? In my experience, not yet—but I was able to move much faster as a developer. The server updates and new app were completed in half a day, even though I started with zero knowledge of the draft spec or codebase.

Note: After I completed this, I saw a post by Angie Jones about a Research → Plan → Implement flow with recipes that she released over the holiday break. If I were starting this flow again today, this is where I would begin.
Check the docs here.

Can you do this? Yes! I’d love to hear about your experience testing this workflow or other agentic coding flows you are experimenting with.

Back to Blog

Related posts

Read more »