MCPServerL2
🚀 Servidor MCP Modular en TypeScript (M5L2)
Este proyecto implementa una arquitectura limpia, granular y modular para construir servidores Model Context Protocol (MCP) utilizando TypeScript y esquemas con Zod.
đź“‚ Estructura del Proyecto
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
📦 Instalación
Instala las dependencias del proyecto ejecutando:
npm install🛠️ Scripts Disponibles
CompilaciĂłn (TypeScript a JavaScript en
/dist):npm run buildEjecuciĂłn del Servidor:
Desarrollo (TS directo):
npm run devProducciĂłn (cĂłdigo compilado):
npm start
💡 Nota: Al ejecutarse por STDIO, el servidor se queda en espera activa de mensajes JSON-RPC. Para interactuar visualmente con él, utiliza el Inspector.
Probar con MCP Inspector:
npm run inspector
đź§Ş ÂżCĂłmo probarlo con MCP Inspector?
El Inspector levanta una interfaz web interactiva que conecta con el servidor por STDIO:
Compila el proyecto (si no lo has hecho):
npm run buildInicia el Inspector:
npm run inspectorAbre en tu navegador la URL que muestra la terminal (ej.
http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=...) para probar interactivamente las toolssumarysaludar.
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