HelloWorld MCP Server
# HelloWorld MCP Server
A simple HelloWorld MCP (Model Context Protocol) server experiment built with TypeScript.
## Features
This MCP server provides two simple tools:
- **hello**: Say hello to someone (default: "World")
- **add**: Add two numbers together
## Prerequisites
- Node.js 22+ (LTS)
- npm
- nvm (recommended for Node.js version management)
- direnv (for environment management)
## Setup
1. **Node.js Version Management**
```bash
# If you have nvm installed:
nvm use
# This will use Node.js version 22 as specified in .nvmrc
```
2. **Environment Setup with direnv**
```bash
# Allow direnv for this directory
direnv allow
# This will automatically add node_modules/.bin to your PATH
```
3. **Install Dependencies**
```bash
npm install
```
## Development
### Available Scripts
- `npm run dev` - Run the server in development mode using tsx
- `npm run build` - Compile TypeScript to JavaScript
- `npm start` - Run the compiled server
- `npm run lint` - Run ESLint on the source code
- `npm run lint:fix` - Run ESLint and automatically fix issues
- `npm run clean` - Remove the dist directory
### Running the Server
For development:
```bash
npm run dev
```
For production:
```bash
npm run build
npm start
```
## MCP Server Usage
This server communicates via stdio and implements the Model Context Protocol. It provides:
### Tools
1. **hello**
- Description: Say hello to someone
- Parameters:
- `name` (optional): The name of the person to greet (default: "World")
- Example: `{"name": "Alice"}` ā "Hello, Alice! š Welcome to the HelloWorld MCP server!"
2. **add**
- Description: Add two numbers together
- Parameters:
- `a` (required): First number
- `b` (required): Second number
- Example: `{"a": 5, "b": 3}` ā "5 + 3 = 8"
## Project Structure
```
āāā src/
ā āāā index.ts # Main MCP server implementation
āāā dist/ # Compiled JavaScript (after build)
āāā .nvmrc # Node.js version specification
āāā .envrc # direnv configuration
āāā eslint.config.js # ESLint configuration
āāā tsconfig.json # TypeScript configuration
āāā package.json # Node.js project configuration
āāā README.md # This file
```
## Code Quality
This project uses:
- **TypeScript** for type safety
- **ESLint** with TypeScript support for code quality
- **Strict TypeScript configuration** for better type checking
## License
MIT
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: 'add' performs a mathematical operation on numbers, while 'hello' handles a greeting interaction. There is no overlap or ambiguity between these functions, making tool selection straightforward for an agent.
Both tool names are simple, lowercase verbs ('add' and 'hello') that clearly indicate their actions. While they don't follow a strict verb_noun pattern, the naming is perfectly consistent in style and readability for this minimal set.
With only two tools, this server feels extremely thin and under-scoped for any meaningful domain. The tools are trivial and unrelated, suggesting either a demo/test server or one with significant missing functionality for practical use.
The server lacks a coherent domain, making completeness impossible to assess meaningfully. The tools are isolated operations (math and greeting) with no logical connection or coverage of any workflow, representing a severely incomplete surface for any real-world purpose.