Skip to main content
Glama

Castov


⚡ What is Castov?

Modern AI agents and developer workflows suffer from two critical flaws:

  1. Agent Hallucinations on Exact Operations: LLMs frequently blunder arithmetic for CIDR network masks, time zone offsets, epoch milliseconds, and cryptographic key derivations.

  2. Data & Secret Leakage: Sending system logs, environment variables, or tokens to third-party cloud APIs presents unacceptable security hazards.

Castov solves both. It acts as an in-situ Execution Layer for developer environments. It provides deterministic, offline, and instant utilities delivered directly to your terminal, editor, Docker containers, and AI agents through the Model Context Protocol (MCP).

Everything runs 100% locally. No external analytics, no telemetry, and zero cloud roundtrips.


Related MCP server: Polymath MegaBlaster MCP

🤖 AI Agent Setup (Model Context Protocol - MCP)

Castov ships with a built-in, production-grade JSON-RPC 2.0 stdio MCP server supporting both Content-Length framed and ndjson stream protocols.

1. Claude Desktop

Add Castov to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

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

2. Cursor IDE & Windsurf

Go to Settings → Features → MCP Servers → Add New MCP Server:

  • Name: castov

  • Type: command

  • Command: npx -y castov mcp

Alternatively, add to your project's .cursor/mcp.json:

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

Native Tools Exposed to Agents (10 Tools — All 100% Local & Read-Only)

MCP Tool

Capability

Example Agent Prompt

castov_port

Identifies listening services, protocol mappings, and inspects process collision

"Why is port 3000 busy and what service uses it?"

castov_cidr

Calculates IPv4 subnet masks, wildcard, broadcast, and usable host count

"Calculate usable IP range and subnet mask for 10.240.0.0/22"

castov_detect_id

Decodes embedded creation timestamps from UUIDv7, ULID, ObjectId, Snowflake

"When was this MongoDB ObjectId or Snowflake ID created?"

castov_timestamp

Bidirectional epoch conversion to ISO 8601, UTC, and localized representations

"Convert 1713456789 to human UTC and ISO format"

castov_cron

Parses 5-field cron schedules into plain English and computes next 5 runs

"Explain cron 0 9 * * 1-5 and show the next 5 runs in America/New_York"

castov_timezone

Converts timestamps across IANA time zones with DST transition warnings

"Convert 2026-03-29 14:30 from America/New_York to Europe/Paris"

castov_secret

Generates CSPRNG 256-bit Hex, Base64URL, API keys, and sortable UUIDv7 secrets

"Generate a 256-bit cryptographic secret for AUTH_SECRET and JWT_SECRET"

castov_jwt_decode

Decodes JWT headers, payloads, and exp status offline with zero network calls

"Decode this JWT offline and check if it is expired"

castov_hash

Computes SHA-256/384/512, SHA-1, MD5 digests and Base64/Base64URL encodings

"Compute the SHA-256 hex digest and Base64URL encoding of this webhook payload"

castov_scan_secrets

Audits code snippets, git diffs, or .env blocks for leaked API keys & private keys

"Scan this git diff for any accidentally hardcoded AWS, Stripe, or OpenAI keys"


📦 Multi-Channel Distribution

Castov is available everywhere modern engineering happens:

1. Terminal CLI (Node.js / npm)

Run instantly without installation:

npx castov --help

Or install globally:

npm install -g castov
castov --help

2. Docker Container (Docker Hub)

Lightweight Alpine Linux container (node:20-alpine) running under a non-root node user:

# Run one-off command
docker run --rm castovdev/castov:latest uuid --v7

# Interactive diagnostic shell
docker run -it --rm castovdev/castov:latest

3. Homebrew Tap (macOS & Linux)

Install natively via Brew:

brew tap castovdev/castov
brew install castov

# Verify installation
castov --version

4. VS Code, Cursor & Windsurf Extensions

Install the official extension directly within your editor:

  • VS Code Marketplace: Search Castov or install Castov.castov-vscode

  • Open VSX Registry: Available for Cursor, Windsurf, VSCodium: castov/castov-vscode

# Command line installation
code --install-extension Castov.castov-vscode

5. GitHub Action (CI/CD Pipelines)

Automate security scans, secret leakage audits, and environment checks in your GitHub workflows:

- name: Run Castov Secret Scanner
  uses: castovdev/castov-action@v1.0.0
  with:
    command: 'scan .'

🛠️ CLI Quickstart & Core Commands

castov <command> [options]

🔍 Process & Port Manager (EADDRINUSE Killer)

Inspect what process is occupying a port or kill it cleanly:

# Inspect service and protocol
castov port 3000

# Inspect active process PID and terminate it immediately
castov port 3000 --kill

🔐 Cryptographic Secret Generator

Generate high-entropy keys for .env, NEXTAUTH_SECRET, JWT signing, and API authentication:

castov secret
castov secret --len 64

🌐 Subnet & CIDR Calculator

Calculate network masks, wildcard masks, and usable host ranges with zero external lookups:

castov cidr 192.168.1.0/24
castov cidr 10.0.0.0/16

🛡️ Local Secret Leak Scanner

Recursively scan local directories for committed or uncommitted API tokens (AWS, Stripe, OpenAI, GitHub, Private Keys):

castov scan .

🚑 Crash Log & Terminal Error Healer

Pipe terminal crashes or paste error stack traces for instant, deterministic remediation:

castov fix "Error: listen EADDRINUSE: address already in use :::8080"
npm run build 2>&1 | castov fix

🧠 AI Rules & System Prompt Generator

Bootstrap .cursorrules or CLAUDE.md with hardened engineering practices:

castov rules nextjs --write
castov rules fastapi
castov rules rust

⏱️ Universal ID & Timestamp Detector

Extract metadata and epoch timestamps from any modern distributed identifier:

castov detect 018e3a2b-8a5c-7b00-9821-654321abcdef
castov detect 507f1f77bcf86cd799439011
castov ts 1713456789

🌐 Complete Suite of 63 Developer Tools

In addition to the CLI and MCP Server, Castov provides 63 client-side web tools accessible at castov.com:

Category

Featured Tools

Security & Privacy

Steganography Env Vault, Client-Side Secret Scanner, Zero-Knowledge Env Vault, Hash Generator (SHA-256/512/MD5), JWT Decoder, Base64 Encoder/Decoder, UUID v4/v7 Generator.

Networking & DevOps

EADDRINUSE Port Inspector, IPv4 CIDR Calculator, Dockerfile Visualizer, P2P Ghost Tunnel, Fetch Mock Generator, API Load Tester, DNS & Header Inspector.

Data & Architecture

JSON to TypeScript Type Generator, 3D JSON Galaxy, Interactive JSON Formatter & Viewer, SQLite In-Browser Fiddle, Line-by-Line Diff Checker, AST Conflict Telepathy.

Frontend & UI

Glassmorphism CSS Studio, App Mockup Generator, High-Resolution Code-to-Image Renderer, Favicon Generator, GitHub Profile README Builder.

Time & Scheduling (25+ Tools)

Unix Timestamp Converter, Epoch Converter, ISO 8601 & RFC 3339 Parser, Timezone Converter & Simulator, Plain-English Cron Generator & Explainer, World Clock, Business Hours Matrix, Milliseconds to Date.


🔒 Privacy & Zero-Telemetry Guarantee

Engineering tools should never leak your IP, company secrets, or code snippets.

  • 0 Analytics or Tracking Cookies: No PostHog, Google Analytics, or third-party telemetry scripts.

  • Offline First: All cryptographic operations rely on the browser and runtime's native SubtleCrypto / Web Crypto API.

  • Air-Gap Compatible: Both the CLI, Docker image, and web application can run in offline and restricted intranet environments.


💻 Local Development

Castov is built with Next.js 16 (App Router), TypeScript (Strict), and Tailwind CSS v4.

# 1. Clone repository
git clone https://github.com/castovdev/castov.git
cd castov

# 2. Install dependencies
npm install

# 3. Setup local environment
cp .env.example .env.local

# 4. Start development server
npm run dev

# 5. Build CLI and Web applications
npm run build

To run tests across packages:

npm run test

📄 License

Castov is open-source software licensed under the MIT License. Free for personal, commercial, and enterprise usage.

Available Tools

10 tools
castov_cidrA
Read-onlyIdempotent

Calculate IPv4 CIDR subnet mask, wildcard mask, network address, broadcast address, usable IP range, and total host count.

ParametersJSON Schema
NameRequiredDescriptionDefault
cidrYesIPv4 CIDR block such as '192.168.1.0/24', '10.0.0.0/16', or '/24'

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing further behaviorally — no mention of how malformed CIDRs are handled or whether host bits set in the address are accepted — so it neither helps nor hurts beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, zero filler, output list front-loaded immediately after the verb. Nothing padded and nothing left dangling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the six returned values so the agent knows what it gets back, and the annotations cover the safety profile. It falls short only on edge-case behavior (invalid or malformed CIDR input), which an agent might need to plan around.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter's schema text already gives three concrete formats including the shorthand '/24'. The description adds no syntax or constraint detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Calculate') and resource ('IPv4 CIDR') and enumerates exactly what is produced: subnet mask, wildcard mask, network address, broadcast address, usable range, host count. None of the unrelated siblings (castov_hash, castov_jwt_decode, castov_cron, etc.) can be confused with it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and the output list — an agent will reach for this when it needs subnet math — but there is no explicit statement of when to use it versus anything else, no preconditions, and no note on invalid input. For a single-purpose utility with no competing sibling, implied usage is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

castov_cronA
Read-onlyIdempotent

Parse a 5-field cron expression into plain English and calculate the next 5 upcoming execution times in a specified IANA timezone.

ParametersJSON Schema
NameRequiredDescriptionDefault
timezoneNoOptional IANA timezone name (defaults to 'UTC', e.g. 'America/New_York', 'Europe/London')
expressionYes5-field cron expression (minute hour day-of-month month day-of-week), e.g. '*/15 * * * *' or '0 9 * * 1-5'

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuine behavioral detail beyond that: it returns a plain-English explanation plus the next 5 execution times, and applies the IANA timezone to the calculation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero filler, front-loading the parse action and then the calculation, with no redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so concretely (English explanation plus 5 upcoming times). It is only slightly incomplete in not mentioning behavior for invalid or non-5-field expressions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description restates the same facts (5-field cron expression, IANA timezone) without adding format syntax, edge-case handling, or default behavior beyond what the schema already documents. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States specific verbs and resources: parse a 5-field cron expression into plain English, and calculate the next 5 execution times. This clearly distinguishes it from siblings like castov_timestamp and castov_timezone, which do different work.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (interpreting a cron schedule or previewing its next runs), but offers no explicit when-not conditions or pointers to alternatives such as castov_timezone for timezone conversion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

castov_detect_idA
Read-onlyIdempotent

Detect identifier format and decode embedded creation timestamp from MongoDB ObjectId, UUIDv7, ULID, or Twitter/Discord Snowflake ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIdentifier string (UUIDv7, ULID, 24-hex ObjectId, or numeric Snowflake ID)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and non-destructive behavior, so the safety profile is clear. The description adds the supported format list and the fact that it decodes an embedded creation timestamp, which is useful behavioral context, but it does not discuss error handling or invalid-ID behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that names the action and all supported formats; there is no filler or repetition. It earns its place efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only detection tool with full schema coverage and rich annotations, the description covers the essential input domain and output intent. It could better clarify the response shape (no output schema exists) and invalid input handling, but it is largely complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents the single 'id' parameter's expected types. The description adds only a minor detail ('Twitter/Discord' qualifier on Snowflake) beyond the schema's 'numeric Snowflake ID', so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Detect'/'decode') and resource ('identifier format'/'embedded creation timestamp'), and enumerates exact supported identifier types (MongoDB ObjectId, UUIDv7, ULID, Twitter/Discord Snowflake). This enumeration distinguishes it from sibling tools such as castov_timestamp and castov_jwt_decode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage whenever an agent needs to identify an ID's format or extract its creation time, but it offers no explicit when-to-use/when-not-to-use guidance and does not name alternatives such as castov_timestamp. It is adequate context but leaves routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

castov_hashA
Read-onlyIdempotent

Compute deterministic cryptographic hashes (sha256, sha384, sha512, sha1, md5) and Base64 / Base64URL encodings of input text locally.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesInput text string to hash and encode
algorithmNoHash algorithm to use (default: 'sha256')

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=false, idempotentHint=true and destructiveHint=false, so safety and locality are covered. The description's 'deterministic' and 'locally' largely restate idempotentHint and openWorldHint rather than adding new behavior, and it says nothing about output format (hex vs raw, padding) or whether Base64 output requires an extra request.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence with the action, algorithm enumeration and execution scope front-loaded; no filler or redundant clauses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a pure-compute tool with rich annotations the description is nearly adequate, but with no output schema it never states what comes back (hex digest string, encoding case, padding), and the unprompted Base64/Base64URL claim leaves an unanswered question about how that output is obtained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with only two parameters, so the schema already documents 'text' and the algorithm enum with its default. The description's algorithm list duplicates the enum, and its Base64/Base64URL mention implies an output-format choice that no parameter exposes, which could mislead rather than clarify.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (compute) plus the resources (cryptographic hashes, Base64/Base64URL encodings) and names the exact algorithms, which cleanly separates it from siblings like castov_jwt_decode or castov_scan_secrets. It stops short of explicitly naming any sibling or stating a boundary against them, and the Base64/Base64URL claim has no corresponding parameter in the schema, which slightly muddies the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the tool for hashing arbitrary text rather than decoding JWTs or scanning secrets. There is no explicit when-to-use statement, no exclusions, and no mention of when a sibling such as castov_jwt_decode would be the better pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

castov_jwt_decodeA
Read-onlyIdempotent

Decode a JSON Web Token (JWT) header and payload locally offline without external network calls, inspecting claims (exp, iat, nbf, sub, iss) and expiration status.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesEncoded JWT string (header.payload.signature)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description usefully reinforces the offline/no-network behavior and names the claims inspected, but it never states the key limitation that this is a decode-only operation with no signature verification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with the core action front-loaded and zero filler; the offline constraint and inspected claims follow in a natural reading order.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does carry the burden of indicating what comes back, and it lists the extracted claims (exp, iat, nbf, sub, iss) plus expiration status. It is nearly complete for a one-parameter tool, missing only the caveat that no signature validation occurs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter 'token' is fully documented in the schema as header.payload.signature, so the schema does the heavy lifting. The description adds no format or syntax detail beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (Decode) and resource (JWT header and payload), and no sibling tool (hash, secret, scan_secrets, cidr, etc.) overlaps with JWT decoding, so the tool is trivially distinguishable. It also scopes the operation as a local, read-only inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: decode a token to inspect its claims and expiration. There is no explicit when-to-use statement, no exclusions, and no named alternative, though none of the siblings is a plausible substitute, which limits the cost of the omission.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

castov_portA
Read-onlyIdempotent

Inspect network port number (1-65535) for standard IANA service assignment, transport protocol (TCP/UDP), and typical application purpose.

ParametersJSON Schema
NameRequiredDescriptionDefault
portYesTCP/UDP port number between 1 and 65535 (e.g. 3000, 5432, 6379)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the agent knows this is a safe, repeatable lookup. The description adds the range constraint (1-65535) and the shape of the answer, but no extra behavioral context such as lookup source, offline vs online resolution, or completeness guarantees. With annotations carrying the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the verb and resource, no filler or redundancy. It earns its length entirely by enumerating what the inspection returns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description usefully pre-declares the three fields the caller will get back (IANA assignment, transport protocol, application purpose), which is the main missing structured information. Adequate for a simple one-parameter lookup, though it could mention result reliability or unknown-port behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter is fully documented there with the 1-65535 range and examples (3000, 5432, 6379). The description merely restates the same range, so it adds no meaning beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Inspect") and resource ("network port number") plus the exact information returned (IANA service assignment, TCP/UDP protocol, typical application purpose). The domain is clearly distinct from siblings like castov_jwt_decode or castov_cidr, though it never names a sibling to route against, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context (you have a port number and want to know what service it maps to), but it never states when to use this versus alternatives or any preconditions. No exclusions or sibling routing are given, so it is implied usage only.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

castov_scan_secretsB
Read-onlyIdempotent

Scan a code snippet, git diff, or .env configuration text locally for leaked credentials (AWS Access Keys, Stripe Live Keys, OpenAI API Keys, GitHub PATs, Slack Tokens, and RSA/OpenSSH Private Keys).

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesCode snippet, configuration file text, or git diff to audit for hardcoded secrets

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description reinforces this with 'locally' and adds the detection taxonomy, but says nothing about return shape or scanning limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence naming the action, the input forms, and the detection categories with no filler. Efficient, though the parenthetical list is dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations describing results, the description never indicates what the scan returns (matched findings, severity, line references), which is what an agent most needs to plan a follow-up call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'content' parameter, so the schema fully documents it. The description's enumeration of scannable content types (code, git diff, .env) loosely maps to the parameter but adds no format or syntax detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Scan') plus the resource ('code snippet, git diff, or .env configuration text') and enumerates the credential classes it detects, so the agent knows exactly what it does. It does not, however, differentiate itself from the sibling castov_secret, leaving a plausible overlap unresolved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'locally' implies the operating context, but there is no explicit statement of when to choose this over castov_secret or what inputs are unsuitable. Usage is implied rather than specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

castov_secretA
Read-only

Generate cryptographically secure random secrets (CSPRNG) in Hex, Base64URL, API Key ('sk_live_...'), and sortable UUIDv7 formats for .env files and JWT signing.

ParametersJSON Schema
NameRequiredDescriptionDefault
bytesNoOptional entropy length in bytes between 8 and 512 (default: 32 bytes / 256 bits)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered and the description correctly does not contradict it. The description adds a useful trait, that output is CSPRNG-generated, but omits that results are non-deterministic (annotations flag idempotentHint=false) and never explains how the four advertised formats are selected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense, front-loaded sentence with no padding; the verb leads and the formats follow. It is slightly weakened by trailing format names that the schema gives no way to select.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one optional parameter and no output schema, the definition is nearly complete, but it advertises Hex/Base64URL/API Key/UUIDv7 formats while the schema exposes no format selector, leaving the agent unsure how to obtain each format or what the default is. That ambiguity is the main completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single 'bytes' parameter fully documented in the schema (range 8-512, default 32). The description adds no meaning beyond that. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate cryptographically secure random secrets (CSPRNG)') and enumerates the concrete output formats. It clearly distinguishes itself from siblings like castov_hash, castov_jwt_decode, and castov_scan_secrets, which all touch cryptographic material but do different things.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended context ('for .env files and JWT signing') hints at when to reach for this tool, but there is no explicit when-to-use vs. when-not framing and no named alternative. Usage is largely implied by the purpose statement rather than stated as guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

castov_timestampB
Read-onlyIdempotent

Inspect and convert a Unix epoch timestamp (seconds or milliseconds) to UTC, ISO 8601, and localized human time.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesUnix epoch timestamp in seconds (10 digits) or milliseconds (13 digits), e.g. '1713456789'

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds the useful fact that it returns UTC, ISO 8601, and localized human time, but says nothing about how 'localized' time is determined (server timezone vs. client) or about handling of ambiguous/invalid values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence that front-loads the action and resource and closes with the concrete outputs. Every clause earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, side-effect-free utility with no output schema, the description is nearly sufficient: it names the return formats and the annotations cover safety. It falls short only on ambiguity handling and how the localized rendering is anchored.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter already documents the 10-digit seconds / 13-digit milliseconds convention with an example. The description merely repeats 'seconds or milliseconds', adding no syntax, edge-case, or validation detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (inspect/convert) and a precise resource (Unix epoch timestamp) plus the output formats produced. It is clear what the tool does, but it never distinguishes itself from the closely related sibling castov_timezone, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance and no named alternative, even though castov_timezone is an obvious adjacent tool. The only routing signal is the implicit input type (an epoch timestamp), which is weak guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

castov_timezoneA
Read-onlyIdempotent

Convert a date/time string between two IANA time zones with exact UTC offset, timezone abbreviation, and Daylight Saving Time (DST) transition warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
toZoneYesTarget IANA timezone (e.g. 'Europe/Paris' or 'Asia/Tokyo')
dateTimeYesDate/time string in 'YYYY-MM-DD HH:mm' or ISO 8601 format, e.g. '2026-03-29 14:30'
fromZoneYesSource IANA timezone (e.g. 'America/New_York' or 'UTC')

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuine value by disclosing the return content: exact UTC offset, timezone abbreviation, and DST transition warnings, which tells the agent to expect advisory output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that names the operation, inputs, and outputs with no filler. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly summarizes the return payload (offset, abbreviation, DST warnings). It stops short of stating how invalid zone names or ambiguous/nonexistent local times around transitions are handled, which matters for a conversion tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with formats and IANA examples given for all three parameters, so the schema carries the parameter burden. The description only restates "IANA time zones" without adding syntax, ambiguity handling, or default behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Convert") and resource (date/time strings between two IANA time zones), plus the outputs produced. It is clear on its own, but it never distinguishes itself from the sibling castov_timestamp, which an agent could plausibly confuse with a timezone tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no prerequisites (e.g. valid IANA zone names required), and no mention of the nearest alternative (castov_timestamp). Usage is only implied by the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 10 tool updatesv1.3.4
    • Changedcastov_cidr2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / cidr / description
        Previous value: -"CIDR string like 192.168.1.0/24 or /24"New value: +"IPv4 CIDR block such as '192.168.1.0/24', '10.0.0.0/16', or '/24'"
    • Addedcastov_cron
    • Changedcastov_detect_id2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / id / description
        Previous value: -"Identifier string"New value: +"Identifier string (UUIDv7, ULID, 24-hex ObjectId, or numeric Snowflake ID)"
    • Addedcastov_hash
    • Addedcastov_jwt_decode
    • Changedcastov_port2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / port / description
        Previous value: -"Port number between 1 and 65535"New value: +"TCP/UDP port number between 1 and 65535 (e.g. 3000, 5432, 6379)"
    • Addedcastov_scan_secrets
    • Addedcastov_secret
    • Changedcastov_timestamp2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / value / description
        Previous value: -"Unix timestamp in seconds or ms"New value: +"Unix epoch timestamp in seconds (10 digits) or milliseconds (13 digits), e.g. '1713456789'"
    • Addedcastov_timezone
  2. 4 tool updatesv1.3.3
    • First observedcastov_cidr
    • First observedcastov_detect_id
    • First observedcastov_port
    • First observedcastov_timestamp

TDQS

A3.8/5.0

Scored across 10 tools

Disambiguation4/5

Each tool has a clearly distinct purpose targeting a specific resource or action (secrets, JWT, hash, scan, ID, CIDR, port, cron, timezone). The only mild overlap is within the time-related cluster (timestamp, timezone, cron) and the crypto cluster (secret vs hash vs scan_secrets), but descriptions distinguish them well enough that misselection is unlikely.

Naming Consistency4/5

All tools share a consistent 'castov_' prefix and snake_case, giving a predictable namespace. However, the suffix style is mixed: mostly bare nouns (secret, hash, cidr, port, cron, timezone) with a few verb_noun forms (jwt_decode, scan_secrets, detect_id), which is a minor deviation rather than a real inconsistency.

Tool Count5/5

At 10 tools, the set is well-scoped and each tool is a distinct, self-contained utility that earns its place. No redundancy or padding is present.

Completeness4/5

As a developer utility toolkit, coverage is broad across security, networking, and time domains. A few minor gaps exist (e.g., no Base64 decode counterpart to the hash/encode tool, and JWT decode has no accompanying sign/encode), but these are workable omissions.

Maintenance

ActivityNo data
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Enables AI agents to perform accurate local computations including arbitrary-precision math, date handling, unit conversion, subnet calculations, encoding, hashing, and text analysis, all without network calls or API keys.
    27
    128 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to perform exact, reproducible mechanical computation — text diffing, hashing, JSON querying, calendar arithmetic, deadline-bounded regex extraction, CSV parsing, similarity scoring, unit and base conversion — instead of relying on probabilistic guessing. Runs dependency-free, read-only and offline over stdio, with schema validation and hard caps on every operation so no call can hang the client.
    15
    38 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Exposes 24 deterministic developer utilities as MCP tools — encoders and hashers, UUID/ULID and timestamp helpers, color, CSS, cron and permission converters, JSON/YAML/XML/SQL/TypeScript transformers, and a web page-to-markdown fetcher. Runs locally over stdio so agents get byte-exact results instead of approximating computations, with only the markdown fetcher making network requests.
    MIT