Skip to main content
Glama
README.md
# basic-mcp

MCP server providing deterministic tools for operations that LLMs commonly struggle with: time, math, counting, randomness, and validation.

## Installation

```bash
bun install
```

## Usage

### With Claude Code

Add to `~/.claude.json`:

```json
{
  "mcpServers": {
    "basic-tools": {
      "command": "bun",
      "args": ["run", "/path/to/basic-mcp/index.ts"]
    }
  }
}
```

### Standalone

```bash
bun run index.ts
```

## Tools

### Time
| Tool | Description |
|------|-------------|
| `now` | Get current date/time with timezone support |
| `date_diff` | Calculate difference between two dates |
| `date_add` | Add/subtract time from a date |
| `unix_timestamp` | Convert between Unix timestamps and dates |

### Math
| Tool | Description |
|------|-------------|
| `calculate` | Evaluate math expressions (supports "15% of 200", sqrt, trig, etc.) |
| `convert_units` | Convert between units (km to miles, celsius to fahrenheit, etc.) |
| `statistics` | Calculate mean, median, mode, std dev, min, max, sum |

### Strings
| Tool | Description |
|------|-------------|
| `count` | Count characters, words, lines, bytes, sentences, paragraphs |
| `hash` | Generate MD5, SHA1, SHA256, SHA512 hashes |
| `uuid` | Generate UUID v4 |
| `base64` | Encode/decode base64 |
| `regex_test` | Test strings against regex patterns |

### Random
| Tool | Description |
|------|-------------|
| `random_int` | Cryptographically secure random integer |
| `random_float` | Cryptographically secure random float |
| `random_choice` | Select random item(s) from a list |
| `shuffle` | Randomly shuffle an array (Fisher-Yates) |

### Validation
| Tool | Description |
|------|-------------|
| `validate` | Validate email, URL, IPv4, IPv6, UUID, JSON, credit card (Luhn) |
| `json_parse` | Parse JSON with optional path extraction |
| `url_parse` | Parse URL into components |
| `dns_lookup` | DNS lookup (A, AAAA, MX, TXT, NS, CNAME records) |

## License

MIT