https://github.com/jhgaylor/express-mcp-server-echo
An example of using express-mcp-handler to serve an mcp serve via http
https://github.com/jhgaylor/express-mcp-server-echo
Last synced: 4 months ago
JSON representation
An example of using express-mcp-handler to serve an mcp serve via http
- Host: GitHub
- URL: https://github.com/jhgaylor/express-mcp-server-echo
- Owner: jhgaylor
- Created: 2025-04-28T02:41:47.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-04-28T05:34:22.000Z (6 months ago)
- Last Synced: 2025-06-10T22:47:59.397Z (5 months ago)
- Language: TypeScript
- Size: 21.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- metorial-index - Express Echo MCP Server - Stateless MCP server that echoes messages back to users, facilitating interaction with the Model Context Protocol. Built with Express.js and TypeScript, it provides a reliable API for testing and demonstrating MCP functionalities. (Developer Tools)
- awesome-mcp-servers - **express-mcp-server-echo** - An example of using express-mcp-handler to serve an mcp serve via http `typescript` `mcp` `http` `npm install jhgaylor/express-mcp-server-echo` (🌐 Web Development)
README
# 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
## Requirements
- Node.js 18+
- npm or yarn
## Installation
```bash
# 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 install
```
## Development
```bash
# Build the TypeScript code
npm run build
# Run in development mode with auto-reloading
npm run dev
# Run tests (when added)
npm test
```
## Server Structure
```
src/
├── index.ts # Main application entry point
└── server.ts # MCP server definition with resource, tool, and prompt
```
## Available Functionality
This server implements a simple echo endpoint with three MCP components:
- **Resource**: `echo://{message}` - Returns the message as a resource
- **Tool**: `echo` - Echoes the provided message back as a tool response
- **Prompt**: `echo` - Creates a user prompt with the provided message
## MCP Protocol
This server implements the [Model Context Protocol](https://modelcontextprotocol.io/) (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
```bash
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
```bash
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
[ISC](LICENSE)