Skip to main content
Glama
mcp-simple-server

mcp-simple-server

by joeleesuh

MCP Simple Server

A simple Model Context Protocol (MCP) server with three basic tools: echo, add numbers, and get timestamp.

Supports both stdio and HTTP/WebSocket transport modes for flexible deployment options.

Features

  • echo: Echoes back any message you provide

  • add: Adds two numbers together

  • get_timestamp: Returns the current timestamp in ISO 8601 format

  • Dual Mode Support: Run in stdio mode (local) or HTTP/WebSocket mode (remote)

  • HTTP REST API: Health checks and server info endpoints

  • WebSocket Support: Real-time MCP protocol communication

Related MCP server: simple-mcp

Installation

npm install

Building

npm run build

Running the Server

stdio Mode (Default - Local Development)

npm start
# or
MCP_MODE=stdio node dist/index.js

HTTP/WebSocket Mode (Remote Access)

MCP_MODE=http PORT=3000 node dist/index.js

Once running in HTTP mode, access:

  • Health check: http://localhost:3000/health

  • Server info: http://localhost:3000/

  • WebSocket: ws://localhost:3000/

Tools

echo

Echoes back the provided message.

Arguments:

  • message (string, required): The message to echo back

Example:

{
  "message": "Hello, World!"
}

add

Adds two numbers together.

Arguments:

  • a (number, required): The first number

  • b (number, required): The second number

Example:

{
  "a": 5,
  "b": 3
}

get_timestamp

Returns the current timestamp in ISO 8601 format.

Arguments: None

Deployment

AWS EC2 Deployment

Deploy to AWS EC2 with automated setup using AWS CloudShell. See AWS_DEPLOYMENT.md for detailed instructions.

Quick Start:

# From AWS CloudShell
curl -O https://raw.githubusercontent.com/joeleesuh/mcp-simple-server/main/scripts/deploy-to-ec2.sh
chmod +x deploy-to-ec2.sh
./deploy-to-ec2.sh

Includes:

  • Automated EC2 instance provisioning (t3.micro - Free Tier eligible)

  • Auto-install Node.js and dependencies

  • Runs in HTTP mode on port 3000 with WebSocket support

  • Security group configured for port 3000 access

  • Systemd service setup with environment variables

  • AWS Session Manager access (no SSH keys required)

After deployment, access the server at:

  • http://<PUBLIC_IP>:3000/health - Health check

  • http://<PUBLIC_IP>:3000/ - Server info

  • ws://<PUBLIC_IP>:3000/ - WebSocket endpoint

Deployment to smithery.ai

This project is configured for deployment on Smithery.ai with:

  • Dockerfile - Multi-stage Docker build for optimized container image

  • smithery.yaml - Smithery configuration for stdio-based MCP server

  • .dockerignore - Excludes unnecessary files from Docker build

Prerequisites

  1. Create a GitHub repository for this project

  2. Push your code to GitHub (including Dockerfile and smithery.yaml)

  3. Create an account on smithery.ai

  4. (Optional) Test Docker build locally: docker build -t mcp-simple-server .

Steps to Deploy

  1. Push to GitHub (if not already done):

    git add .
    git commit -m "Add Smithery deployment configuration"
    git push
  2. Deploy on smithery.ai:

    • Go to smithery.ai

    • Sign in with your GitHub account

    • Click "New Server" or "Deploy Server"

    • Connect your GitHub repository

    • Select the mcp-simple-server repository

    • Smithery will automatically detect Dockerfile and smithery.yaml

    • Click "Deploy"

  3. Use Your Server:

    • Once deployed, Smithery will provide installation instructions

    • You can install it with: npx @smithery/cli install <your-server-name>

    • Or use it directly in Claude Desktop or other MCP clients

Example Claude Desktop Configuration

After deployment, add this to your Claude Desktop configuration:

{
  "mcpServers": {
    "simple-server": {
      "command": "npx",
      "args": ["-y", "@smithery/mcp-simple-server"]
    }
  }
}

Or if testing locally:

{
  "mcpServers": {
    "simple-server": {
      "command": "node",
      "args": ["C:/Users/User/mcp-simple-server/dist/index.js"]
    }
  }
}

Development

Project Structure

mcp-simple-server/
├── src/
│   └── index.ts              # Main server implementation
├── scripts/
│   ├── deploy-to-ec2.sh      # AWS CloudShell deployment script
│   └── user-data.sh          # EC2 instance initialization script
├── dist/                     # Compiled JavaScript (generated)
├── Dockerfile                # Docker container configuration
├── smithery.yaml             # Smithery deployment configuration
├── .dockerignore             # Docker build exclusions
├── package.json              # Dependencies and scripts
├── tsconfig.json             # TypeScript configuration
├── README.md                # This file
└── AWS_DEPLOYMENT.md        # AWS EC2 deployment guide

Adding New Tools

To add new tools, modify src/index.ts:

  1. Add the tool definition to the TOOLS array

  2. Add a new case in the CallToolRequestSchema handler switch statement

  3. Rebuild the project: npm run build

License

MIT

Available Tools

3 tools
addA

Adds two numbers together

Inputs: a (required), b (required).

echoA

Echoes back the provided message

Inputs: message (required).

get_timestampA

Returns the current timestamp in ISO 8601 format

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool performs a completely distinct function: echo returns input, add computes a sum, and get_timestamp returns time. There is no overlap or ambiguity between them.

    Naming Consistency5/5

    All tool names are lowercase imperative verbs, with 'get_timestamp' following a verb_noun pattern while 'echo' and 'add' are single verbs. The style is coherent and predictable.

    Tool Count5/5

    Three tools is an appropriate size for a simple utility server. Each tool serves a clear purpose without unnecessary bloat or redundancy.

    Completeness5/5

    As a general-purpose simple server, there is no single domain requiring full CRUD coverage. The provided tools cover a reasonable set of basic operations for a lightweight utility.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      A minimal MCP server providing basic tools for arithmetic, text echoing, and timezone-aware current time retrieval.
      -