moji-mcp-worker
Remote MCP server that enables composing Moji illustrations from asset catalogs, validating layers, and returning importable .moji.json files.
README
moji-mcp-worker
Remote MCP server for AudienseMoji. Lets any MCP client
(Claude Desktop, Claude Code, Cursor, etc.) compose a Moji illustration and get back a valid,
ready-to-import .moji.json file — without ever guessing an asset id.
Same architecture pattern as the existing Titan MCP (mcp-remote-worker.titands.workers.dev):
a stateless Cloudflare Worker exposing Streamable HTTP MCP, no server-side LLM call. The
composing intelligence is the host model (Claude/Cursor); this worker only supplies the real
asset catalog and validates/serializes the result.
Tools
moji_list_catalog({ category? })— with no args, returns category counts + layer shape rules + defaults. Withcategory(heads,torsos,decorations,accessories,expressions,brand,snaps,presets), returns every real asset id in that bucket.moji_build({ name?, aspectRatio?, colors?, background?, layers })— validates each layer against the live catalog and returns:{ valid: false, errors: [...] }if something doesn't match the catalog (unknown assetId, missing required field for that category, etc.) — fix and retry.{ valid: true, mojiJson, downloadFilename, importInstructions }—mojiJsonis the exact.moji.jsonenvelope the Moji app already knows how to read (format: "audiensemoji").
Where the catalog comes from
env.MOJI_CATALOG_URL (default https://audiensemoji.vercel.app/moji-catalog.json) is a static
JSON file generated straight from AudienseMoji/src/illustrations/assets.tsx by
AudienseMoji/scripts/export-moji-catalog.mjs. Re-run that script (and redeploy Moji) whenever
assets change — this worker never hand-duplicates ids, so it can't drift.
Develop
npm install
npm run dev # wrangler dev on http://localhost:8788/mcp
npm run typecheck
Test locally with the MCP Inspector:
npx @modelcontextprotocol/inspector@latest
# connect to http://localhost:8788/mcp
Deploy
npx wrangler login # one-time
npm run deploy
Wrangler prints the live URL, e.g. https://moji-mcp-worker.<account>.workers.dev/mcp.
Connect a client
Cursor (.cursor/mcp.json, same shape as the titands entry):
{
"mcpServers": {
"moji": { "url": "https://moji-mcp-worker.<account>.workers.dev/mcp" }
}
}
Claude Desktop / Claude Code (via the mcp-remote local proxy, since not every client
speaks remote MCP natively yet):
{
"mcpServers": {
"moji": {
"command": "npx",
"args": ["mcp-remote", "https://moji-mcp-worker.<account>.workers.dev/mcp"]
}
}
}
Using it end to end
- Ask the model: "Use the moji tool to build an illustration of two people doing a hi-5, with a speech bubble that says 'Nice work!'."
- It calls
moji_list_catalogto find real preset/decoration ids, thenmoji_buildwith alayersarray. - Save the returned
mojiJsonto<downloadFilename>. - In audiensemoji.vercel.app → My Creations → Import Moji file → pick that file. It opens as an editable draft; hit Save to keep it.
Roadmap (not implemented yet)
- Phase 2:
moji_publish_linkstores the built JSON in KV/R2 and returns anhttps://audiensemoji.vercel.app/import?src=<id>link that opens the draft directly, skipping the manual save/import step. Needs a small route addition in the Moji app. - Phase 3: direct-to-gallery publish via a paired Firebase session (no manual step at all) — bigger scope, needs an auth/pairing flow between the MCP client and the user's Moji account.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.