A growing collection of developer utility tools — available as a CLI, REST API, and MCP server, all powered by a single .NET library.
Dev Tools is built around one idea: write a tool once, expose it everywhere. Every tool is a single C# class decorated with [ToolDefinition]. At build time, Roslyn source generators automatically produce a CLI command, an API endpoint, and an MCP tool definition - no boilerplate, no duplication.
The library covers everyday developer tasks: encoding and decoding (Base64, URL, case formats), cryptographic operations (hashing, encryption, JWT parsing), identifier generation (UUID v3-v7, ULID, tokens, passphrases), data formatting (JSON, XML), and more. Tools are independently installable and usable across all four frontends:
- CLI: a
dotnetglobal tool, fully pipeable - REST API: an ASP.NET Core service with interactive Scalar docs
- Web UI: a Blazor WebAssembly app (MudBlazor)
- MCP Server: plugs directly into Claude, Cursor, and other AI assistants
- NuGet: embed the tools directly in your .NET application
Tools are localized (English and Ukrainian), multi-arch Docker images are published on every release.
Try the live demo - no installation needed.
- Write once, expose everywhere — CLI, REST API, and MCP server all auto-generated from a single
[ToolDefinition]attribute via Roslyn source generators - Growing tool library — encoding, hashing, encryption, UUID/ULID generation, JWT parsing, formatters, and more
- Pipeable CLI — compose tools with Unix pipes:
echo "hello" | dev-tools base64-encoder - AI assistant integration — MCP server works with Claude, Cursor, and any MCP-compatible host
- Localization — English and Ukrainian
- Multi-arch Docker images —
linux/amd64andlinux/arm64, published on every release - Extensible — add a new tool in a single
.csfile and UI component; the rest is wired up at build time
See docs/tools.md for the full categorized reference with aliases and descriptions.
Run locally with Docker:
docker run -p 8080:8080 ghcr.io/dobermanch/dev-tools-webOpen http://localhost:8080 in your browser.
Install as a dotnet global tool:
dotnet tool install --global Dev.Tools.Console# Encode to Base64
dev-tools base64-encoder "Hello, World!"
# → SGVsbG8sIFdvcmxkIQ==
# Pipe tools together
echo "Hello, World!" | dev-tools base64-encoder | dev-tools base64-decoder
# Format JSON (sort keys)
echo '{"b":2,"a":1}' | dev-tools json-formatter --sort-keys Ascending
# Get help
dev-tools --help
dev-tools hash --helpOr run without installing via Docker:
docker run --rm ghcr.io/dobermanch/dev-tools-console base64-encoder "Hello, World!"
# → SGVsbG8sIFdvcmxkIQ==
# Pipe into the container
echo "Hello, World!" | docker run --rm -i ghcr.io/dobermanch/dev-tools-console base64-encoderRun as a Docker container:
docker run -p 8080:8080 ghcr.io/dobermanch/dev-tools-apiCall an endpoint:
# Encode to Base64
curl -X POST http://localhost:8080/tools/base64-encoder \
-H "Content-Type: application/json" \
-d '{"text": "Hello, World!"}'Interactive API documentation (Scalar UI) is available at http://localhost:8080/ui.
Once registered, your assistant can use any tool directly — e.g., "hash this text with SHA-256" or "generate 5 UUIDs".
Install the MCP server as a global tool and register it in your AI assistant configuration.
dotnet tool install --global Dev.Tools.McpAdd to AI agent MCP config
"dev-tools": {
"type": "stdio",
"command": "dev-tools-mcp"
}Use Docker dev-tools-mcp image and register it in your AI assistant configuration.
Using stdio transport:
"dev-tools": {
"type": "stdio",
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "MCP_TRANSPORT=stdio", "ghcr.io/dobermanch/dev-tools-mcp"]
}Using HTTP transport:
"dev-tools": {
"type": "http",
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/dobermanch/dev-tools-mcp"]
}Embed the tools directly in your .NET application.
dotnet add package Dev.Tools// Base64 encode
var encoded = await new Base64EncoderTool().RunAsync(
new Base64EncoderTool.Args("Hello, World!"),
CancellationToken.None);
Console.WriteLine(encoded.Output); // SGVsbG8sIFdvcmxkIQ==The dev-tools image bundles the Web UI, REST API, and MCP server into a single container — useful for self-hosting or quick local demos.
docker run -p 80:80 -p 8080:8080 -p 8081:8081 ghcr.io/dobermanch/dev-tools| Port | Service | Urls |
|---|---|---|
80 |
Web UI | http://localhost |
8080 |
REST API | http://localhost:8080, http://localhost:8080/ui |
8081 |
MCP server (HTTP transport) | http://localhost:8081 |
- .NET 10 SDK
- Docker (optional — for container builds)
- Make (optional — for convenience targets)
git clone https://github.com/dobermanch/dev-tools.git
cd dev-tools
dotnet restore
dotnet build
dotnet testRun a specific test class:
dotnet test --filter "ClassName=Base64EncoderToolTests"make tool # Pack and install Dev.Tools.Console globally
make mcp # Pack and install Dev.Tools.Mcp globally
make nuget # Pack the Dev.Tools NuGet package
make docker # Build all Docker images locally
make clean # Remove build artifacts and Docker images