loading…
Search for a command to run...
loading…
A TypeScript-based MCP server providing utility tools like arithmetic calculations, random number generation, and math tutoring prompts. It enables users to per
A TypeScript-based MCP server providing utility tools like arithmetic calculations, random number generation, and math tutoring prompts. It enables users to perform basic computational tasks and access system status resources through JSON-RPC 2.0 protocol.
A fully featured Model Context Protocol (MCP) server providing utility tools, resources, and prompts. Built with TypeScript and the modern MCP SDK.
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
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.system_status (utility://system/status): Provides a real-time status update of the server's health and feature count.math_tutor: A template that guides the LLM to act as a math teacher, optionally focusing on a specific topic.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.
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}
calculatorRequest:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "calculator",
"arguments": {
"operation": "multiply",
"a": 5,
"b": 10
}
}
}
Request:
{
"jsonrpc": "2.0",
"id": 3,
"method": "resources/list"
}
system_statusRequest:
{
"jsonrpc": "2.0",
"id": 4,
"method": "resources/read",
"params": {
"uri": "utility://system/status"
}
}
Request:
{
"jsonrpc": "2.0",
"id": 5,
"method": "prompts/list"
}
math_tutor PromptRequest:
{
"jsonrpc": "2.0",
"id": 6,
"method": "prompts/get",
"params": {
"name": "math_tutor",
"arguments": {
"topic": "algebra"
}
}
}
npm install
npm start
npm test
We've included a built-in client example so you can see how to connect programmatically:
npm run client
This script will:
To interact with the server visually:
npx @modelcontextprotocol/inspector npx tsx index.ts
[!IMPORTANT] This server uses the Stdio Transport. It communicates via
stdinandstdout. For Postman to work via HTTP, an SSE (Server-Sent Events) transport layer would need to be added to the server configuration.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"utility-mcp-server": {
"command": "npx",
"args": []
}
}
}