Skip to main content
Glama

Servidor MCP de Utilidades

Un servidor del Protocolo de Contexto de Modelo (MCP) completo que proporciona herramientas, recursos y prompts de utilidad. Construido con TypeScript y el SDK de MCP moderno.

📁 Estructura del Proyecto

El proyecto está organizado para facilitar la escalabilidad y la legibilidad:

.
├── index.ts              # Entry point: Initializes server and registers modules
├── src/
│   ├── tools.ts          # Tool handlers (Arithmetic, Randomness, Sampling)
│   ├── prompts.ts        # Prompt templates (Math Tutoring)
│   └── resources.ts      # Resource definitions (System Status)
├── tests/
│   └── utility.test.ts   # Comprehensive unit tests
├── package.json          # Dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── jest.config.js        # Testing configuration

Related MCP server: MCP Server TypeScript

🚀 Características

1. Herramientas

  • random_number: Genera un número entero aleatorio dentro de un rango especificado.

  • calculator: Realiza operaciones aritméticas básicas (add, subtract, multiply, divide).

  • suggest_arithmetic_task: Demuestra el muestreo de LLM solicitando al cliente/LLM que genere un problema matemático creativo.

2. Recursos

  • system_status (utility://system/status): Proporciona una actualización en tiempo real del estado de salud del servidor y el recuento de funciones.

3. Prompts

  • math_tutor: Una plantilla que guía al LLM para actuar como profesor de matemáticas, enfocándose opcionalmente en un tema específico.


📡 Llamada a la API (Postman / JSON-RPC)

El Protocolo de Contexto de Modelo utiliza JSON-RPC 2.0. Aunque este servidor actualmente se ejecuta sobre stdio (entrada/salida estándar), puedes interactuar con él utilizando estos formatos de mensaje si lo expones a través de un puente HTTP/SSE o utilizas un depurador.

🛠 Herramientas

Listar herramientas

Solicitud:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list"
}

Llamar a calculator

Solicitud:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "calculator",
    "arguments": {
      "operation": "multiply",
      "a": 5,
      "b": 10
    }
  }
}

📖 Recursos

Listar recursos

Solicitud:

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "resources/list"
}

Leer system_status

Solicitud:

{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "resources/read",
  "params": {
    "uri": "utility://system/status"
  }
}

📝 Prompts

Listar prompts

Solicitud:

{
  "jsonrpc": "2.0",
  "id": 5,
  "method": "prompts/list"
}

Obtener el prompt math_tutor

Solicitud:

{
  "jsonrpc": "2.0",
  "id": 6,
  "method": "prompts/get",
  "params": {
    "name": "math_tutor",
    "arguments": {
      "topic": "algebra"
    }
  }
}

🛠 Desarrollo

Configuración

npm install

Ejecución del servidor

npm start

Ejecución de pruebas

npm test

🤖 Uso del cliente personalizado

Hemos incluido un ejemplo de cliente integrado para que puedas ver cómo conectarte mediante programación:

npm run client

Este script hará lo siguiente:

  1. Generará el servidor como un proceso hijo.

  2. Se conectará a través de Stdio.

  3. Demostrará automáticamente cómo listar herramientas, llamar a la calculadora y leer recursos.

🔍 Pruebas con el Inspector MCP

Para interactuar con el servidor visualmente:

npx @modelcontextprotocol/inspector npx tsx index.ts

[!IMPORTANT] Este servidor utiliza el transporte Stdio. Se comunica a través de stdin y stdout. Para que Postman funcione a través de HTTP, sería necesario añadir una capa de transporte SSE (Server-Sent Events) a la configuración del servidor.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A TypeScript MCP server implementation using Express.js that provides basic tools like echo, time retrieval, and calculator functionality. Features session management, RESTful API endpoints, and Server-Sent Events for streamable communication.
    -
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A 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.
    284 npm
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A lightweight TypeScript-based MCP server that demonstrates how to build custom MCP tools by implementing a simple addition calculator. Serves as a starting point for building MCP-compatible tools.
    2,859 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A calculator-focused MCP server with TypeScript and Zod validation, providing tools, resources, and prompts for basic arithmetic operations.
    -