MCP Server Starter
MCP 서버 스타터
TypeScript를 사용하여 MCP(Model Context Protocol) 서버를 구축하기 위한 프로덕션에 바로 적용 가능한 스타터 템플릿입니다.
🚀 빠른 시작
저장소를 복제합니다
종속성 설치:
지엑스피1
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
Claude Desktop에 개발 MCP 서버를 추가하려면:
프로젝트를 빌드하세요:
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, 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
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.155 npm47MIT
- AlicenseCqualityDmaintenanceA TypeScript-based template for building Model Context Protocol servers, featuring fast testing, automated version management, and a clean structure for MCP tool implementations.155 npm4MIT
- 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.8 npm2MIT
- 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-