Inspiration
I'm the solo founder of Annzar (annzar.com), a social platform with a digital-product marketplace. Small sellers lose hours to dashboards, apps and tabs just to check sales, list a product or promote it. I wanted to see if a seller could do all of that by simply asking an assistant.
What it does
Annzar Voice Shop MCP is a self-hosted MCP server (spec 2025-11-25, Streamable HTTP) that gives an AI assistant six tools:
- get_shop_summary: sales, orders, top product and change vs the previous period
- search_products: find products, with a price limit
- create_product: add a product
- draft_post: write a promotional post (it never publishes anything)
- get_checkout_link: return a checkout link
- get_context: remember each seller's context between sessions
Alexa+ is not available to me for testing, so I built a voice-assistant simulator at /demo. It calls the real server's tools through the official MCP client, so the demo exercises the actual MCP protocol. This submission runs on a mock demo shop: no real data and no payments.
How I built it
TypeScript, the official MCP TypeScript SDK 1.32.1, Express, Zod, Vitest (40+ automated tests), bearer-token authentication, hosted on Render. I verified spec support by reading the SDK's own protocol constant (LATEST_PROTOCOL_VERSION = 2025-11-25) and by running live requests against the deployed server. I built it with AI coding agents under my direction (Manus and Kiro), with Claude for architecture, prompts and review, and checked their work with tests and live checks.
Challenges I ran into
- Version and dependency friction: a Zod peer-dependency mismatch, a native SQLite module that failed on Node 26, and Render defaulting to Node 26.
- A fix that never reached the main branch broke Render's first build. I found it in the deploy log.
- Kiro showed "Connection Failed" for my remote MCP server with no reason, although curl with the same key returned HTTP 200.
- My AWS Builder ID signup failed with a generic server error.
- Voice input conflicts with screen recording on my devices, so the video uses the suggestion buttons. All of this is documented in FRICTION_LOG.md in the repo.
Accomplishments that I am proud of
A tested MCP server, live on a public URL, built in under two weeks, with a demo page anyone can try and honest labelling of what is mock and what is real.
What I learned
How MCP works end to end, how to direct AI coding agents while verifying every claim they make, and that deployment problems (versions, branches, environment variables) cost more time than the code itself.
What's next for Annzar Voice Shop MCP
Connect the ready adapter to the real Annzar shop API, add per-seller authentication and real checkout links, generate captions with an AI model, and test on a real Alexa+ device when I can get one.
Built With
- express.js
- github
- kiro
- model-context-protocol
- node.js
- render
- typescript
- vitest
- web-speech-api
- zod
Log in or sign up for Devpost to join the conversation.