Skip to main content
Glama
devutils-mcp-server

devutils-mcp-server

by paladini

DevUtils MCP Server

36 everyday developer tools for any MCP-compatible AI assistant. Hashing, encoding, UUID generation, JWT decoding, JSON formatting, network tools, text utilities, and more — all local, no external APIs.

Think of it as busybox for developer tools — small, essential, and always useful.

Also available as a plugin: devutils-cursor-plugin — one-click install for Cursor and Claude Code.


Why?

Every developer needs to hash strings, encode/decode data, generate UUIDs, decode JWTs, format JSON, calculate CIDR ranges, and convert timestamps every day. DevUtils MCP Server brings all of these tools directly into your AI assistant — works with Claude, Cursor, VS Code, Windsurf, and any other MCP-compatible client.


Related MCP server: Integrations MCP

Installation

Prerequisite: Node.js 18+ (Node 22 recommended). Verify with node -v.

One-click / plugin

Use the Add to Cursor / VS Code badges above, or install the plugin:

/plugin marketplace add paladini/devutils-cursor-plugin
/plugin install devutils-mcp@devutils-cursor-plugin

Cursor: Settings → Customize, or add from GitHub paladini/devutils-cursor-plugin.

npx (no install)

npx -y devutils-mcp-server

npm

npm install -g devutils-mcp-server
devutils-mcp-server

Docker

# Published image (when available)
docker run -i --rm ghcr.io/paladini/devutils-mcp-server

# Or build locally
docker build -t devutils-mcp-server .
docker run -i --rm devutils-mcp-server

# Or with Compose
docker compose build
docker compose run --rm -i devutils-mcp

Official MCP Registry

Listed as io.github.paladini/devutils-mcp-server. Search for io.github.paladini/devutils.

GitHub Packages

Releases are dual-published to npm and GitHub Packages as @paladini/devutils-mcp-server (see .github/workflows/release.yml). Prefer the public npm package for most installs; use GitHub Packages when you already authenticate against npm.pkg.github.com.

# After authenticating to npm.pkg.github.com for the @paladini scope:
npx -y @paladini/devutils-mcp-server

Smithery

Also available on Smithery.


Client setup

Cursor

One-click: use the Add to Cursor badge at the top of this README.

Plugin (recommended): Install DevUtils MCP from Cursor Settings → Customize.

Manual: Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "devutils": {
      "command": "npx",
      "args": ["-y", "devutils-mcp-server"]
    }
  }
}

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "devutils": {
      "command": "npx",
      "args": ["-y", "devutils-mcp-server"]
    }
  }
}

Or with Docker:

{
  "mcpServers": {
    "devutils": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/paladini/devutils-mcp-server"]
    }
  }
}

Claude Code

/plugin marketplace add paladini/devutils-cursor-plugin
/plugin install devutils-mcp@devutils-cursor-plugin

VS Code (GitHub Copilot)

One-click: use the VS Code badge at the top, or add to .vscode/mcp.json / user settings:

{
  "servers": {
    "devutils": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "devutils-mcp-server"]
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "devutils": {
      "command": "npx",
      "args": ["-y", "devutils-mcp-server"]
    }
  }
}

Docker MCP Toolkit (Docker Desktop)

If this server is available in the Docker MCP Catalog:

  1. Open Docker Desktop → MCP Toolkit

  2. Search for DevUtils

  3. Click Enable

Local development

npm install
npm run dev

Available tools (36)

Hash (6)

Tool

Description

hash_md5

Generate MD5 hash

hash_sha1

Generate SHA-1 hash

hash_sha256

Generate SHA-256 hash

hash_sha512

Generate SHA-512 hash

hash_bcrypt

Generate bcrypt hash (configurable rounds)

hash_bcrypt_verify

Verify string against bcrypt hash

Encoding (8)

Tool

Description

base64_encode

Encode string to Base64

base64_decode

Decode Base64 to string

url_encode

URL-encode (percent-encoding)

url_decode

Decode URL-encoded string

html_encode

Encode HTML entities

html_decode

Decode HTML entities

hex_encode

Encode string to hex

hex_decode

Decode hex to string

Generators (4)

Tool

Description

generate_uuid

Cryptographic UUID v4 (batch support)

generate_nanoid

Compact URL-friendly ID (configurable length)

generate_password

Secure password (configurable complexity)

generate_random_hex

Random hex string (configurable length)

JWT (2)

Tool

Description

jwt_decode

Decode JWT header & payload (with human-readable dates)

jwt_validate

Validate JWT structure & expiration

Formatters (3)

Tool

Description

json_format

Pretty-print or minify JSON

json_validate

Validate JSON with error location

json_path_query

Extract values using dot-notation path

Converters (5)

Tool

Description

timestamp_to_date

Unix timestamp → human date (timezone support)

date_to_timestamp

Date string → Unix timestamp

number_base_convert

Convert between bases (bin/oct/dec/hex/any)

color_convert

Convert colors (HEX ↔ RGB ↔ HSL)

byte_convert

Convert byte units (B/KB/MB/GB/TB/PB)

Network (2)

Tool

Description

cidr_calculate

CIDR → network, broadcast, mask, host range, host count

ip_validate

Validate & classify IPv4/IPv6 address

Text (6)

Tool

Description

text_stats

Character/word/line/sentence count, reading time

lorem_ipsum

Generate placeholder text

case_convert

Convert between camelCase, snake_case, PascalCase, etc.

slugify

Convert string to URL-friendly slug

regex_test

Test regex pattern against input

text_diff

Line-by-line diff between two texts


Architecture

src/
├── index.ts          # MCP server entry point (stdio transport)
└── tools/
    ├── hash.ts       # Cryptographic hash functions
    ├── encoding.ts   # Encode/decode utilities
    ├── generators.ts # ID and password generators
    ├── jwt.ts        # JWT decode and validation
    ├── formatters.ts # JSON formatting and querying
    ├── converters.ts # Data type and unit converters
    ├── network.ts    # Network calculation utilities
    └── text.ts       # Text analysis and manipulation

Tech stack: TypeScript + Node.js 22 · @modelcontextprotocol/sdk · bcryptjs · nanoid · zod

Zero external API dependencies. All tools run locally with no network calls.


Docker

The image uses a multi-stage build for minimal size:

  1. Build stage: Compiles TypeScript on Node 22 Alpine

  2. Runtime stage: Runs compiled JS on Node 22 Alpine as a non-root user

docker build -t devutils-mcp-server .

# Smoke-test with an MCP initialize request
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | docker run -i --rm devutils-mcp-server

FAQ & design philosophy

Why MCP, and not just a library?

Valid criticism: If you're writing Python scripts and need to hash something, hashlib is 2 lines of code. Why run MCP overhead?

Answer: This server is optimized for AI agents in multi-step workflows, not programmers writing code:

  1. AI hallucination cost >> MCP overhead — An AI model spending 50ms calling an MCP tool (vs. 1ms library call) is negligible when the alternative is the model making up a hash or using the wrong encoding.

  2. Reliable tool semantics — MCP enforces strict tool contracts. For example, jwt_decode always returns human-readable dates with timezone support.

  3. Universally accessible — Any MCP-compatible client can use these tools. A Python library only works if your agent is Python-based.

  4. Multi-tenant safety — MCP provides explicit tool whitelisting with input validation.

When to use DevUtils versus alternatives

Use DevUtils if:

  • You're using Claude, Cursor, VS Code Copilot, Windsurf, or any MCP-compatible AI assistant

  • You want reliable, validated utility operations in AI workflows

  • You need 36 tools in one package

Don't use DevUtils if:

  • You're writing regular application code (use native libraries)

  • You need extreme performance (direct library calls are faster)

  • Your AI client does not support MCP

Design philosophy

  • Small & focused: 36 utilities, zero external APIs, ~50MB container

  • Security-first: Non-root user, Alpine Linux, minimal attack surface

  • AI-friendly: Consistent naming (<domain>_<operation>), strict schemas, human-readable outputs

  • Client-agnostic: Works with any MCP-compatible client via stdio transport


Available on

Channel

Link

Official MCP Registry

io.github.paladini/devutils-mcp-server — registry.modelcontextprotocol.io

npm

devutils-mcp-server

GitHub Packages

@paladini/devutils-mcp-server (dual-publish on release tags)

GHCR (Docker)

ghcr.io/paladini/devutils-mcp-server

Glama

glama.ai/mcp/servers/paladini/devutils-mcp-server

Smithery

smithery.ai/server/devutils-mcp-server

Cursor / Claude plugin

devutils-cursor-plugin


Contributing

Questions and ideas: GitHub Discussions

Security reports: see SECURITY.md.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feat/amazing-tool)

  3. Commit your changes (git commit -m 'feat: add amazing tool')

  4. Push to the branch (git push origin feat/amazing-tool)

  5. Open a Pull Request

See CHANGELOG.md.


License

MIT © Fernando Paladini

Available Tools

36 tools
base64_decodeB

Decode a Base64 string back to plain text.

Inputs: input (required).

base64_encodeB

Encode a string to Base64.

Inputs: input (required).

byte_convertB

Convert between byte units (B, KB, MB, GB, TB, PB). Supports both binary (1024) and SI (1000) standards.

Inputs: value (required), from_unit (required), binary.

case_convertA

Convert a string between different casing styles: camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, and more.

Inputs: input (required), to (required).

cidr_calculateA

Calculate network details from a CIDR notation (e.g., '192.168.1.0/24'). Returns network address, broadcast, host range, and host count.

Inputs: cidr (required).

color_convertB

Convert colors between HEX, RGB, and HSL formats.

Inputs: color (required).

date_to_timestampA

Convert a date string to a Unix timestamp. Accepts ISO 8601 and common date formats.

Inputs: date (required).

generate_nanoidA

Generate a NanoID — a compact, URL-friendly unique ID.

Inputs: length, count.

generate_passwordB

Generate a secure random password with configurable options.

Inputs: length, uppercase, lowercase, numbers, +2 more.

generate_random_hexA

Generate a random hexadecimal string of the specified byte length.

Inputs: bytes.

generate_uuidA

Generate a cryptographically secure UUID v4.

Inputs: count.

hash_bcryptA

Generate a bcrypt hash of the given input string. Useful for password hashing.

Inputs: input (required), rounds.

hash_bcrypt_verifyA

Verify a string against a bcrypt hash. Returns true if matches.

Inputs: input (required), hash (required).

hash_md5A

Generate an MD5 hash of the given input string.

Inputs: input (required).

hash_sha1B

Generate a SHA-1 hash of the given input string.

Inputs: input (required).

hash_sha256A

Generate a SHA-256 hash of the given input string.

Inputs: input (required).

hash_sha512B

Generate a SHA-512 hash of the given input string.

Inputs: input (required).

hex_decodeB

Decode a hexadecimal string back to plain text.

Inputs: input (required).

hex_encodeA

Encode a string to its hexadecimal representation.

Inputs: input (required).

html_decodeA

Decode HTML entities in a string back to their original characters.

Inputs: input (required).

html_encodeB

Encode special characters in a string to HTML entities.

Inputs: input (required).

ip_validateA

Validate and classify an IPv4 or IPv6 address. Returns type, class, scope, and whether it's private/loopback/multicast.

Inputs: ip (required).

json_formatA

Format (pretty-print) a JSON string with configurable indentation. Can also minify JSON.

Inputs: input (required), indent.

json_path_queryB

Extract a value from a JSON object using a dot-notation path (e.g., 'user.address.city' or 'items[0].name').

Inputs: input (required), path (required).

json_validateB

Validate a JSON string and report any parsing errors with their approximate location.

Inputs: input (required).

jwt_decodeA

Decode a JWT (JSON Web Token) and display its header and payload without verifying the signature. Useful for debugging and inspecting tokens.

Inputs: token (required).

jwt_validateA

Validate the structure of a JWT. Checks format, Base64URL encoding, JSON validity, and expiration status. Does NOT verify the cryptographic signature.

Inputs: token (required).

lorem_ipsumB

Generate Lorem Ipsum placeholder text.

Inputs: type, count.

number_base_convertC

Convert a number between different bases (binary, octal, decimal, hexadecimal, or any base 2-36).

Inputs: value (required), from_base, to_base.

regex_testA

Test a regular expression pattern against an input string. Returns all matches with groups and indices.

Inputs: pattern (required), input (required), flags.

slugifyA

Convert a string to a URL-friendly slug. Removes special characters, replaces spaces with hyphens, and lowercases everything.

Inputs: input (required).

text_diffA

Compare two strings and show a simple line-by-line diff. Lines prefixed with '+' are additions, '-' are deletions, ' ' are unchanged.

Inputs: text1 (required), text2 (required).

text_statsA

Analyze text and return detailed statistics: character count, word count, line count, sentence count, paragraph count, and reading time.

Inputs: input (required).

timestamp_to_dateA

Convert a Unix timestamp (seconds or milliseconds) to a human-readable ISO 8601 date string.

Inputs: timestamp (required), timezone.

url_decodeA

Decode a URL-encoded string.

Inputs: input (required).

url_encodeA

URL-encode a string (percent-encoding).

Inputs: input (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 36 tools

    Disambiguation5/5

    Each tool targets a distinct utility operation: hash algorithms are separated by name, encode/decode pairs are explicit, and JSON/JWT/generation tools do not overlap despite being in the same category. Even closely related tools like jwt_decode and jwt_validate have clear boundary descriptions.

    Naming Consistency4/5

    Most tools follow a clear object_verb or hash_algorithm pattern, with encode/decode and generate_* pairs keeping strong consistency. Minor deviations exist with names like text_stats, lorem_ipsum, and slugify, which break the dominant verb-first pattern.

    Tool Count2/5

    At 36 tools, this exceeds the 25+ threshold and feels heavy for agent selection, even though each tool is individually small. The broad utility domain somewhat justifies the count, but the set would benefit from consolidation or grouping.

    Completeness4/5

    The surface covers common developer utilities well: hashing, encoding, JSON, JWT inspection, conversions, ID generation, and text processing. Minor gaps exist such as JWT signing/verification and HMAC/encryption, but no major workflow appears to dead-end.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      A comprehensive MCP server providing over 390 tools across 66 providers, including major SaaS platforms like GitHub, Slack, and Stripe. It enables AI assistants to interact directly with a wide array of public APIs and utility services through a single interface.
      -