cd /news/developer-tools/i-used-ember-js-to-make-an-mcp-serve… · home topics developer-tools article
[ARTICLE · art-51158] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=· neutral

I used Ember.js to make an MCP server

A developer built an MCP server at mcp.decile.com using Ember.js for the embedded MCP Apps, alongside a backend stack including Kubernetes, Starlette, Django REST Framework, and nginx. The project highlighted Ember.js's strengths such as the gjs file format for AI-friendly code, a fast Vite-based build system, and a monorepo setup for shared components, while noting challenges with bundle size due to the MCP Apps SDK.

read2 min views1 publishedJul 8, 2026

https://mcp.decile.com is an MCP Server I built that uses Ember.js! Okay, perhaps I overstated that a bit. The MCP server was built using a whole bunch of stuff for the backend, frontend, and infrastructure from Kubernetes to Starlette to Django REST Framework to nginx to ... you name it. Ember.js only powers the MCP Apps that are embedded by the MCP Server (about 5 of them so far). Unsurprisingly, ember was well suited to this problem (although not perfect).

What went well?

  • The "gjs" file format is very pleasant for human authoring and AI did a great job of working with it. I suspect that this is because it uses strict imports for everything so the AI (or human) don't have to rely on implicit context in order to reason about what a component does.
  • The new build system based on Vite was lightning fast and flexible! I was able to make the customizations I needed to execute in an MCP App context pretty easily.
  • Using a monorepo with shared components importable by any of the MCP Apps and tree-shaken away if not used was very convenient! Sharing the boilerplate lint config files, vite configs, etc., as importable ".mjs" files to avoid copying those across each separate mcp-app (and full ember app).
  • Using an Ember.js service to abstract away the mcp-apps SDK into a more reactive, "ember native" API was really easy and makes testing trivial.

What didn't go so well?

  • Originally, I planned on using the new renderComponent(

helper that allows rendering an individual component instead of a full app with router, service injections, etc., but I quickly started to miss the things the app provided.

  • The bundle size is larger than desired, but much of that is actually the MCP Apps SDK, which

bundles every locale of zod. There's a lot more to speak to but I'm out of time (it's 9 AM now)!

── more in #developer-tools 4 stories · sorted by recency
── more on @ember.js 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-used-ember-js-to-m…] indexed:0 read:2min 2026-07-08 ·