MCP Server Starter
# MCP Server Starter
[](https://smithery.ai/server/@GreatAuk/mcp-weather)
A production-ready starter template for building Model Context Protocol (MCP) servers with TypeScript.
<a href="https://glama.ai/mcp/servers/rlkcxdr2y9"><img width="380" height="200" src="https://glama.ai/mcp/servers/rlkcxdr2y9/badge" alt="Server Starter MCP server" /></a>
## š Quick Start
1. Clone the repository
2. Install dependencies:
```bash
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:
```bash
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:
```bash
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:
```bash
bun run build
```
2. Add to your Claude Desktop config:
```json
// 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:
```bash
npm login
```
2. Build the project:
```bash
bun run build
```
3. Publish the package:
```bash
npm publish
```
Remember to update the version number using `bun run release` before publishing new versions.
## Installing via Smithery
To install Weather MCP Server Starter for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@GreatAuk/mcp-weather):
```bash
npx -y @smithery/cli install @GreatAuk/mcp-weather --client claude
```
## Installing from npm (after publishing)
Add to your Claude Desktop config:
```json
// 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"]
}
}
}
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap between tools, as there are no other tools to compare it against. The single tool's purpose is clearly distinct by default.
The naming pattern cannot be inconsistent with only one tool, as there is no variation to assess. The tool name 'hello_tool' follows a simple noun-based pattern, which is inherently consistent in this minimal set.
A single tool is too few for a server named 'MCP Server Starter', which implies a foundational or example server that should demonstrate more functionality. This minimal count feels thin and inadequate for the apparent scope of providing starter capabilities.
The tool surface is severely incomplete, as a 'starter' server with only a 'hello_tool' lacks any meaningful operations for building or demonstrating MCP functionality. There are obvious gaps, with no coverage of core MCP workflows or example use cases.