MCP Server Starter
MCP Server Starter
A production-ready starter template for building Model Context Protocol (MCP) servers with TypeScript.
š Quick Start
- Clone the repository
- Install dependencies:Copybun install
- Start development:Copybun run dev
āØ 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
Copy
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:
Copy
bun run scripts/create-tool.ts <tool-name>
This will:
- Create a new tool directory under
src/tools/<tool-name>
- Generate the basic tool structure including:
- index.ts (main implementation)
- schema.ts (JSON schema for tool parameters)
- test.ts (test file)
- Update the tools index file to export the new tool
Example:
Copy
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:
- Build the project:Copybun run build
- Add to your Claude Desktop config:Copy// 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
- Ensure you're logged in to npm:Copynpm login
- Build the project:Copybun run build
- Publish the package:Copynpm 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:
Copy
// 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"]
}
}
}
A production-ready template for creating Model Context Protocol servers with TypeScript, providing tools for efficient testing, development, and deployment.