"Utils" is a web-based utility server that provides small mundane task solutions. The project hosts various developer tools accessible both through a modern web UI, RESTful API endpoints and MCP endpoints, making it perfect for quick tasks, automation, and integration into other workflows.
- π Getting started
- βοΈ Configuration
- π§° Available Tools
- π Web Interface
- π‘ API Endpoints
- π€ Model Context Protocol (MCP) Support
- π§ͺ Testing
- π Future Plans
Node.js is required to run this project. You can find Node.js installation instructions for your platform.
-
Clone the repository and navigate to the project directory
-
Install dependencies:
npm install
-
(Optional) Create a
.envfile at the root of the project directory for custom configuration. See βοΈ Configuration.cp .env.example .env
-
Start the server:
npm start
-
Open your browser and navigate to
http://localhost:5000to access the web interface
The server will start on port 5000 by default and provide both the web interface, API and MCP endpoints.
# The env to run (dev, prod, test). This affects things like the logs. (default: "dev")
NODE_ENV=dev
# Application version (default: "1.0.0")
VERSION=1.0.0
# Optional: Port of the express server hosting the http/mcp endpoints and UI (default: 5000)
PORT=5000- β MD5 - Generate MD5 hashes
- β SHA1 - Generate SHA1 hashes
- β SHA256 - Generate SHA256 hashes
- β SHA512 - Generate SHA512 hashes
- β JWT Token Decoding - Decode JWT tokens to view header and payload
- β Token Information Display - Shows algorithm, issued at, expires at times
- β Timestamp Conversion - Convert between various time formats
- β Multiple Format Support - Unix timestamps, ISO strings, and more
- β Relative Time Display - Shows human-readable relative time
- β UUID Generation - Generate UUIDs/GUIDs
- β Batch Generation - Generate multiple GUIDs at once
- β Customizable Count - Specify the number of GUIDs to generate
- β CRON Description - Convert CRON expressions to human-readable descriptions
- β Bidirectional Conversion - Convert between JSON and YAML formats
- β Pretty Formatting - Well-formatted output
- β MHT File Processing - Fix corrupted MHT files
- β Base64 Image Extraction - Extract and display embedded images
- β Image Download - Download extracted images individually
Access the web interface at http://localhost:5000 when the server is running.
All API endpoints return JSON responses.
GET /api/ping- Health check endpointPOST /api/generator/hash- Generate hashes for provided textGET /api/generator/guid/:count?- Generate GUIDs (default: 10)POST /api/jwt/decode- Decode JWT tokensPOST /api/time/convert- Convert time formatsPOST /api/cron/describe- Parse CRON expressionsPOST /api/serialize/json/yml- Convert JSON to YAMLPOST /api/serialize/yml/json- Convert YAML to JSONPOST /api/mht- Process MHT files
// Generate hashes
fetch('/api/generator/hash', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text: 'Hello, World!' })
});
// Decode JWT
fetch('/api/jwt/decode', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ token: 'your.jwt.token' })
});
// Generate 5 GUIDs
fetch('/api/generator/guid/5');TODO: add full api reference doc
The project includes MCP server support for integration with AI tools and assistants. MCP enables AI assistants to interact with the utility tools programmatically.
- Stateless HTTP Transport - Each request creates isolated server instances
- Tool Registration - Exposes utility functions as MCP tools
- Concurrent Client Support - Handles multiple clients without ID collisions
Access all MCP functionality via (not all tools are mcp available):
POST /mcp- π§ Using with vscode
- π Using with Claude Desktop
- π Using MCP Inspector
Follow prompts to add an http mcp server.
Alternatively, find your vscode code settings file and appropriately add the snippet below:
"mcp": {
"servers": {
"utils-mcp-server": {
"url": "http://localhost:5000/mcp"
}
}
}Add the following configuration to your Claude Desktop MCP settings:
{
"mcpServers": {
"utils": {
"command": "node",
"args": ["/path/to/utils/mcp_server.js"],
"env": {
"PORT": "5000"
}
}
}
}Launch the web inspector with npx @modelcontextprotocol/inspector
Setup the connection to the mcp server:
List the available tools and test:
The project includes testing with multiple test suites:
# Run unit tests
npm run test:unit
# Run API tests
npm run test:api
# Run integration tests
cd integration && npm run test:integrationTesting stack:
- Jest - Test framework
- Supertest - API testing
- Playwright - Integration testing
- Cross-env - Environment variable management
- Support for additional serialization formats (XML, etc?)
- URL encoding/decoding utilities
- Password generator with customizable rules
- Dockerize app




