MCP Server Starter
The MCP Server Starter is a production-ready TypeScript template for building custom Model Context Protocol (MCP) servers. With this server, you can:
Create and manage MCP tools using the provided script, which generates necessary files and tests
Use the included
hello_toolthat takes anameinput and returns a greetingDevelop quickly with Bun for fast testing and development
Maintain code quality through testing, formatting, and linting tools
Automate version management using standard-version
Publish your server to npm for distribution
Integrate with Claude Desktop as an MCP server for workflows
Used for linting and formatting in the project
Used for fast testing and development in the project
The project can be published to npm registry
The project is built with TypeScript for type safety
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Server Startercreate a new tool for fetching stock prices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server Starter
A production-ready starter template for building Model Context Protocol (MCP) servers with TypeScript.
π Quick Start
Clone the repository
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:
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:
bun run scripts/create-tool.ts weatherπ οΈ Development
Run tests:
bun testFormat code:
bun run formatLint code:
bun run lintBuild project:
bun run build
To add your development MCP server to Claude Desktop:
Build the project:
bun run buildAdd 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
Ensure you're logged in to npm:
npm loginBuild the project:
bun run buildPublish 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 claudeInstalling 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"]
}
}
}Available Tools
1 toolhello_toolD
Hello tool
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the person to greet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Hello tool' reveals nothing about whether this is a read/write operation, what permissions might be required, what side effects occur, or what the response format looks like. The description fails to provide any behavioral context beyond the minimal implication from the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with only two words, this represents under-specification rather than effective conciseness. The description doesn't contain enough information to be useful, and the single phrase doesn't earn its place by providing meaningful guidance to an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no annotations and no output schema, the description should provide more complete context about what this tool does and what to expect. A single-parameter tool with 100% schema coverage could get by with minimal description, but 'Hello tool' fails to explain the basic purpose and behavior adequately for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single 'name' parameter. The description adds no additional parameter information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no parameter information in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Hello tool' is essentially a tautology that restates the tool name without specifying what it does. It doesn't provide a clear verb+resource combination or explain the actual function. While the name suggests greeting functionality, the description fails to articulate this explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance about when to use this tool, what context it's appropriate for, or any prerequisites. There are no sibling tools mentioned, but even basic usage context is completely missing from the description text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- First observed
hello_tool
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.
Maintenance
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
A simple Typescript MCP server built using the official MCP Typescript SDK and smithery/cli. Thisβ¦
A TypeScript MCP server for Home Assistant, enabling programmatic management of entities, automatiβ¦
Primarily to be used as a template repository for developing MCP servers with FastMCP in Python, Pβ¦
Kickstart development with a customizable TypeScript template featuring sample tools for greeting,β¦
Related MCP Servers
- AlicenseCqualityDmaintenanceA production-ready template for creating Model Context Protocol servers with TypeScript, providing tools for efficient testing, development, and deployment.14047MIT
- FlicenseNot gradedqualityDmaintenanceA template repository for building Model Context Protocol (MCP) servers with TypeScript, featuring full TypeScript support, testing setup, CI/CD pipelines, and modular architecture for easy extension.7-
- FlicenseNot gradedqualityDmaintenanceA TypeScript template for building Model Context Protocol servers that provides a structured foundation with automated tools, testing, and synchronization capabilities.7-
- AlicenseNot gradedqualityAmaintenanceA starter template for building remote Model Context Protocol servers using TypeScript, providing modern tooling and best practices while leveraging the MCP TypeScript SDK.54MIT
Appeared in Searches
- List of This Week's 15 Most Popular Free Minecraft Servers
- A customizable and widely supported Minecraft server
- Enhancing Prompt Engineering with MCP
- No-code platforms for application development using TypeScript, JavaScript, Python, with MCP server integration via agentic orchestration
- Setting Up AI Employee Tools on Docker Containers with MCP Servers