실험적인 MCP Apps 지원을 Goose와 함께 Apollo MCP Server에 추가한 방법
Source: Dev.to
죄송합니다만, 번역하려는 전체 텍스트를 제공해 주시면 해당 내용을 한국어로 번역해 드리겠습니다. 현재는 링크만 제공되어 있어 실제 기사 내용이 없으므로 번역을 진행할 수 없습니다. 텍스트를 복사해서 여기에 붙여 주시면 바로 번역해 드리겠습니다.
The Challenge
에이전시 개발 워크플로우를 사용하여 내가 쓰지 않는 언어로 회사 코드베이스에 기여하기.
개발자 옹호자로서 저는 보통 제품 코드베이스에 기여하기보다는 데모와 교육용 코드를 만드는 일을 합니다. 연휴 기간 동안 저는 Apollo MCP Server(repo: )에 MCP Apps 초안 사양에 대한 실험적 지원을 추가하면서 에이전시 코딩에 완전히 몰입해 보겠다는 도전을 하고 싶었습니다.
실제 상황에서 제가 가르치는 모든 것을 시험해 볼 때가 왔습니다—제가 쓰지 않는 Rust 언어로 말이죠.
Apollo MCP Server는 오픈 소스이며 추가 코드를 작성하지 않고도 GraphQL 작업을 MCP 도구로 노출하는 데 사용됩니다. 최근에 OpenAI Apps SDK에 대한 지원을 추가했으며, MCP UI 앱으로 확장하는 것은 스스로에게 도전할 수 있는 좋은 다음 단계였습니다.
제약 사항
- 에이전트는 MCP 앱에 대한 실험적 지원을 추가해야 했으며, 기존 기능을 손상시키지 않거나 OpenAI 앱 구현에 방해가 되지 않아야 합니다.
- 변경 사항을 검증하기 위해, 나는 별도 저장소가 필요했으며, 여기에는 내 Luma Community Analytics 도구용 프로토타입 MCP UI 앱이 포함되어야 합니다.
도구
- Goose – CLI 및 Desktop
- Markdown files – 에이전트에게 지시사항, MCP 사양 세부사항, 프로젝트 목표/규칙을 제공하는 데 사용됩니다.
- Apollo MCP Server – 대상 코드베이스
- MCP Jam – 테스트를 위한 MCP Inspector의 대안
Source: …
The Build
저는 에이전트와 함께 연구 → 계획 → 청크 단위 코딩 → 테스트 → 편차 보고 → 반복 루프를 사용했습니다.
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.
첫 번째 계획은 완벽하지 않았습니다; 이를 반복해서 다듬는 과정이 제가 수행한 가장 “인간이 개입한” 작업이었습니다. 기존 코드베이스에 새로운/실험적인 기능을 추가할 때는 계획 단계에 시간을 투자하는 것이 매우 중요합니다.
계획의 핵심 부분은 각 코드 청크를 즉시 테스트하는 것이었습니다. 이는 오류를 초기에 잡아내어 최종 통합 시의 혼란을 방지했습니다. 또한 에이전트에게 오류나 새로운 정보로 인해 계획에서 벗어나는 경우 이를 보고하도록 요청했습니다.
계획이 실행된 후, 저는 Rust 바이너리를 빌드하고 이를 MCP Apps 프로젝트에 추가하여 테스트했습니다.
First Run
첫 번째 시도에서 작동했나요? 아니요.
Goose를 사용해 몇 가지 남은 문제를 빠르게 디버깅했습니다—특히 우리 OpenAI SDK 버전에서 사용된 쿼리 파라미터가 MCP‑App 규격에 맞지 않아 테스트에서 플래그되지 않았던 점이 가장 큰 문제였습니다.

앱이 정상적으로 동작하게 된 뒤, 저는 MCP Jam에서 예비 테스트를 수행했습니다. MCP Jam은 MCP Inspector의 대안이며(일반 Inspector는 현재 앱을 지원하지 않음) 다음과 같은 화면을 보여줍니다.

이 시점에서 저는 기다려야 했습니다. MCP Apps는 아직 초안 단계이며, 에이전트 생태계가 이를 지원하기 시작하지 않았습니다. Goose 팀은 거의 준비가 되었지만, 휴가 기간이었기 때문에 저는 노트북을 끄고(잠시 쉬어야 할까요?) 했습니다.
최종 테스트!
Goose 팀이 초안 사양 지원을 출시했을 때, 나는 Goose Desktop 에이전트에서 바로 테스트해 보려 했지만 몇 가지 문제에 부딪혔습니다. 디버깅을 위해 다시 Goose로 돌아갔죠!
Goose 덕분에 나는 Goose의 초기 MCP Apps 지원 릴리스에서 두 개의 작은 버그를 발견했으며, 팀에 보고하여 패치를 받을 수 있었습니다.
맞아요. 나는 Goose가 Goose를 디버깅하도록 만들었어요!

결국 나는 Luma 이벤트 대시보드의 초기 프로토타입을 만들게 되었는데, 이는 Apollo 내부에서 내가 주최하는 이벤트의 커뮤니티 지표를 이해하는 데 도움이 될 도구입니다.

학습 내용
- 언어 전문가가 아니어도 효과적으로 기여할 수 있다.
- 견고한 연구‑및‑계획 단계는 실험적 기능을 추가할 때 마찰을 크게 줄인다.
- 점진적인 테스트는 회귀를 조기에 포착하고 통합을 관리 가능하게 만든다.
- 에이전시 워크플로우는 코드뿐만 아니라 이를 구동하는 도구에서도 버그를 드러낼 수 있다.
코드베이스에 의미 있는 기능 기여
- Plan → Iterate → Plan
- 작은 조각으로 작업하고 항상 테스트하는 에이전트는 오류를 조기에 잡아내고 수정한 뒤, 당신이 커피를 마시는 동안에도 진행할 수 있습니다.
- 완벽함이 목표인가요? 제 경험상 아직은 아니지만, 개발자로서 훨씬 빠르게 진행할 수 있었습니다. 서버 업데이트와 새로운 앱이 반나절 만에 완료됐으며, 초안 사양이나 코드베이스에 대한 지식이 전혀 없었음에도 가능했습니다.
Note: 이 작업을 마친 후, 앤지 존스가 휴일 동안 공개한 레시피와 함께하는 Research → Plan → Implement 흐름에 대한 글을 보았습니다. 오늘 다시 이 흐름을 시작한다면, 바로 여기서 시작할 것입니다.
Check the docs here.
Can you do this? 네! 이 워크플로를 테스트한 경험이나 실험 중인 다른 에이전시 코딩 흐름에 대해 듣고 싶습니다.