J

mcp-starter-template

...
Created 1/18/2025byStevenStavrakis

Language:

JavaScript

Stars:

10

Forks:

5

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 

This will:

  1. Create a new tool directory under src/tools/
  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](https://github.com/conventional-changelog/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"]
    }
  }
}
Last updated: 3/1/2025

Publisher info

StevenStavrakis's avatar

Steven Stavrakis

I like making tools that make life easier.

@KraberDigital
Fairfax, VA
3
followers
1
following
19
repos

More MCP servers built with JavaScript

emergency-medicare-planner-mcp-server

emergency-medicare-planner-mcp-server

By manolaz1
mcp-warpcast-server

MCP Server for Warpcast integration

By zhangzhongnan9281
mcp-tavily-server

Tavily MCP Server for Cline

By dkmaker1