Skip to main content
Glama

MCP Server Starter

by John-Chan

MCP Server Starter

A production-ready starter template for building Model Context Protocol (MCP) servers with TypeScript.

šŸš€ Quick Start

  1. Clone the repository

  2. Install dependencies:

    bun install

✨ Key Features

  • Bun for fast testing and development

  • Biome for linting and formatting

  • Automated version management with standard-version

  • Clean, maintainable project structure

šŸ“‚ Project Structure

mcp-starter/ ā”œā”€ā”€ src/ │ ā”œā”€ā”€ tools/ # MCP tools implementation │ ā”œā”€ā”€ utils/ # Shared utilities │ ā”œā”€ā”€ main.ts # Server entry point │ └── types.ts # Shared type definitions ā”œā”€ā”€ tests/ # Test files ā”œā”€ā”€ biome.json # Linting configuration ā”œā”€ā”€ tsconfig.json # TypeScript configuration └── package.json # Project dependencies

āš™ļø Configuration

Creating New Tools

The project includes a script to help create new MCP tools:

bun run scripts/create-tool.ts <tool-name>

This will:

  1. Create a new tool directory under src/tools/<tool-name>

  2. Generate the basic tool structure including:

    • index.ts (main implementation)

    • schema.ts (JSON schema for tool parameters)

    • test.ts (test file)

  3. Update the tools index file to export the new tool

Example:

bun run scripts/create-tool.ts weather

šŸ› ļø Development

  • Run tests: bun test

  • Format code: bun run format

  • Lint code: bun run lint

  • Build project: bun run build

To add your development MCP server to Claude Desktop:

  1. Build the project:

    bun run build
  2. Add to your Claude Desktop config:

    // You only need the argument if you need to pass arguments to your server { "mcpServers": { "your-server-name": { "command": "node", "args": ["/path/to/your/project/dist/main.js", "some_argument"] } } }

šŸ“œ Version Management

This project uses standard-version for automated version management. Run bun run release to create a new version.

Commit Message Format

  • feat: New feature (bumps minor version)

  • fix: Bug fix (bumps patch version)

  • BREAKING CHANGE: Breaking change (bumps major version)

šŸ“¦ Publishing to npm

  1. Ensure you're logged in to npm:

    npm login
  2. Build the project:

    bun run build
  3. Publish the package:

    npm publish

Remember to update the version number using bun run release before publishing new versions.

Installing from npm (after publishing)

Add to your Claude Desktop config:

// You only need the argument if you need to pass arguments to your server { "mcpServers": { "your-server-name": { "command": "npx", "args": ["-y", "your-package-name", "some_argument"] } } }
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

A production-ready starter template for building Model Context Protocol (MCP) servers with TypeScript. Includes automated tooling for creating new MCP tools, testing, and deployment to Claude Desktop.

  1. šŸš€ Quick Start
    1. ✨ Key Features
      1. šŸ“‚ Project Structure
        1. āš™ļø Configuration
          1. Creating New Tools
        2. šŸ› ļø Development
          1. šŸ“œ Version Management
            1. Commit Message Format
          2. šŸ“¦ Publishing to npm
            1. Installing from npm (after publishing)

              MCP directory API

              We provide all the information about MCP servers via our MCP API.

              curl -X GET 'https://glama.ai/api/mcp/v1/servers/John-Chan/mcp-demo'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server