Skip to main content
Glama

Utility MCP Server

A fully featured Model Context Protocol (MCP) server providing utility tools, resources, and prompts. Built with TypeScript and the modern MCP SDK.

πŸ“ Project Structure

The project is organized for scalability and readability:

.
β”œβ”€β”€ 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

πŸš€ Features

1. Tools

  • random_number: Generates a random integer within a specified range.

  • calculator: Performs basic arithmetic (add, subtract, multiply, divide).

  • suggest_arithmetic_task: Demonstrates LLM Sampling by requesting the client/LLM to generate a creative math problem.

2. Resources

  • system_status (utility://system/status): Provides a real-time status update of the server's health and feature count.

3. Prompts

  • math_tutor: A template that guides the LLM to act as a math teacher, optionally focusing on a specific topic.


πŸ“‘ Calling the API (Postman / JSON-RPC)

Model Context Protocol uses JSON-RPC 2.0. While this server currently runs over stdio (standard input/output), you can interact with it using these message formats if you expose it via an HTTP/SSE bridge or use a debugger.

πŸ›  Tools

List Tools

Request:

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

Call calculator

Request:

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

πŸ“– Resources

List Resources

Request:

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

Read system_status

Request:

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

πŸ“ Prompts

List Prompts

Request:

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

Get math_tutor Prompt

Request:

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

πŸ›  Development

Setup

npm install

Running the Server

npm start

Running Tests

npm test

πŸ€– Using the Custom Client

We've included a built-in client example so you can see how to connect programmatically:

npm run client

This script will:

  1. Spawn the server as a child process.

  2. Connect via Stdio.

  3. Automatically demonstrate listing tools, calling the calculator, and reading resources.

πŸ” Testing with MCP Inspector

To interact with the server visually:

npx @modelcontextprotocol/inspector npx tsx index.ts
IMPORTANT

This server uses theStdio Transport. It communicates via stdin and stdout. For Postman to work via HTTP, an SSE (Server-Sent Events) transport layer would need to be added to the server configuration.

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.
    239 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.
    884 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.
    -