MCP API Server
Built with TypeScript providing complete type definitions for API interactions and data validation
Uses Zod for schema validation and type safety when processing API requests and responses
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 API Serverwhat's the weather in Tokyo tomorrow?"
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 API Server
Servidor MCP (Model Context Protocol) con arquitectura modular que permite conectarse a APIs externas.
Estructura del Proyecto
src/
├── config/ # Configuración
│ ├── api.ts # Configuración de API
│ └── env.ts # Variables de entorno
├── services/ # Servicios de negocio
│ ├── httpClient.ts # Cliente HTTP base
│ ├── userService.ts # Servicio de usuarios
│ ├── weatherService.ts # Servicio de clima
│ └── companyService.ts # Servicio de empresas
├── tools/ # Herramientas MCP
│ ├── weatherTool.ts # Herramienta de clima
│ ├── userCreateTool.ts # Crear usuarios
│ ├── userListTool.ts # Listar usuarios
│ ├── companyCreateTool.ts # Crear empresas
│ └── companyListTool.ts # Listar empresas
├── types/ # Tipos TypeScript
│ ├── api.ts # Tipos base de API
│ └── company.ts # Tipos de empresas
└── main.ts # Punto de entradaRelated MCP server: Weather-server MCP Server
Características
✅ Arquitectura modular y escalable
✅ Cliente HTTP reutilizable
✅ Validación con Zod
✅ Tipos TypeScript completos
✅ Manejo de errores robusto
✅ Configuración por variables de entorno
Herramientas Disponibles
Clima
obtener-clima: Obtiene información del clima
Usuarios
crear-usuario: Crea un nuevo usuariolistar-usuarios: Lista todos los usuarios
Empresas (API Externa)
crear-empresa: Crea una nueva empresa vía APITamaños permitidos:
small,medium,large
listar-empresas: Lista empresas desde la API
Scripts Disponibles
# Construir el proyecto
npm run build
# Ejecutar en modo desarrollo
npm run dev
# Ejecutar el servidor
npm start
# Abrir inspector MCP
npm run inspectorVariables de Entorno
API_BASE_URL=https://api.ejemplo.com # URL base de la API
API_TIMEOUT=30000 # Timeout en milisegundos
NODE_ENV=development # Entorno de ejecuciónUso con Inspector MCP
Ejecutar el inspector:
npm run inspectorEl servidor se iniciará en modo debug
Se abrirá automáticamente el navegador con la interfaz
Agregar Nuevos Servicios
Para agregar un nuevo servicio (ej: productos):
Crear tipos en
src/types/product.tsCrear servicio en
src/services/productService.tsCrear herramientas en
src/tools/productCreateTool.ts, etc.Registrar herramientas en
src/main.tsActualizar configuración si es necesario
Estructura de API Externa
El servidor está configurado para trabajar con APIs que sigan este formato:
GET Response
{
"data": [...],
"links": {
"first": "string",
"last": "string",
"prev": "string",
"next": "string"
},
"meta": {
"current_page": 0,
"from": 0,
"last_page": 0,
"per_page": 0,
"to": 0,
"total": 0
}
}POST Request
{
"field1": "value1",
"field2": "value2"
}Available Tools
5 toolscrear-empresaC
Crea una nueva empresa con todos los datos requeridos
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| Yes | |||
| phone | Yes | ||
| address | Yes | ||
| website | Yes | ||
| industry | Yes | ||
| size | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a creation operation ('crea'), implying a write/mutation, but doesn't mention permissions needed, whether the operation is idempotent, what happens on duplicate data, or what the response looks like. For a mutation tool with zero annotation coverage, this is insufficient.
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, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a creation tool and front-loads the essential information.
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 mutation tool with 7 required parameters, 0% schema description coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain parameter meanings, behavioral traits, or what to expect upon success/failure. The agent would struggle to use this tool correctly without additional context.
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 0%, so the description must compensate. It mentions 'todos los datos requeridos' (all required data), which hints at the 7 required parameters but doesn't explain what each parameter means, their formats, or constraints. The description adds minimal value beyond what the schema structure already shows.
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 clearly states the verb ('crea' - creates) and resource ('una nueva empresa' - a new company), making the purpose specific and understandable. However, it doesn't differentiate from sibling tools like 'crear-usuario' beyond mentioning 'empresa' vs 'usuario', which is implicit but not explicit differentiation.
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 no guidance on when to use this tool versus alternatives like 'listar-empresas' or 'crear-usuario'. It mentions 'con todos los datos requeridos' (with all required data), which hints at prerequisites but doesn't specify when this tool is appropriate versus other company-related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crear-usuarioB
Crea un nuevo usuario con nombre, apellido y DNI
| Name | Required | Description | Default |
|---|---|---|---|
| nombre | Yes | ||
| apellido | Yes | ||
| dni | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Crea' implies a write operation, it doesn't specify permissions needed, whether the DNI must be unique, what happens on duplicate entries, or what the response contains. This leaves significant gaps for a mutation tool.
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, efficient sentence that directly states the tool's purpose and parameters without any unnecessary words. It's appropriately sized and front-loaded with the core action.
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 mutation tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It doesn't address behavioral aspects like error conditions, response format, or system constraints, leaving the agent with incomplete operational understanding.
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?
The description adds meaningful context beyond the schema by explaining that these parameters define a new user's identity (nombre, apellido, DNI). With 0% schema description coverage, this compensates well by clarifying the purpose of each parameter, though it doesn't provide format details like DNI length requirements.
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 clearly states the action ('Crea un nuevo usuario') and specifies the required attributes (nombre, apellido, DNI), which distinguishes it from sibling tools like listar-usuarios or crear-empresa. However, it doesn't explicitly differentiate from all siblings beyond the obvious resource difference.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, when not to use it, or refer to other tools like listar-usuarios for checking existing users before creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listar-empresasB
Lista todas las empresas registradas en la API
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does ('list all registered companies'). It doesn't disclose behavioral traits like whether it's read-only, pagination behavior, rate limits, authentication needs, or what 'all' means (e.g., active only, includes archived). For a list operation with zero annotation coverage, this is inadequate.
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, clear sentence with zero waste. It's appropriately sized for a simple list tool and front-loaded with the core action. Every word earns its place.
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 the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally complete but lacks context about behavior. It states what it does but not how it behaves (e.g., format, limitations). For a list tool with no structured fields, it should provide more operational context to be fully helpful.
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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter information, which is appropriate. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.
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 clearly states the verb ('Lista') and resource ('empresas registradas en la API'), making the purpose specific and understandable. It distinguishes from siblings like 'crear-empresa' (create) and 'listar-usuarios' (list users), but doesn't explicitly differentiate from 'obtener-clima' (get weather) since they're unrelated resources. A 5 would require explicit sibling differentiation.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing, or compare with other tools like 'crear-empresa' for creating companies or 'listar-usuarios' for listing users. The agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listar-usuariosB
Lista todos los usuarios registrados en el sistema
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Lista todos' implies a read-only operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the output takes. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
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, efficient Spanish sentence that directly states what the tool does without any unnecessary words. It's perfectly front-loaded with the core functionality and wastes no space on redundant information.
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 the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It tells the agent what the tool does but leaves important behavioral aspects unspecified. For a list operation with no structured output documentation, more context about return format would be helpful, but the description meets basic requirements.
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?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of parameters. The description doesn't need to add parameter information, and it appropriately doesn't mention any parameters. This meets the baseline expectation for a parameterless tool.
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 clearly states the action ('Lista todos') and resource ('usuarios registrados en el sistema'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'listar-empresas' or 'crear-usuario', but the specificity of 'usuarios' provides implicit distinction. This is clear but lacks explicit sibling differentiation.
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 no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when this tool is appropriate compared to 'crear-usuario' or 'listar-empresas', or any context about filtering or limitations. The agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obtener-climaC
Herramienta para obtener clima
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | Ciudad para obtener el clima |
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. The description only states the basic purpose without any behavioral traits such as data source, accuracy, rate limits, authentication needs, or error handling. It fails to disclose critical aspects like whether it's a read-only operation, what happens with invalid inputs, or response format.
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 extremely concise with a single Spanish phrase 'Herramienta para obtener clima'. It's front-loaded and wastes no words, but this brevity comes at the cost of under-specification. While efficient, it lacks the necessary detail for a tool description, making it more of a label than a helpful guide.
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 the tool's moderate complexity (a weather retrieval function with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what weather data is returned, how to interpret results, or any behavioral context. The schema covers the parameter, but the overall tool behavior remains poorly documented, leaving significant gaps 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?
The input schema has 100% description coverage, with the single parameter 'city' clearly documented in the schema as 'Ciudad para obtener el clima'. The description adds no additional meaning beyond this, as it doesn't elaborate on parameter usage, constraints, or examples. With high schema coverage, the baseline score of 3 is appropriate since the schema handles the parameter documentation adequately.
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 'Herramienta para obtener clima' is a tautology that essentially restates the tool name 'obtener-clima' in Spanish. It provides the basic verb+resource ('obtener clima'), but lacks specificity about what aspect of weather is retrieved (e.g., current conditions, forecast, temperature) and doesn't differentiate from sibling tools, which are unrelated business/user management tools.
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 on when to use this tool versus alternatives. The description doesn't mention any context, prerequisites, or exclusions. Given the sibling tools are unrelated (e.g., 'crear-empresa', 'listar-usuarios'), there's no implied usage relationship, leaving the agent with no information about appropriate scenarios for this weather tool.
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. Dates show when Glama detected each change.
5 tool updates
- First observed
crear-empresa - First observed
crear-usuario - First observed
listar-empresas - First observed
listar-usuarios - First observed
obtener-clima
TDQS
The tools are mostly distinct, with clear separation between company and user operations. However, 'obtener-clima' (get weather) is an outlier that could cause confusion about the server's primary domain, as it doesn't relate to the company/user management focus of the other tools.
Four of the five tools follow a consistent Spanish verb_noun pattern (crear-empresa, crear-usuario, listar-empresas, listar-usuarios). 'obtener-clima' also follows this pattern but uses a different verb ('obtener' vs 'crear/listar'), which is a minor deviation that maintains readability.
Five tools is a reasonable count, but the inclusion of 'obtener-clima' makes the scope feel borderline. The core company/user management domain has good coverage with four tools, but the weather tool seems out of place, suggesting either an incomplete or overly broad scope.
For the apparent company/user management domain, there are significant gaps. While create and list operations exist for both entities, there are no update, delete, or get-by-id tools, which are essential for full CRUD coverage. The weather tool adds confusion rather than addressing these gaps.
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
Hosted MCP server for Xweather weather data: conditions, forecasts, alerts, and more.
1A simple Typescript MCP server built using the official MCP Typescript SDK and smithery/cli. This…
An MCP server for weather information by @kulybaba
An MCP server for weather information by @kulybaba
Related MCP Servers
- AlicenseBqualityDmaintenanceA TypeScript-based MCP server that provides simulated weather data including current conditions, forecasts, alerts, and location search functionality through both MCP protocol and HTTP API endpoints.5281MIT
- -licenseNot gradedqualityNot gradedmaintenanceA TypeScript-based MCP server that provides weather information through resources and tools, allowing users to access current weather data and forecast predictions for different cities.5-
- FlicenseBqualityDmaintenanceA comprehensive template for building MCP servers with TypeScript, Fastify, and Docker support. Includes tools for calculations and weather data, resources for server information, and prompts for greetings with full development tooling.4-
- AlicenseNot gradedqualityDmaintenanceA TypeScript-based MCP server that provides backend API handling and facilitates communication between microservices. Features an organized structure with controllers, routes, and models for easy extensibility and maintenance.2251MIT
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/mcgiverdev/mcp-api-v1'
If you have feedback or need assistance with the MCP directory API, please join our Discord server