MCPServerL2
🚀 TypeScript 기반 모듈형 MCP 서버 (M5L2)
이 프로젝트는 TypeScript와 Zod 스키마를 사용해 Model Context Protocol (MCP) 서버를 구축하기 위한 깔끔하고 세분화된 모듈형 아키텍처를 구현합니다.
📂 프로젝트 구조
M5L2/
├── src/
│ ├── schemas/
│ │ ├── sumar.schema.ts <-- Esquema Zod e inferencia de tipos para 'sumar'
│ │ └── saludar.schema.ts <-- Esquema Zod e inferencia de tipos para 'saludar'
│ ├── tools/
│ │ ├── sumar.tool.ts <-- Tool aislada de suma
│ │ ├── saludar.tool.ts <-- Tool aislada de saludo
│ │ └── index.ts <-- Registro centralizador de Tools
│ ├── server.ts <-- Fábrica de creación y configuración del McpServer
│ └── index.ts <-- Punto de entrada (Bootstrapping y Transporte STDIO)
├── dist/ <-- Código transpilado a JavaScript (generado tras 'npm run build')
├── tsconfig.json <-- Configuración estricta de TypeScript
├── package.json <-- Dependencias y scripts
└── README.mdRelated MCP server: MCP Server TypeScript Template
📦 설치
프로젝트의 의존성을 설치하려면 다음을 실행하세요:
npm install🛠️ 사용 가능한 스크립트
컴파일 (
/dist로 TypeScript를 JavaScript로 변환):npm run build서버 실행:
개발 (직접 TS):
npm run dev프로덕션 (컴파일된 코드):
npm start
💡 참고: STDIO로 실행되면 서버는 JSON-RPC 메시지를 기다리는 대기 상태가 됩니다. 서버와 시각적으로 상호작용하려면 Inspector를 사용하세요.
MCP Inspector로 테스트:
npm run inspector
🧪 MCP Inspector로 어떻게 테스트하나요?
Inspector는 STDIO를 통해 서버에 연결하는 대화형 웹 인터페이스를 실행합니다:
프로젝트를 컴파일하세요 (아직 하지 않은 경우):
npm run buildInspector를 시작하세요:
npm run inspector브라우저에서 터미널이 표시하는 URL(예:
http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=...)을 열어sumar및saludar도구를 대화형으로 테스트하세요.
Available Tools
2 toolssaludarB
Genera un saludo personalizado
| Name | Required | Description | Default |
|---|---|---|---|
| idioma | No | Idioma del saludo (es o en) | |
| nombre | Yes | Nombre de la persona a saludar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of explaining behavior. It indicates a non-destructive generation operation, but it does not disclose the return format, side effects, or default behavior for the optional language parameter.
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?
The description is a single short sentence with no filler. It is front-loaded and appropriately sized for the simplicity of the tool.
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?
For a simple two-parameter tool, the description is adequate but not complete. It implies the return value is a greeting, but with no output schema it does not explicitly describe the return shape, default language, or example usage.
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?
Both parameters are fully described in the input schema, so the schema already covers parameter semantics. The description adds no parameter-level detail beyond the idea of a personalized greeting, so the baseline score of 3 applies.
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 states a specific action: it generates a personalized greeting. It is clear and distinct from the sibling tool 'sumar' by domain, though it does not explicitly call out any alternative.
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?
There is no guidance about when to use this tool versus other tools. The description only states what it does, without mentioning conditions, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sumarA
Suma dos números y devuelve el resultado
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | Primer número a sumar | |
| b | Yes | Segundo número a sumar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It clearly states the core behavior: adds two numbers and returns the result. The absence of side effects is implicit in a pure arithmetic operation. Minor details like return type or error handling are not specified, but for such a simple tool this is acceptable.
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?
The description is a single, front-loaded sentence that expresses the operation and result with no wasted words. Every part of the sentence adds value.
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?
The tool is trivial, parameters are fully described in the schema, and the description covers the return behavior at a basic level. There is no output schema, but stating that the result is returned is sufficient for a two-number addition. It could have specified that the result is a number, but that is obvious.
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 both parameters are already documented in the input schema ('Primer número a sumar' and 'Segundo número a sumar'). The tool description adds no additional meaning about how 'a' and 'b' are used, so the baseline of 3 applies.
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 uses a specific verb ('suma') and resource ('dos números'), and states the outcome ('devuelve el resultado'), so an agent knows exactly what the tool does. It naturally distinguishes from the sibling 'saludar', which is a completely different domain.
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 behavior implies use whenever two numbers need to be added, and the sibling tool is unrelated, but the description does not explicitly state when to use it or provide exclusion criteria. No alternatives are mentioned, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Both tools have completely distinct purposes—one performs arithmetic, the other generates greetings. There is no possibility of confusion between them.
Both tool names are Spanish verbs in infinitive form ('sumar', 'saludar'), following a clear and consistent pattern.
With only two tools, the set feels minimal, but it may be appropriate for a simple demo or utility server. The count is borderline thin rather than excessive.
The server covers its apparent basic scope without dead ends: one math operation and one greeting function. Additional math operations could be considered a minor gap, but the surface is functionally usable.
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…
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceA simple TypeScript MCP server that provides two tools: one for greeting users with a customizable name and another for adding two numbers together.216MIT
- FlicenseNot gradedqualityDmaintenanceA demonstration MCP server built in TypeScript that shows how to implement stdio-based communication for integration with MCP clients. Serves as a template for building custom MCP servers with strong typing and maintainability.
- -licenseBqualityNot gradedmaintenanceA boilerplate project for quickly developing Model Context Protocol (MCP) servers using TypeScript SDK. Includes example tools for calculations and greetings, plus system information resources.3
- -licenseNot gradedqualityNot gradedmaintenanceA production-ready TypeScript MCP server providing basic tools (add, echo, timestamp), resources (server info, greetings, data access), and prompt templates (analyze, code-review, summarize). Serves as a foundation for building custom MCP servers with extensible architecture.225
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/Broflotsky/MCPServerL2'
If you have feedback or need assistance with the MCP directory API, please join our Discord server