Cupcake MCP Server + Wasmer
This example shows how to run a Model Context Protocol (MCP) server for ChatGPT on Wasmer Edge.
ℹ️ MCP servers connected to ChatGPT should expose at least two tools—
search
andfetch
—so ChatGPT can both discover content and then retrieve specific items.
Demo
https://mcp-chatgpt-starter.wasmer.app/sse
Add it to ChatGPT as a connector (no auth), and then just ask ChatGPT to interact with it:
How it Works
All logic lives in server.py
, but you can think of it in sections:
Data Section
The server loads cupcake records from a local records.json
file and builds a lookup dictionary:
Models Section
We define Pydantic models to structure responses:
SearchResult
andSearchResultPage
for search results.FetchResult
for full cupcake order details.
Tools Section
Two MCP tools are exposed via FastMCP
:
search(query: str)
Splits the query into tokens, performs keyword matching acrosstitle
,text
, andmetadata
, and returns a list of matching results.fetch(id: str)
Retrieves a single cupcake order by ID from the lookup dictionary and returns full details, including optionalurl
andmetadata
.
Entrypoint Section
At the bottom of server.py
, the app is created and run:
The server uses Server-Sent Events (SSE) to communicate with ChatGPT’s MCP integration.
Running Locally
Install dependencies:
Run the server:
Your MCP server will now be running and ready for connections from an MCP client (like ChatGPT with MCP enabled).
Example Tools in Action
Search tool (
search("red velvet")
) Returns a list of cupcake orders that mention “red velvet.”Fetch tool (
fetch("42")
) Returns the full details of order42
, including text, metadata, and an optional URL.
Deploying to Wasmer Edge (Overview)
Include both
server.py
andrecords.json
in your project.Deploy to Wasmer Edge, ensuring the entrypoint is
server.py
.Access it at:
https://<your-subdomain>.wasmer.app/sse
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Enables users to search and retrieve cupcake order records through natural language queries. Provides search functionality across order details and fetches complete order information by ID.