Skip to main content
Glama
ceciliomichael

MCP Server Template

README.md
# MCP Server Template

A template for building a Model Context Protocol (MCP) server using TypeScript.

## Features

- TypeScript configuration (Node16 / ESModules).
- Type-safe argument validation using Zod.
- Standard I/O (stdio) transport setup.
- Example echo tool included.

## Prerequisites

- Node.js
- npm or your preferred package manager

## Installation

Install the required dependencies:

```bash
npm install
```

## Build

Compile the TypeScript source code into the `build/` directory:

```bash
npm run build
```

## Running the Server

Start the compiled server:

```bash
npm start
```

Because the server uses standard I/O (stdio) for transport, it will wait for an MCP client to connect and communicate via stdin and stdout.

## Project Structure

- `src/index.ts`: Application entry point setting up the standard I/O transport.
- `src/server.ts`: Initializes the MCP server instance and registers its handlers.
- `src/handlers/tool.ts`: Registers tool request handlers with the MCP server.
- `src/tools/example.ts`: Contains the domain logic, input schema, and execution logic for individual tools.
- `tsconfig.json`: TypeScript compiler configuration.
- `package.json`: Project metadata and scripts.

## Adding New Tools

To add a new tool to your MCP server:

1. Create a new file in `src/tools/` defining your tool's input schema (via Zod), definition metadata, and execution logic handler function.
2. Open `src/handlers/tool.ts` and add your new tool's definition to the array returned by the `ListToolsRequestSchema` handler.
3. Add a new `case` in the `CallToolRequestSchema` handler inside `src/handlers/tool.ts` to call your new tool's execution function.