A simple TypeScript MCP server built using the official MCP TypeScript SDK, Express, and custom Docker container. This example demonstrates how you can host HTTP servers on Smithery using custom containers, with STDIO support for backwards compatibility.
See the complete guide: https://smithery.ai/docs/migrations/typescript-custom-container
- CORS: CORS headers for browser-based MCP clients
- Smithery Session Configuration: handles user's session configuration passed via Smithery (learn more)
- Request Logging Middleware: Custom middleware for debugging HTTP requests and responses
- Server Transport: Can run with both STDIO and HTTP transports using
TRANSPORT
env variable
- Node.js 22 or higher
- npm package manager
src/index.ts
- Main Express server with MCP HTTP transportpackage.json
- Node.js dependencies and scriptssmithery.yaml
- Smithery deployment and session configurationDockerfile
- Dockerfile to host server in Smithery
-
Install dependencies:
npm install
-
Run the development server:
HTTP Mode:
npm run dev
This will start the server on port 8081.
-
Test interactively: Once your server is running in HTTP mode, you can test it interactively using the Smithery playground:
npx -y @smithery/cli playground --port 8081
-
Deploy your own version: To deploy your own MCP server:
- Connect your repository at https://smithery.ai/new