MCP Server Starter
The MCP Server Starter is a TypeScript-based framework for building and managing Model Context Protocol (MCP) tool servers.
Create and manage MCP tools: Generate new tools with structured directories, implementations, schemas, and tests using the provided scripts.
Hello tool: Includes a sample
hello_toolthat takes a requirednameinput and returns a greeting.Development tools: Utilizes Bun for fast testing, Biome for linting/formatting, and standard-version for automated version management.
JSON schema validation: Validates tool parameters through defined schemas.
Claude Desktop integration: Easily configure your server to work with Claude Desktop.
Publishing: Share your server as an npm package for others to use.
Used for linting and formatting code in the MCP server
Used for fast testing and development of the MCP server
The MCP server can be published to npm and installed from npm
The MCP server is built using TypeScript
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 called 'currency-converter'"
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 Server Starter
✨ 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 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' gives no information about what the tool actually does behaviorally - whether it's a read operation, a write operation, what permissions might be needed, what the response looks like, or any side effects. This is completely inadequate for a tool with any functionality.
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 fails to communicate essential information about the tool's purpose and behavior. Every word should earn its place, but here the words don't provide meaningful value beyond the tool name itself.
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 a tool with one parameter and no annotations or output schema, the description 'Hello tool' is completely inadequate. It doesn't explain what the tool does, when to use it, what behavior to expect, or what the output might be. For even a simple greeting tool, this description leaves the agent guessing about fundamental aspects of the tool's functionality.
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%, with the schema clearly documenting that the single required parameter 'name' is 'The name of the person to greet'. The description adds no parameter information beyond what's in the schema. With high schema coverage, the baseline is 3 even when the description provides no additional parameter semantics.
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 a tautology that merely restates the tool name without specifying what it actually does. While it hints at greeting functionality through the word 'Hello', it doesn't clearly state the verb+resource combination (e.g., 'greets a person by name'). The description is vague about the specific action performed.
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?
No guidance is provided about when to use this tool. The description doesn't mention any context, prerequisites, or alternatives. With no sibling tools, the bar is lower, but the description still fails to provide any usage context beyond the minimal implication from the name and single parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools, as there are no other tools to compare it to. The single tool's purpose is clearly distinct by default, eliminating any risk of misselection.
The tool name 'hello_tool' follows a consistent snake_case pattern, and with only one tool, there is no inconsistency in naming conventions. The naming is straightforward and predictable within this minimal set.
A single tool is generally too few for a server's purpose, as it suggests a very limited or trivial scope that may not support meaningful agent workflows. This is borderline for appropriateness, leaning toward insufficient coverage for typical MCP server use cases.
With only one tool named 'hello_tool', the server's domain is unclear, making it impossible to assess coverage meaningfully. There are likely significant gaps for any inferred purpose, as a single tool cannot provide CRUD/lifecycle operations or a coherent workflow, leading to severe incompleteness.
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 Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Primarily to be used as a template repository for developing MCP servers with FastMCP in Python, P…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseCqualityDmaintenanceA production-ready template for creating Model Context Protocol servers with TypeScript, providing tools for efficient testing, development, and deployment.18947MIT
- AlicenseCqualityDmaintenanceA TypeScript-based template for building Model Context Protocol servers, featuring fast testing, automated version management, and a clean structure for MCP tool implementations.1894MIT
- AlicenseNot gradedqualityDmaintenanceA modern, lightning-fast starter template for building Model Context Protocol applications with Bun, enabling developers to create MCP servers with TypeScript support, validation, and environment configuration.152MIT
- 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.11
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/coinselor/mcp-zenon'
If you have feedback or need assistance with the MCP directory API, please join our Discord server