Skip to main content
Glama
currentspace

Bootstrap MCP Server

by currentspace
README.md
# Bootstrap MCP Server

A minimal MCP (Model Context Protocol) server template with hot reload support for development.

## Features

- **Hot Reload Proxy**: Maintains connection with Claude while allowing server restarts
- **Common Tool Patterns**: Example implementations of typical MCP tools
- **TypeScript Support**: Full TypeScript with strict type checking
- **Fast Build System**: Uses esbuild for quick compilation
- **Development Ready**: Configured with ESLint and Prettier

## Quick Start

1. Install dependencies:
   ```bash
   pnpm install
   ```

2. Build the project:
   ```bash
   pnpm run build
   ```

3. Start the MCP server:
   ```bash
   ./start_mcp.sh
   ```

4. To reload the server during development:
   ```bash
   ./reload_mcp.sh
   ```

## Project Structure

```
bootstrap_mcp/
├── src/
│   ├── server.ts    # Main MCP server implementation
│   └── proxy.ts     # Hot reload proxy
├── dist/            # Compiled JavaScript output
├── build.mjs        # Build configuration
├── tsconfig.json    # TypeScript configuration
├── package.json     # Project dependencies
├── start_mcp.sh     # Start script with proxy
└── reload_mcp.sh    # Reload script for development
```

## Available Tools

The bootstrap includes three example tools:

1. **hello_world**: Simple greeting tool
2. **echo**: Echo back messages
3. **get_time**: Get current timestamp

## Development Workflow

1. Make changes to `src/server.ts`
2. Run `./reload_mcp.sh` to rebuild and restart
3. The proxy maintains the Claude connection during restart
4. Check `/tmp/bootstrap-mcp-debug.log` for debugging

## Adding New Tools

1. Add tool definition to `TOOLS` array in `server.ts`
2. Implement handler method in `BootstrapMCPServer` class
3. Add case in `CallToolRequestSchema` handler
4. Reload the server

## Scripts

- `pnpm run dev`: Development mode with tsx watch
- `pnpm run build`: Build TypeScript to JavaScript
- `pnpm run typecheck`: Type checking only
- `pnpm run lint`: Run ESLint
- `pnpm run format`: Format code with Prettier

## Requirements

- Node.js v24+
- pnpm package manager

TDQS

C2.7/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct and non-overlapping purpose: echo returns a message, get_time provides the current time, and hello_world outputs a greeting. There is no ambiguity or confusion between these simple, well-defined functions.

Naming Consistency4/5

The naming follows a consistent verb-based pattern (echo, get_time, hello_world), with all tools using snake_case. The minor deviation is that 'hello_world' is more of a phrase than a verb-noun pair, but it still fits the overall readable style.

Tool Count3/5

With only 3 tools, this server feels thin for a general-purpose 'Bootstrap' server, as it lacks depth in any specific domain. However, for a minimal or demo server, the count is reasonable but borderline in terms of providing substantial utility.

Completeness2/5

As a 'Bootstrap' server, the toolset is severely incomplete, covering only trivial echo, time, and greeting functions without any meaningful domain coverage or CRUD operations. It lacks obvious extensions for common bootstrap tasks like configuration or setup utilities.

Maintenance

ActivityInactive
ResponsivenessNo issues