mcpField
M
MCP Test Server

MCP Test Server

Local
github.com/nabadeep25Developer Tools0Updated 74w ago

About MCP Test Server

A TypeScript and Express.js MCP server for testing and demonstrations. It exposes BMI calculation, weather lookup, and echo tools over Streamable HTTP, with environment-based configuration.

Key features

  1. 01BMI calculation tool
  2. 02City weather lookup
  3. 03Message echo tool
  4. 04Streamable HTTP transport
  5. 05Environment-based configuration

Use cases

  1. 01Test MCP tool calls with sample functions
  2. 02Demonstrate a Streamable HTTP MCP server
  3. 03Try weather lookup with an API key

MCP support

The server exposes BMI, weather, and echo tools to MCP clients over Streamable HTTP at the `/mcp` endpoint.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP Test Server

A Model Context Protocol (MCP) server implementation with multiple tools for testing and demonstration purposes.

Overview

This server provides three main tools:

  • BMI Calculator: Calculate Body Mass Index from weight and height
  • Weather Service: Get weather information for any city (with API key support)
  • Echo Tool: Simple echo functionality for testing

Features

  • Built with TypeScript and Express.js
  • Streamable HTTP transport for MCP
  • Environment-based configuration
  • Hot reload development support
  • Modular tool architecture

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn package manager

Installation

  1. Clone or download this repository

  2. Install dependencies:

    npm install
    
  3. Copy the environment example file:

    cp .env.example .env
    
  4. (Optional) Add your weather API key to .env:

    WEATHER_API_KEY=your_openweathermap_api_key_here
    

Build and Run

Development Mode
# Build and start with hot reload
npm run dev
Production Mode
# Build the project
npm run build

# Start the server
npm start

The server will start on http://localhost:3000 (or the port specified in your PORT environment variable).

API Endpoint

The MCP server is accessible at:

POST http://localhost:3000/mcp

Available Tools

1. BMI Calculator (calculate-bmi)

Calculate Body Mass Index from weight and height.

Parameters:

  • weightKg (number): Weight in kilograms
  • heightM (number): Height in meters
2. Weather Service (get-weather)

Get current weather information for a city.

Parameters:

  • city (string): City name
  • country (string, optional): Country code (e.g., "IN", "US")
3. Echo Tool (echo)

Simple echo functionality for testing purposes.

Parameters:

  • message (string): Message to echo back

Testing the Server

Using MCP Inspector

For a GUI interface to test MCP server:

  1. Start server:

    npm start
    
  2. In another terminal, run the MCP inspector:

    npm run inspector
    
VS Code Integration

If you're using VS Code with MCP support, add this server to your settings:

{
  "mcp": {
    "servers": {
      "mcp-test-server": {
        "url": "http://localhost:3000/mcp"
      }
    }
  }
}

Project Structure

├── src/
│   ├── index.ts          # Main server file
│   └── tools/            # Tool implementations
│       ├── bmi.ts        # BMI calculator tool
│       ├── weather.ts    # Weather service tool
│       └── echo.ts       # Echo tool
├── build/                # Compiled JavaScript files
├── package.json          # Project configuration
├── tsconfig.json         # TypeScript configuration
├── .env.example          # Environment variables example
└── README.md             # This file

Development

Adding New Tools
  1. Create a new tool file in src/tools/:

    import { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
    import { z } from 'zod';
    
    export const myTool = {
      name: 'my-tool',
      schema: {
        param1: z.string(),
        param2: z.number(),
      },
      handler: async ({ param1, param2 }: { param1: string; param2: number }): Promise<CallToolResult> => {
        return {
          content: [
            {
              type: 'text',
              text: `Result: ${param1} - ${param2}`,
            },
          ],
        };
      },
    };
    
  2. Import and register it in src/index.ts:

    import { myTool } from './tools/my-tool.js';
    
    // In the getServer() function:
    server.tool(
      myTool.name,
      'Description of my tool',
      myTool.schema,
      myTool.handler
    );
    
Available Scripts
  • npm run build - Compile TypeScript to JavaScript
  • npm run watch - Watch for changes and recompile
  • npm run dev - Development mode with hot reload
  • npm start - Start the compiled server
  • npm run inspector - Launch MCP inspector

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.