J

mcp-starter-template

...
Created 1/18/2025byStevenStavrakis

Language:

JavaScript

Stars:

17

Forks:

8

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
4
followers
1
following
19
repos

More MCP servers built with JavaScript

mcp-server-semgrep

MCP Server Semgrep is a [Model Context Protocol](https://modelcontextprotocol.io) compliant server that integrates the powerful Semgrep static analysis tool with AI assistants like Anthropic Claude. It enables advanced code analysis, security vulnerability detection, and code quality improvements directly through a conversational interface.

By Szowesgad9
protonmail-mcp

This MCP server provides email sending functionality using Protonmail's SMTP service. It allows both Claude Desktop and Cline VSCode extension to send emails on your behalf using your Protonmail credentials.

By amotivv6
agentql-mcp

Model Context Protocol server that integrates AgentQL's data extraction capabilities.

By tinyfish-io45