NestDaddy

pkinative MCP — X.509, CMS, OCSP, time-stamps and PKCS#12 without a key byte leaving

io.github.Nizoka/pkinative-mcp · v1.0.0

PKI MCP server: inspect, verify, issue, sign X.509, CSR, CRL, OCSP, CMS, TSP, PKCS#12. 34 tools

Connect Runs on your machine

Terminal
claude mcp add pkinative-mcp -e PKINATIVE_MCP_OUTPUT_DIR=<PKINATIVE_MCP_OUTPUT_DIR> -e PKINATIVE_MCP_CACHE_DIR=<PKINATIVE_MCP_CACHE_DIR> -e PKINATIVE_MCP_PORT=<PKINATIVE_MCP_PORT> -e PKINATIVE_MCP_HTTP_TOKEN=<PKINATIVE_MCP_HTTP_TOKEN> -e PKINATIVE_MCP_PASSWORD=<PKINATIVE_MCP_PASSWORD> -e PKINATIVE_MCP_AT=<PKINATIVE_MCP_AT> -e PKINATIVE_MCP_MAX_INPUT_BYTES=<PKINATIVE_MCP_MAX_INPUT_BYTES> -e PKINATIVE_MCP_MAX_KDF_ITERATIONS=<PKINATIVE_MCP_MAX_KDF_ITERATIONS> -e PKINATIVE_MCP_MAX_PATHS_EXPLORED=<PKINATIVE_MCP_MAX_PATHS_EXPLORED> -- npx -y [email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "pkinative-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "PKINATIVE_MCP_OUTPUT_DIR": "<PKINATIVE_MCP_OUTPUT_DIR>",
        "PKINATIVE_MCP_CACHE_DIR": "<PKINATIVE_MCP_CACHE_DIR>",
        "PKINATIVE_MCP_PORT": "<PKINATIVE_MCP_PORT>",
        "PKINATIVE_MCP_HTTP_TOKEN": "<PKINATIVE_MCP_HTTP_TOKEN>",
        "PKINATIVE_MCP_PASSWORD": "<PKINATIVE_MCP_PASSWORD>",
        "PKINATIVE_MCP_AT": "<PKINATIVE_MCP_AT>",
        "PKINATIVE_MCP_MAX_INPUT_BYTES": "<PKINATIVE_MCP_MAX_INPUT_BYTES>",
        "PKINATIVE_MCP_MAX_KDF_ITERATIONS": "<PKINATIVE_MCP_MAX_KDF_ITERATIONS>",
        "PKINATIVE_MCP_MAX_PATHS_EXPLORED": "<PKINATIVE_MCP_MAX_PATHS_EXPLORED>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "pkinative-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "PKINATIVE_MCP_OUTPUT_DIR": "<PKINATIVE_MCP_OUTPUT_DIR>",
        "PKINATIVE_MCP_CACHE_DIR": "<PKINATIVE_MCP_CACHE_DIR>",
        "PKINATIVE_MCP_PORT": "<PKINATIVE_MCP_PORT>",
        "PKINATIVE_MCP_HTTP_TOKEN": "<PKINATIVE_MCP_HTTP_TOKEN>",
        "PKINATIVE_MCP_PASSWORD": "<PKINATIVE_MCP_PASSWORD>",
        "PKINATIVE_MCP_AT": "<PKINATIVE_MCP_AT>",
        "PKINATIVE_MCP_MAX_INPUT_BYTES": "<PKINATIVE_MCP_MAX_INPUT_BYTES>",
        "PKINATIVE_MCP_MAX_KDF_ITERATIONS": "<PKINATIVE_MCP_MAX_KDF_ITERATIONS>",
        "PKINATIVE_MCP_MAX_PATHS_EXPLORED": "<PKINATIVE_MCP_MAX_PATHS_EXPLORED>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "pkinative-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "PKINATIVE_MCP_OUTPUT_DIR": "<PKINATIVE_MCP_OUTPUT_DIR>",
        "PKINATIVE_MCP_CACHE_DIR": "<PKINATIVE_MCP_CACHE_DIR>",
        "PKINATIVE_MCP_PORT": "<PKINATIVE_MCP_PORT>",
        "PKINATIVE_MCP_HTTP_TOKEN": "<PKINATIVE_MCP_HTTP_TOKEN>",
        "PKINATIVE_MCP_PASSWORD": "<PKINATIVE_MCP_PASSWORD>",
        "PKINATIVE_MCP_AT": "<PKINATIVE_MCP_AT>",
        "PKINATIVE_MCP_MAX_INPUT_BYTES": "<PKINATIVE_MCP_MAX_INPUT_BYTES>",
        "PKINATIVE_MCP_MAX_KDF_ITERATIONS": "<PKINATIVE_MCP_MAX_KDF_ITERATIONS>",
        "PKINATIVE_MCP_MAX_PATHS_EXPLORED": "<PKINATIVE_MCP_MAX_PATHS_EXPLORED>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
PKINATIVE_MCP_OUTPUT_DIR
Optional
Absolute path of the one sandbox directory: path inputs are read from it and outputMode='file' outputs are written under it (never overwritten; the real path of every file read and of every parent written must stay inside — a planted symlink or junction is SECURITY_VIOLATION). Key-bearing files (.k…
PKINATIVE_MCP_CACHE_DIR
Optional
Opt-in content-addressed response cache directory (SHA-256 keyed, 1h TTL, 256 MiB LRU, plaintext at rest). Never caches path inputs, file output, a call carrying a password or a signer, a clock-dependent instant, a random serial or nonce, describe_engine or draft_governance_issue.
PKINATIVE_MCP_PORT
Optional
Serve Streamable HTTP on this loopback port (POST /mcp) instead of stdio (MCP 2026-07-28, stateless, legacy fallback). Unauthenticated unless PKINATIVE_MCP_HTTP_TOKEN is set.
PKINATIVE_MCP_HTTP_TOKEN
Optional, secret
Opt-in bearer token for the HTTP transport (>= 16 chars, no whitespace; a weaker value refuses to start). When set, /mcp requires 'Authorization: Bearer <token>' or answers 401. Compared constant-time, never logged.
PKINATIVE_MCP_PASSWORD
Optional, secret
Operator-side password of the encrypted PKCS#8 key or PKCS#12 file the tools open (keeps the secret out of the model transcript). Exclusive with the per-call password input (both at once is VALIDATION_ERROR). Never logged; only its presence is reported at startup.
PKINATIVE_MCP_AT
Optional
Pinned instant (ISO 8601 or epoch milliseconds) every omitted at / notBefore / signingTime falls back to, for reproducible verdicts and artefacts. Unset: the wall clock (a clock-dependent result is never cached). An invalid value refuses to start.
PKINATIVE_MCP_MAX_INPUT_BYTES
Optional
Operator ceiling for limits.maxInputBytes and the decoded size of one PKI object (default 67108864 = 64 MiB, the engine default). Integer >= 1024, read once at startup; an invalid value refuses to start. A per-call value above it is refused with LIMIT_CEILING_EXCEEDED.
PKINATIVE_MCP_MAX_KDF_ITERATIONS
Optional
Operator ceiling for limits.maxKdfIterations and limits.maxPkcs12KdfIterations (default 10000000, the engine default): the CPU bound of a hostile PBES2 key or PKCS#12 file. Integer >= 1, read once at startup; an invalid value refuses to start.
PKINATIVE_MCP_MAX_PATHS_EXPLORED
Optional
Operator ceiling for limits.maxPathsExplored (default 1000, the engine default): the RFC 5280 section 6 path-building work bound. Integer >= 1, read once at startup; an invalid value refuses to start.

Details

Package[email protected] (NPM, stdio)
First published17 Oct 2026
Last updated17 Oct 2026
Registry nameio.github.Nizoka/pkinative-mcp

More other servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.