MCP Server Starter
MCP サーバー スターター
TypeScript を使用して Model Context Protocol (MCP) サーバーを構築するための、本番環境対応のスターター テンプレート。
🚀 クイックスタート
リポジトリをクローンする
依存関係をインストールします:
bun install
Related MCP server: MCP Server Starter
✨ 主な特徴
高速テストと開発のためのBun
リンティングとフォーマットのためのバイオーム
標準バージョンによる自動バージョン管理
クリーンで保守しやすいプロジェクト構造
📂 プロジェクト構造
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⚙️ 構成
新しいツールの作成
このプロジェクトには、新しい MCP ツールの作成に役立つスクリプトが含まれています。
bun run scripts/create-tool.ts <tool-name>これにより、次のようになります。
src/tools/<tool-name>の下に新しいツールディレクトリを作成します。以下を含む基本的なツール構造を生成します。
index.ts (メイン実装)
schema.ts (ツールパラメータのJSONスキーマ)
test.ts (テストファイル)
新しいツールをエクスポートするためにツールのインデックスファイルを更新します
例:
bun run scripts/create-tool.ts weather🛠️ 開発
テストを実行:
bun testフォーマットコード:
bun run formatリントコード:
bun run lintプロジェクトのビルド:
bun run build
開発用 MCP サーバーを Claude Desktop に追加するには:
プロジェクトをビルドします。
bun run buildClaude Desktop の設定に追加:
// 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"] } } }
📜 バージョン管理
このプロジェクトでは、自動バージョン管理のためにstandard-versionを使用しています。新しいバージョンを作成するには、 bun run releaseを実行してください。
コミットメッセージの形式
feat: 新機能 (マイナーバージョンをアップグレード)fix:バグ修正(パッチバージョンをアップグレード)BREAKING CHANGE: 破壊的変更 (メジャーバージョンを上げる)
📦 npm への公開
npm にログインしていることを確認します。
npm loginプロジェクトをビルドします。
bun run buildパッケージを公開します。
npm publish
新しいバージョンを公開する前に、 bun run releaseを使用してバージョン番号を更新することを忘れないでください。
npmからインストールする(公開後)
Claude Desktop の設定に追加:
// 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 ambiguity or overlap between tools. The tool 'hello_tool' stands alone with a distinct purpose, making it impossible for an agent to misselect among alternatives.
A single tool inherently follows a consistent naming pattern, as there are no other tools to compare it against. The name 'hello_tool' uses snake_case and a clear verb-noun structure, which would be consistent if more tools were added.
A single tool is too few for most server purposes, as it limits functionality and suggests an incomplete or trivial implementation. For a server named 'MCP Server Starter', which implies a foundational or example setup, one tool feels insufficient to demonstrate meaningful capabilities.
With only a 'hello_tool', the server lacks any substantial coverage of a domain. There are obvious gaps, as no CRUD operations, lifecycle management, or core workflows are provided, making it severely incomplete for any practical use case.
Maintenance
Related MCP Connectors
Kickstart development with a customizable TypeScript template featuring sample tools for greeting,…
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
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 building Model Context Protocol servers in TypeScript, offering fast development with Bun, Biome linting, and automated version management.167 npmMIT
- AlicenseCqualityDmaintenanceA TypeScript-based template for building Model Context Protocol servers, featuring fast testing, automated version management, and a clean structure for MCP tool implementations.167 npm4MIT
- 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 npm-
- FlicenseNot gradedqualityDmaintenanceA TypeScript template for building Model Context Protocol servers that provides a structured foundation with automated tools, testing, and synchronization capabilities.8 npm-