Skip to main content
Glama

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

Related MCP server: MCP TypeScript Server Template

✨ 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 via Smithery

To install Weather MCP Server Starter for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @GreatAuk/mcp-weather --client claude

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"]
    }
  }
}
Tool DescriptionsD

Average 1.4/5 across 1 of 1 tools scored.

Server CoherenceB
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count2/5

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.

Completeness1/5

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.

Available Tools

1 tool
hello_toolD

Hello tool

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the person to greet
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description provides no behavioral information beyond what's in the name. With no annotations provided, the description carries the full burden of disclosing behavioral traits but fails to mention anything about what the tool actually does, what it returns, or any operational characteristics. This leaves the agent completely in the dark about the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While technically concise with just two words, this is under-specification rather than effective conciseness. The description doesn't convey meaningful information, so its brevity is a deficiency rather than a strength. Every sentence should earn its place, and this description fails to provide any value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a tool with one parameter and no annotations or output schema, the description is completely inadequate. It provides no information about what the tool does, what it returns, or how it behaves. Even for a simple tool, 'Hello tool' fails to establish basic context or functionality, leaving the agent unable to understand when or how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'name' clearly documented in the schema as 'The name of the person to greet.' The description adds no parameter information beyond what the schema provides, which is acceptable given the high schema coverage. The baseline score of 3 reflects adequate parameter documentation through the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Hello tool' is a tautology that merely restates the tool name without specifying what it does. It provides no verb or resource information, making the purpose completely unclear. This fails to meet even the basic requirement of stating what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool, what context it's appropriate for, or any alternatives. With no siblings listed, differentiation isn't needed, but the description still provides zero usage context, leaving the agent with no information about when this tool should be invoked.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

A
license - permissive license
C
quality
D
maintenance

Maintenance

0Releases (12mo)

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

View all related MCP servers

Latest Blog Posts

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/GreatAuk/mcp-weather'

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