Implements an MCP server using Express.js as the HTTP framework for handling MCP JSON-RPC requests and responses, with support for Streamable HTTP transport.
Built with TypeScript to provide type safety throughout the MCP server implementation, enhancing code quality and developer experience.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Express MCP Server Echoecho back 'Hello, how are you today?'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Express MCP Server
A stateless Model Context Protocol (MCP) server built with Express and TypeScript.
Features
Stateless MCP server implementation with modern Streamable HTTP transport
TypeScript for type safety
Express.js for HTTP handling
Related MCP server: OpenAPI MCP Server
Requirements
Node.js 18+
npm or yarn
Installation
# Clone the repository (or download)
git clone https://github.com/your-username/sample-express-mcp-server.git
cd sample-express-mcp-server
# Install dependencies
npm installDevelopment
# Build the TypeScript code
npm run build
# Run in development mode with auto-reloading
npm run dev
# Run tests (when added)
npm testServer Structure
src/
├── index.ts # Main application entry point
└── server.ts # MCP server definition with resource, tool, and promptAvailable Functionality
This server implements a simple echo endpoint with three MCP components:
Resource:
echo://{message}- Returns the message as a resourceTool:
echo- Echoes the provided message back as a tool responsePrompt:
echo- Creates a user prompt with the provided message
MCP Protocol
This server implements the Model Context Protocol (MCP), a standardized way for LLMs to interact with external data and functionality. It exposes a stateless API endpoint that responds to JSON-RPC requests.
API Usage
Send a POST request to /mcp with a JSON-RPC payload:
Initialize
curl -X POST http://localhost:3001/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Accept: text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {
"roots": {
"listChanged": true
},
"sampling": {}
},
"clientInfo": {
"name": "ExampleClient",
"version": "1.0.0"
}
}
}'Call Echo Tool
curl -X POST http://localhost:3001/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Accept: text/event-stream" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "echo",
"arguments": {
"message": "Hello, World!"
}
},
"id": 1
}'License
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.