Skip to content

MCP servers › io.github.Nizoka › pkinative-mcp

MCP server · registry snapshot 2026-10-23 · last tested 2026-10-23

io.github.Nizoka/pkinative-mcp

PKI MCP server: inspect, verify, issue, sign X.509, CSR, CRL, OCSP, CMS, TSP, PKCS#12. 34 tools — the publisher's description

9 of 9 record checks metRead-only · tools listed 2026-10-23Topic: security · AI-classifiedversion 1.0.0TypeScriptMITstandard input/output34 tools

Summary

io.github.Nizoka/pkinative-mcp is a local MCP server listed in the official MCP registry at version 1.0.0. On 2026-10-23 ProtocolProbe started its published package in an isolated sandbox in read-only mode and read its inventory: 34 tools, 0 resources and 7 prompts.

Record checks

9 of 9 record checks met

  • met: Registry entry is active and says how to run it
  • met: Source repository link opens
  • met: Repository is not archived
  • met: Code pushed to the repository in the 90 days before our check
  • met: Repository publishes a security policy (SECURITY.md)
  • met: Package names its licence with a standard (SPDX) identifier
  • met: The version the registry lists can be installed and is not withdrawn
  • met: npm package carries build provenance (attestation)
  • met: No known critical or high advisory in the package or its dependencies
  • #8,826 of 15,112 packages by monthly downloads, tied with 25 others
  • Not ranked by stars: 0 stars (ranked from 10)
  • #940 of 1,074 packages meeting all 9 record checks, by downloads

From public records, not a safety rating. Each check with its reason · Is it safe to install?

Key facts

Runs
local package
Transport
standard input/output
Package
npm · listed version current
License
MIT
Dependencies
no known high or critical advisories
Repository
public
Tools
34
Described as changing data
9 of 34 toolsAI-classified
Topic
securityAI-classified
Last tested
2026-10-23

Add to your client

Worth knowing before you connect it

  • 9 tools are described as changing something (create_certificate, encode_x509_structure, create_csr, …): our AI model's reading of the descriptions, not something we tested. We did not call them.
  • Its package is signed and carries a build record naming its source.

Each line comes from a section below, with its source and date.

How fresh this is

Live-tested
yes, a real session (not a text-only review)
Last tested
2026-10-23
Mode
read-only (no tool calls)
Latest version
1.0.0, published 2026-10-17 (registry, as of the 2026-10-23 snapshot)
First listed version
2026-10-17 (earliest version still in the registry; older removed versions would be earlier)
Registry data
snapshot 2026-10-23
Package and repository
checked 2026-10-23
Engine
mcp-runtime-engine@0.1.0 · sdk@1.32.0

Changes since the last refresh

New in the registry: not in the list of 2026-10-04, listed on 2026-10-23 with version 1.0.0 (published 2026-10-17).

Source: the official MCP Registry list on 2026-10-04 and on 2026-10-23.

What it is

What does this server offer?

Observed inventory
34tools
0resources
7prompts

9 of 34 tools are described as changing something (creating, editing, deleting, sending or running). For 1 the reading was uncertain, so no mark is shown.

  • convert_pemcalculates or converts

    “The RFC 7468 layer.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    13 inputs, 2 required
    • modestringrequired“'decode' lists the blocks of a PEM text (and extracts one with extractIndex); 'encode' wraps DER bytes into one PEM block.”
    • inputobjectrequired“The PEM text (decode: pem or a path to a PEM file) or the DER bytes (encode: derBase64 or a path to a DER file): exactly one of pem / derBase64 / path.”
    • labelstring“decode: list only the blocks with this label.”
    • extractIndexinteger“decode: also deliver the block with this index (its position in the text, as listed) as an artefact in `encoding`.”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
    • outputModestring“'base64' (default) returns the artefact inline as an embedded resource (≤ 50 MiB).”
    • outputPathstring“Relative path inside the sandbox (only when outputMode='file'); the extension must match the encoding (.der .crt .cer .csr .crl .p7s .bin … for der; .pem for p…”
    • encodingstring“Artefact encoding.”
  • resolve_oid

    “Object identifiers in one call.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    15 inputs, 1 required
    • modestringrequired“'name' (registered names), 'validate' (X.660 validity), 'list' (the registry, paged), 'encode' (dotted → hex), 'decode' (hex → dotted + name).”
    • oidsarray“name / validate / encode: the dotted OIDs (≤ 1000).”
    • filterstring“list: case-insensitive substring of the name or the dotted OID.”
    • offsetinteger“list: first entry returned.”
    • limitinteger“list: page size (≤ 2000).”
    • formstring“encode / decode: 'content' (the base-128 content octets only) or 'tlv' (tag + length + content, i.e.”
    • relativeboolean“encode / decode: a RELATIVE-OID (X.690 §8.20, universal tag 13) instead of an OBJECT IDENTIFIER — needs form:'tlv' (the engine encodes a relative OID as a whol…”
    • hexstring“decode: the octets to decode (content octets, or the whole TLV with form:'tlv').”
    • inputobject“decode: the encoded OBJECT IDENTIFIER as a whole DER TLV (or any PEM block holding one): exactly one of pem / derBase64 / path.”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • compute_fingerprinton 2 other serverscalculates or converts

    “Read-only digest of ONE object.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    13 inputs, 1 required
    • inputobjectrequired“The object to digest (any PEM label, or DER): exactly one of pem / derBase64 / path.”
    • modestring“'fingerprint' (default): the digest of the exact DER.”
    • algorithmstring“fingerprint: SHA-1 | SHA-256 (default) | SHA-384 | SHA-512.”
    • webcryptoboolean“fingerprint only: digest through Web Crypto instead of the pure-TypeScript hashes (identical result).”
    • outputLengthinteger“shake256 only: output bytes (default 32, ≤ 1048576; 64 for an Ed448 CMS signer).”
    • separatorstring“Placed between octets of `formatted` (default ':'; '' for none).”
    • letterCasestring“Hex case of `formatted` (`hex` is always lowercase).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • decode_asn1calculates or converts

    “Read-only X.690 view of any DER object (BER with encodingRules:'ber'): the node tree — offset, header and content lengths, tag class / number / name, constructed flag, child count, a hex preview of e…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    19 inputs, 1 required
    • inputobjectrequired“The DER / BER object (any PEM label except a private key, or DER): exactly one of pem / derBase64 / path.”
    • sequenceboolean“The input is several top-level values back to back: decode each (exclusive with nodePath / read / reencode).”
    • nodePathstring“Child indices from the root, dot-separated ('0.2.1' = children[0].children[2].children[1]): the subtree listed, read or re-encoded.”
    • readstring“Apply this typed reader to the selected node (the root without nodePath) and return `value`; a wrong tag is PKI_ASN1_UNEXPECTED_TAG.”
    • stringTypestring“read:'string' on an IMPLICIT-tagged node: the charset to decode with (required then — PKI_API_MISUSE otherwise).”
    • timeTypestring“read:'time' on an IMPLICIT-tagged node: the time type (required then).”
    • reencodeboolean“Re-encode the selected node through the engine encoder and deliver it as an artefact (`encoding` der by default, hex, or pem under the input label or `label`);…”
    • labelstring“reencode + encoding:'pem': the PEM label of the artefact (required when the input had no label or nodePath selects a sub-node; upper-case words and digits).”
    • allowTrailingDataboolean“Accept bytes after the outermost value instead of PKI_ASN1_TRAILING_DATA (single value only; sequence:true decodes them instead).”
    • maxPreviewBytesinteger“Content bytes of a primitive shown in `preview` (hex; 0 hides previews; default 32).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
    • outputModestring“'base64' (default) returns the artefact inline as an embedded resource (≤ 50 MiB).”
    • outputPathstring“Relative path inside the sandbox (only when outputMode='file'); the extension must match the encoding (.der .bin .asn1 for der; .pem for pem).”
    • encodingstring“Artefact encoding: 'pem' (RFC 7468 text), 'der' (raw bytes), 'hex' (lowercase hex in structuredContent, inline only, ≤ 64 KiB).”
  • encode_asn1calculates or converts

    “Encode a JSON node spec into DER through the engine's own encoders: `spec` is one node { type, … } — boolean (value), integer / enumerated (value: integer, decimal or 0x-hex string, negative allowed)…”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    9 inputs, 1 required
    • specobjectrequired“An ASN.1 node spec: { type, … } with type one of boolean (value), integer / enumerated (value: integer or decimal / 0x-hex string), null, bit-string (hex, unus…”
    • labelstring“The PEM label for encoding:'pem' (required then; upper-case words and digits).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • outputModestring“'base64' (default) returns the artefact inline as an embedded resource (≤ 50 MiB).”
    • outputPathstring“Relative path inside the sandbox (only when outputMode='file'); the extension must match the encoding (.der .bin .asn1 for der; .pem for pem).”
    • encodingstring“Artefact encoding: 'pem' (RFC 7468 text), 'der' (raw bytes), 'hex' (lowercase hex in structuredContent, inline only, ≤ 64 KiB).”
  • inspect_certificatereads or searches

    “Read-only RFC 5280 report of ONE certificate in one call: version, serial, signature algorithm, issuer and subject (RFC 4514 + RDNs), validity (epoch ms + ISO), public key (kind, bits, curve / modulu…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    14 inputs, 1 required
    • certificateobjectrequired“The certificate (CERTIFICATE PEM or DER): exactly one of pem / derBase64 / path.”
    • extensionstring“Return only this decoded extension (NOT_FOUND when absent).”
    • rawExtensionsboolean“Keep every extension undecoded (kind raw, valueDer as hex) — the way past PKI_X509_EXTENSION_MALFORMED.”
    • issuerobject“The issuer certificate to check the signature against: exactly one of pem / derBase64 / path.”
    • checkSelfSignatureboolean“Check the certificate against its own key (a self-signed root).”
    • requireAlgorithmMatchboolean“Require the outer signatureAlgorithm to equal the TBS signature algorithm (RFC 5280 §4.1.1.2).”
    • fingerprintsarray“Digests of the DER to report.”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • create_certificateon 2 other serverscreates or changes datadescribed as changing data

    “Issue an X.509 v3 certificate from `spec` (subject, validity, extensions — basicConstraints, keyUsage, extendedKeyUsage, subjectAltName, issuerAltName, SKI / AKI, raw), signed through `signer` (a PKC…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    12 inputs, 2 required
    • specobjectrequired“What to write into the certificate.”
    • issuerCertificateobject“The issuing CA certificate: exactly one of pem / derBase64 / path.”
    • subjectPublicKeyobject“The subject public key: a certificate, a CSR (CERTIFICATE REQUEST) or a PUBLIC KEY (SPKI): exactly one of pem / derBase64 / path.”
    • signerobjectrequired“The signing key: exactly one of `key` (a PKCS#8 private key, plain or PBES2-encrypted, PEM or DER) or `p12` (a PKCS#12 file, PBES2 + PBMAC1 only).”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • outputModestring“'base64' (default) returns the artefact inline as an embedded resource (≤ 50 MiB).”
    • outputPathstring“Relative path inside the sandbox (only when outputMode='file'); the extension must match the encoding (.pem for pem; .crt .cer .der for der).”
    • encodingstring“Artefact encoding: 'pem' (RFC 7468 text), 'der' (raw bytes), 'hex' (lowercase hex in structuredContent, inline only, ≤ 64 KiB).”
  • encode_x509_structurecreates or changes datadescribed as changing data

    “Encode ONE X.509 building block to DER through pkinative's structural encoders, deterministically (the same spec gives the same bytes): `structure` is name, name-attribute, validity, spki, algorithm-…”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    12 inputs, 1 required
    • structurestringrequired“The X.509 building block to encode.”
    • specobject or array“The structure's members (a closed object; an unknown member is refused with VALIDATION_ERROR naming it).”
    • signerobject“signature-algorithm only: The signing key: exactly one of `key` (a PKCS#8 private key, plain or PBES2-encrypted, PEM or DER) or `p12` (a PKCS#12 file, PBES2 + …”
    • labelstring“The RFC 7468 label for encoding:'pem' (required then, refused otherwise); a key-bearing label is refused.”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • outputModestring“'base64' (default) returns the artefact inline as an embedded resource (≤ 50 MiB).”
    • outputPathstring“Relative path inside the sandbox (only when outputMode='file'); the extension must match the encoding (.der .bin .asn1 for der; .pem for pem).”
    • encodingstring“Artefact encoding: 'pem' (RFC 7468 text), 'der' (raw bytes), 'hex' (lowercase hex in structuredContent, inline only, ≤ 64 KiB).”
  • decode_extensionreads or searches

    “Read-only decode of ONE X.509 extension value by its OID — the bytes INSIDE extnValue's OCTET STRING, as `valueHex` or `value` (DER by derBase64 / sandbox path) — exactly as inspect_certificate decod…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    10 inputs, 1 required
    • oidstringrequired“The extension OID (2.5.29.19 basicConstraints, 2.5.29.17 subjectAltName, …) — it selects the decoder.”
    • valueHexstring“The extnValue content (the DER inside the OCTET STRING) as hex.”
    • valueobject“The extnValue content as DER bytes (derBase64, or a sandbox .der / .bin / .asn1 file): exactly one of pem / derBase64 / path.”
    • criticalboolean“The criticality to report and to check against the kind (a kind RFC 5280 requires critical or non-critical gets a diagnostic).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • check_certificate_namereads or searches

    “The RFC 6125 identity verdict, two forms.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    14 inputs
    • certificateobject“The certificate to judge (certificate form): exactly one of pem / derBase64 / path.”
    • hoststring“The reference DNS name as it appeared in the URL (one trailing dot is ignored).”
    • ipstring“The reference IPv4 or IPv6 address.”
    • chainarray“The issuing certificates, leaf's issuer first (every PEM block of every item is taken).”
    • allowCommonNameFallbackboolean“Fall back to the subject commonName when the certificate carries no dNSName and no iPAddress (CA/Browser Forum forbids CN-only certificates since 2017; needs c…”
    • allowWildcardsboolean“Accept a wildcard name (*.example.test) at all.”
    • presentedstring“Match form: the certificate's dNSName, possibly a wildcard.”
    • referencestring“Match form: the reference host name.”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • check_certificate_purposereads or searches

    “The RFC 5280 §4.2.1.12 purpose verdict: may `certificate` be used for `purpose` (serverAuth, clientAuth, codeSigning, emailProtection, timeStamping, ocspSigning, any, or a dotted KeyPurposeId OID)?”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    11 inputs, 2 required
    • certificateobjectrequired“The end-entity certificate to judge: exactly one of pem / derBase64 / path.”
    • chainarray“The issuing certificates, leaf's issuer first (the path is [certificate, ...chain]) (every PEM block of every item is taken).”
    • purposestringrequired“The purpose needed: serverAuth, clientAuth, codeSigning, emailProtection, timeStamping, ocspSigning, any, or a dotted KeyPurposeId OID.”
    • restrictIssuersboolean“Apply a CA's own extKeyUsage to what it issued (what every Web PKI validator does; no sentence of RFC 5280 requires it).”
    • requireExplicitPurposeboolean“Require the certificate to carry extKeyUsage and name the purpose explicitly (the stricter Web PKI reading); default false = no extKeyUsage means unrestricted …”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • inspect_csrreads or searches

    “Read-only RFC 2986 report of ONE PKCS#10 certification request: subject (RFC 4514 + RDNs), public key (kind, bits, curve / modulus), every attribute, the extensions requested through extensionRequest…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    10 inputs, 1 required
    • requestobjectrequired“The PKCS#10 request (CERTIFICATE REQUEST PEM or DER): exactly one of pem / derBase64 / path.”
    • rawExtensionsboolean“Keep every requested extension undecoded (kind raw, valueDer as hex) — the way past PKI_X509_EXTENSION_MALFORMED.”
    • verifyboolean“Verify the request's signature under the key it carries (proof of possession; one Web Crypto verification).”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
Show 22 more tools
  • create_csrcreates or changes datadescribed as changing data

    “Build a PKCS#10 certification request (RFC 2986) from `spec` (subject; the extensions to request — subjectAltName, keyUsage, extendedKeyUsage, basicConstraints, subjectKeyIdentifier, raw — carried in…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    11 inputs, 2 required
    • specobjectrequired“What to write into the request: the subject and the extensions to ask for.”
    • subjectPublicKeyobject“The public key to certify: a certificate, a CSR (CERTIFICATE REQUEST) or a PUBLIC KEY (SPKI): exactly one of pem / derBase64 / path.”
    • signerobjectrequired“The signing key: exactly one of `key` (a PKCS#8 private key, plain or PBES2-encrypted, PEM or DER) or `p12` (a PKCS#12 file, PBES2 + PBMAC1 only).”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • outputModestring“'base64' (default) returns the artefact inline as an embedded resource (≤ 50 MiB).”
    • outputPathstring“Relative path inside the sandbox (only when outputMode='file'); the extension must match the encoding (.pem for pem; .csr .p10 .der for der).”
    • encodingstring“Artefact encoding: 'pem' (RFC 7468 text), 'der' (raw bytes), 'hex' (lowercase hex in structuredContent, inline only, ≤ 64 KiB).”
  • verify_certificate_chainreads or searches

    “The one-call trust verdict for a certificate: builds a path from `leaf` through `candidates` to one of YOUR `trustAnchors`, verifies every signature, validates the path at `at` (RFC 5280 §6: validity…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    19 inputs, 2 required
    • leafobjectrequired“The end-entity certificate to judge: exactly one of pem / derBase64 / path.”
    • trustAnchorsarrayrequired“Trust anchors (root certificates you trust) (every PEM block of every item is taken).”
    • candidatesarray“Untrusted intermediate certificates the path may use (every PEM block of every item is taken).”
    • crlsarray“CRLs (DER or X509 CRL PEM) for offline revocation (every PEM block of every item is taken).”
    • ocspResponsesarray“OCSP responses (DER) for offline revocation (every PEM block of every item is taken).”
    • atstring“The instant the verdict is evaluated at.”
    • requireRevocationboolean“Require fresh revocation evidence for the end-entity certificate (PKI_REASON_REVOCATION_UNKNOWN otherwise — the engine demands it for the leaf; an intermediate…”
    • purposesarray“Extended key usages the leaf must allow: serverAuth, clientAuth, codeSigning, emailProtection, timeStamping, ocspSigning, any, or a dotted OID.”
    • policyobject“RFC 5280 §6.1.1 policy inputs.”
    • serverNameobject“The identity the leaf must be valid for (RFC 6125): exactly one of host / ip.”
    • ocspNoncestring“The nonce you put in the OCSP request (1–32 bytes), to be matched in the responses.”
    • requireOcspNonceboolean“Refuse an OCSP response that does not echo the nonce.”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • build_certificate_pathreads or searches

    “Path discovery only (RFC 5280 §6 path building): walks from `leaf` through the untrusted `candidates` to one of YOUR `trustAnchors` under the structural rules evaluated at `at` (validity, basic const…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    12 inputs, 2 required
    • leafobjectrequired“The end-entity certificate to start from: exactly one of pem / derBase64 / path.”
    • candidatesarray“Untrusted intermediate certificates the path may use (every PEM block of every item is taken).”
    • trustAnchorsarrayrequired“Trust anchors (root certificates you trust) (every PEM block of every item is taken).”
    • atstring“The instant the verdict is evaluated at.”
    • purposesarray“Extended key usages the leaf must allow: serverAuth, clientAuth, codeSigning, emailProtection, timeStamping, ocspSigning, any, or a dotted OID.”
    • policyobject“RFC 5280 §6.1.1 policy inputs.”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • validate_certificate_pathreads or searches

    “RFC 5280 §6.1 validation of a path YOU ordered (`path`, leaf first, then each issuer) against YOUR `trustAnchors` at `at`: validity, basic constraints, key usage, name constraints and the `policy` in…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    12 inputs, 2 required
    • patharrayrequired“The path to validate, leaf FIRST, then each issuer up to (but not necessarily including) the anchor (every PEM block of every item is taken).”
    • trustAnchorsarrayrequired“Trust anchors (root certificates you trust) (every PEM block of every item is taken).”
    • atstring“The instant the verdict is evaluated at.”
    • checkSignaturesboolean“Verify every link signature before validating (certificate i against i+1, the last against the anchor whose subject is its issuer).”
    • policyobject“RFC 5280 §6.1.1 policy inputs.”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • inspect_crlreads or searches

    “Read-only RFC 5280 §5 report of ONE certificate revocation list: version, issuer (RFC 4514 + RDNs), signature algorithm, thisUpdate / nextUpdate, CRL number, delta indicator and base CRL number, issu…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    10 inputs, 1 required
    • crlobjectrequired“The CRL (X509 CRL PEM or DER): exactly one of pem / derBase64 / path.”
    • findobject“Look one serial up in the list (the entries are walked, never all decoded): exactly one of serialHex / certificate.”
    • issuerobject“The CRL issuer certificate to check the signature against: exactly one of pem / derBase64 / path.”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • check_crl_revocationreads or searches

    “The RFC 5280 §6.3 revocation verdict of ONE `certificate` against ONE base `crl` you fetched (this server never fetches), evaluated at `at`: the list must be in scope for the certificate (issuer, iss…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    13 inputs, 2 required
    • certificateobjectrequired“The certificate to check: exactly one of pem / derBase64 / path.”
    • crlobjectrequired“The base CRL (X509 CRL PEM or DER): exactly one of pem / derBase64 / path.”
    • deltaobject“A delta CRL applied over the base: exactly one of pem / derBase64 / path.”
    • issuerobject“The CRL issuer certificate: exactly one of pem / derBase64 / path.”
    • atstring“The instant the verdict is evaluated at.”
    • staleToleranceinteger“Milliseconds past nextUpdate the evidence is still accepted (default: the engine policy, none).”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • create_ocsp_requestcreates or changes datadescribed as changing data

    “Build the DER OCSPRequest (RFC 6960 §4.1) asking a responder for the status of `certificate`, identified by the CertID computed from `issuer` (the CA that issued it — its name and key hashes) and the…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    13 inputs, 2 required
    • certificateobjectrequired“The certificate whose status to ask for: exactly one of pem / derBase64 / path.”
    • issuerobjectrequired“The CA certificate that issued it (its name and key are hashed into the CertID): exactly one of pem / derBase64 / path.”
    • hashAlgorithmstring“The CertID hash.”
    • noncestring“The RFC 8954 nonce extension: 'random', or hex of 1–32 bytes.”
    • certIdOnlyboolean“Return the bare DER CertID (RFC 6960 §4.1.1) instead of the request (der or hex only — a CertID has no PEM label).”
    • labelstring“The PEM label for encoding:'pem' (default OCSP REQUEST; upper-case words and digits).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • outputModestring“'base64' (default) returns the artefact inline as an embedded resource (≤ 50 MiB).”
    • outputPathstring“Relative path inside the sandbox (only when outputMode='file'); the extension must match the encoding (.orq .der .bin for der).”
    • encodingstring“Artefact encoding: 'pem' (RFC 7468 text), 'der' (raw bytes), 'hex' (lowercase hex in structuredContent, inline only, ≤ 64 KiB).”
  • inspect_ocsp_responsereads or searches

    “Read-only RFC 6960 §4.2 report of ONE OCSP response (the DER a responder returned): the response status (only successful carries an answer), the BasicOCSPResponse — responder id (by name or by key ha…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    8 inputs, 1 required
    • responseobjectrequired“The OCSP response (DER, as the responder returned it): exactly one of pem / derBase64 / path.”
    • responderobject“The responder certificate to check the signature against: exactly one of pem / derBase64 / path.”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • check_ocsp_statusreads or searches

    “The RFC 6960 verdict of ONE OCSP `response` you fetched (this server never queries a responder) for ONE `certificate`: the CertID is recomputed from `issuer` (with the hash the response used, or `has…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    18 inputs, 3 required
    • responseobjectrequired“The OCSP response (DER, as the responder returned it): exactly one of pem / derBase64 / path.”
    • certificateobjectrequired“The certificate whose status is asked: exactly one of pem / derBase64 / path.”
    • issuerobjectrequired“The CA certificate that issued it: exactly one of pem / derBase64 / path.”
    • responderobject“The responder certificate to verify the signature with: exactly one of pem / derBase64 / path.”
    • responderTrustedboolean“State an out-of-band trust in the responder (RFC 6960 §4.2.2.2 third case): responderAuthorized is then true whatever its certificate says.”
    • hashAlgorithmstring“The CertID hash to recompute with.”
    • noncestring“The nonce you put in the request (1–32 bytes; create_ocsp_request summary.nonceHex): the response must echo it.”
    • requireNonceboolean“Refuse a response that carries no nonce (RFC 8954).”
    • atstring“The instant the verdict is evaluated at.”
    • staleToleranceinteger“Milliseconds past nextUpdate the evidence is still accepted (default: the engine policy, none).”
    • futureToleranceinteger“Milliseconds a thisUpdate / producedAt may lie after `at` (clock skew) and still be accepted (default: the engine policy).”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • sign_cmscreates or changes datadescribed as changing data

    “Produce an RFC 5652 SignedData over `content` (attached, or `detached:true`) or over a precomputed `contentDigest` (detached only — the PDF /ByteRange case), with ONE signer: `signer` (a PKCS#8 key o…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    22 inputs, 1 required
    • contentobject“The content to sign (hashed with the signer's digest; embedded unless detached): exactly one of text / base64 / path.”
    • contentDigeststring“The content's digest, already computed with the signer's digest algorithm (the PDF /ByteRange case).”
    • detachedboolean“Omit the content from the SignedData (the signature travels without what it signs; most S/MIME and every PDF signature).”
    • contentTypestring“The eContentType (dotted OID).”
    • certificateobject“The signer certificate: exactly one of pem / derBase64 / path.”
    • chainarray“Further certificates to embed (the chain) (every PEM block of every item is taken).”
    • crlsarray“CRLs to embed (DER or X509 CRL PEM) (every PEM block of every item is taken).”
    • sidstring“How the SignerInfo names the certificate.”
    • signingTimestring“The claimed signing time: an ISO 8601 instant, epoch milliseconds, 'now', or 'none' to omit the attribute (PAdES forbids it, S/MIME expects it).”
    • signingCertificateV2boolean“Write the ESS SigningCertificateV2 attribute (RFC 5035), binding the signature to this certificate — CAdES, PAdES and RFC 3161 require it.”
    • algorithmProtectionboolean“Write CMSAlgorithmProtection (RFC 6211, RFC 8933 §4).”
    • signedAttributesarray“Further signed attributes, each one DER Attribute as hex, written verbatim.”
    • unsignedAttributesarray“Unsigned attributes, each one DER Attribute as hex (a time-stamp token already in hand: amend_cms add-timestamp checks the imprint first).”
    • signerobjectrequired“The signing key: exactly one of `key` (a PKCS#8 private key, plain or PBES2-encrypted, PEM or DER) or `p12` (a PKCS#12 file, PBES2 + PBMAC1 only).”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • outputModestring“'base64' (default) returns the artefact inline as an embedded resource (≤ 50 MiB).”
    • outputPathstring“Relative path inside the sandbox (only when outputMode='file'); the extension must match the encoding (.p7s .p7m .p7b .cms .der for der; .pem for pem).”
    • encodingstring“Artefact encoding: 'pem' (RFC 7468 text), 'der' (raw bytes), 'hex' (lowercase hex in structuredContent, inline only, ≤ 64 KiB).”
  • verify_cmsreads or searches

    “The one-call verdict on a CMS SignedData (a .p7s, an S/MIME body, a PDF /Contents): for EVERY signer, the signed attributes (contentType, messageDigest, ESS signing-certificate, CMSAlgorithmProtectio…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    21 inputs, 2 required
    • signedDataobjectrequired“The CMS SignedData to judge (CMS / PKCS7 PEM, or DER: .p7s .p7m): exactly one of pem / derBase64 / path.”
    • contentobject“The detached content (required for a detached signature; refused for an attached one): exactly one of text / base64 / path.”
    • contentDigeststring“The detached content's digest (computed with the signer's digest algorithm) instead of the content — the PDF /ByteRange case.”
    • trustAnchorsarrayrequired“Trust anchors (root certificates you trust) (every PEM block of every item is taken).”
    • candidatesarray“Untrusted intermediate certificates the path may use (every PEM block of every item is taken).”
    • crlsarray“CRLs (DER or X509 CRL PEM) for offline revocation, added to those the message carries.”
    • ocspResponsesarray“OCSP responses (DER), added to those the message carries.”
    • atstring“The instant the verdict is evaluated at.”
    • requireRevocationboolean“Require fresh revocation evidence for the end-entity certificate (PKI_REASON_REVOCATION_UNKNOWN otherwise — the engine demands it for the leaf; an intermediate…”
    • purposesarray“Extended key usages every signer's chain must permit (emailProtection for S/MIME): serverAuth, clientAuth, codeSigning, emailProtection, timeStamping, ocspSign…”
    • atTimeStampboolean“Judge each signer's chain at the time its own VERIFIED counter time-stamp proves (long-term validation) instead of `at`; a signer without a valid time-stamp is…”
    • requireSigningCertificateboolean“Require every signer to name its certificate in an ESS signing-certificate attribute (CAdES / PAdES).”
    • requireAlgorithmProtectionboolean“Require every signer to carry CMSAlgorithmProtection (RFC 6211).”
    • allowTrailingDataboolean“Ignore bytes after the ContentInfo (the zero padding of a PDF /Contents).”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • inspect_cmsreads or searches

    “Read-only RFC 5652 report of ONE CMS SignedData (.p7s / .p7m / .p7b, CMS or PKCS7 PEM, or a PDF /Contents): version, content type, attached content length (null = detached), digest algorithms, the em…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    12 inputs, 1 required
    • signedDataobjectrequired“The CMS SignedData (CMS / PKCS7 PEM, or DER: .p7s .p7m .p7b): exactly one of pem / derBase64 / path.”
    • allowTrailingDataboolean“Ignore bytes after the ContentInfo (the zero padding of a PDF /Contents).”
    • signerCertificateobject“The certificate to check ONE signer's signature against: exactly one of pem / derBase64 / path.”
    • signerIndexinteger“Which signer the signature check targets (encoded order; NOT_FOUND past the last).”
    • contentobject“The detached content, for a signer WITHOUT signed attributes (such a signer signs the content itself); ignored otherwise: exactly one of text / base64 / path.”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • amend_cmscreates or changes datadescribed as changing data

    “The one edit a signed message legitimately receives afterwards, every signed octet unchanged: operation 'add-unsigned-attribute' appends `attribute` (one DER Attribute as hex) to signer `signerIndex`…”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    13 inputs, 2 required
    • signedDataobjectrequired“The CMS SignedData to amend (CMS / PKCS7 PEM, or DER: .p7s .p7m): exactly one of pem / derBase64 / path.”
    • signerIndexinteger“Which signer receives the attribute (encoded order; NOT_FOUND past the last).”
    • operationstringrequired“'add-unsigned-attribute' writes `attribute` verbatim; 'add-timestamp' writes `token` as id-aa-signatureTimeStampToken after checking its imprint.”
    • attributestring“One DER Attribute (SEQUENCE { type, SET OF values }) for add-unsigned-attribute.”
    • tokenobject“The time-stamp for add-timestamp: a TimeStampToken (.tst) or the whole TimeStampResp (.tsr, unwrapped to its token; a declined response is refused): exactly on…”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • outputModestring“'base64' (default) returns the artefact inline as an embedded resource (≤ 50 MiB).”
    • outputPathstring“Relative path inside the sandbox (only when outputMode='file'); the extension must match the encoding (.p7s .p7m .p7b .cms .der for der; .pem for pem).”
    • encodingstring“Artefact encoding: 'pem' (RFC 7468 text), 'der' (raw bytes), 'hex' (lowercase hex in structuredContent, inline only, ≤ 64 KiB).”
  • create_timestamp_requestcreates or changes datadescribed as changing data

    “Build the RFC 3161 TimeStampReq you POST to a TSA yourself (Content-Type application/timestamp-query; this server never talks to a network): the message imprint is `hashAlgorithm` (SHA-256 default, S…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    14 inputs
    • dataobject“The data to time-stamp (hashed here with hashAlgorithm; for a counter time-stamp, the signer's signature value from inspect_cms): exactly one of text / base64 …”
    • digestHexstring“The digest to stamp, already computed with hashAlgorithm (its length must match).”
    • hashAlgorithmstring“The message imprint algorithm.”
    • noncestring“A nonce the TSA must echo (RFC 3161 §2.4.1): 'random' (63 bits from node:crypto — summary.randomNonce reports it; such a call is never cached), a decimal or an…”
    • policystring“The TSA policy to issue under (dotted OID); the TSA's default when absent.”
    • certReqboolean“Ask the TSA to include its certificate in the token (what verify_timestamp needs unless you pass candidates).”
    • labelstring“The PEM label for encoding:'pem' (default TIMESTAMP REQUEST; upper-case words and digits).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • outputModestring“'base64' (default) returns the artefact inline as an embedded resource (≤ 50 MiB).”
    • outputPathstring“Relative path inside the sandbox (only when outputMode='file'); the extension must match the encoding (.tsq .der .bin for der; .pem for pem).”
    • encodingstring“Artefact encoding: 'pem' (RFC 7468 text), 'der' (raw bytes), 'hex' (lowercase hex in structuredContent, inline only, ≤ 64 KiB).”
  • inspect_timestampreads or searches

    “Read-only RFC 3161 report of a TimeStampResp (.tsr: status, statusStrings, failInfo, and the token when granted), a TimeStampToken (.tst) or a bare TSTInfo — auto-detected in that order unless `as` n…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    8 inputs, 1 required
    • inputobjectrequired“The time-stamp object: a TimeStampResp (.tsr), a TimeStampToken (.tst) or a bare TSTInfo (DER, or any PEM block): exactly one of pem / derBase64 / path.”
    • asstring“Read the input as this structure.”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • verify_timestampon 2 other serversreads or searches

    “The one-call verdict on an RFC 3161 time-stamp: exactly one of `token` (a TimeStampToken, .tst) or `response` (the whole TimeStampResp, .tsr — a declined response is PKI_REASON_TSP_NOT_GRANTED), judg…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    19 inputs, 1 required
    • tokenobject“The TimeStampToken (a ContentInfo over a TSTInfo; .tst): exactly one of pem / derBase64 / path.”
    • responseobject“The whole TimeStampResp the TSA returned (.tsr): exactly one of pem / derBase64 / path.”
    • requestobject“The TimeStampReq you sent (.tsq): exactly one of pem / derBase64 / path.”
    • dataobject“The data that was stamped (hashed with the token's own imprint algorithm): exactly one of text / base64 / path.”
    • digestHexstring“The digest that was stamped, when you hold that rather than the data.”
    • trustAnchorsarrayrequired“Trust anchors (root certificates you trust) (every PEM block of every item is taken).”
    • candidatesarray“Untrusted certificates the TSA's path may use (every PEM block of every item is taken).”
    • crlsarray“CRLs (DER or X509 CRL PEM) for offline revocation (every PEM block of every item is taken).”
    • ocspResponsesarray“OCSP responses (DER) for offline revocation (every PEM block of every item is taken).”
    • atstring“The instant the verdict is evaluated at.”
    • requireRevocationboolean“Require fresh revocation evidence for the end-entity certificate (PKI_REASON_REVOCATION_UNKNOWN otherwise — the engine demands it for the leaf; an intermediate…”
    • allowNonCriticalTimeStampingEkuboolean“Accept a TSA whose extKeyUsage names timeStamping but is not critical (RFC 3161 §2.3 requires it critical; some deployed TSAs are not).”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • inspect_private_keyreads or searches

    “Describe a PKCS#8 private key WITHOUT its password: format ('pkcs8' or 'encrypted-pkcs8'), version, kind (ec / rsa / rsa-pss / ed25519 / ed448 / x25519 / x448 / ml-dsa / unknown), curve, algorithm OI…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    14 inputs, 1 required
    • keyobjectrequired“The PKCS#8 private key (PRIVATE KEY or ENCRYPTED PRIVATE KEY PEM, or DER): exactly one of pem / derBase64 / path.”
    • tryImportboolean“Also import the key into a NON-EXTRACTABLE Web Crypto key and describe the handle (never exported).”
    • passwordstring“The password of an encrypted PKCS#8 key or a PKCS#12 file (UTF-8).”
    • keyTypestring“The type of an ENCRYPTED key (it reveals its type only once decrypted).”
    • hashstring“Signature hash of the imported key.”
    • rsaSchemestring“REQUIRED to import an RSA key: 'pkcs1' (RSASSA-PKCS1-v1_5) or 'pss' (RSA-PSS); pkinative has no default (RSA_SCHEME_REQUIRED).”
    • saltLengthinteger“RSA-PSS salt length in bytes (rsaScheme:'pss' only; default: the hash length).”
    • allowSha1boolean“Accept or produce SHA-1 signatures (legacy material you already trust).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • inspect_pkcs12reads or searches

    “Describe a PKCS#12 (.p12 / .pfx) WITHOUT its password: version, the MAC construction (kind 'pbmac1' RFC 9579 with its PBKDF2 / HMAC parameters, or 'pkcs12-kdf' — the RFC 7292 Appendix B MAC pkinative…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    8 inputs, 1 required
    • pkcs12objectrequired“The PKCS#12 file (.p12 / .pfx; DER, or BER with encodingRules:'ber' for a Windows-written PFX): exactly one of pem / derBase64 / path.”
    • passwordstring“The password of an encrypted PKCS#8 key or a PKCS#12 file (UTF-8).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • open_pkcs12creates or changes datadescribed as changing data

    “Open a PKCS#12 (.p12 / .pfx) in one call with `password` (or PKINATIVE_MCP_PASSWORD; SECRET_REQUIRED without one): the RFC 9579 PBMAC1 MAC is verified, every PBES2 SafeContents decrypted, every key u…”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    15 inputs, 1 required
    • pkcs12objectrequired“The PKCS#12 file (.p12 / .pfx; DER, or BER with encodingRules:'ber' for a Windows-written PFX): exactly one of pem / derBase64 / path.”
    • passwordstring“The password of an encrypted PKCS#8 key or a PKCS#12 file (UTF-8).”
    • allowUnverifiedIntegrityboolean“Accept a file whose integrity cannot be checked (no MAC, or the legacy RFC 7292 Appendix B MAC) and report it valid — only for a file whose origin you trust: w…”
    • rsaSchemestring“What an RSA key will sign with: 'pkcs1' (RSASSA-PKCS1-v1_5) or 'pss' (RSA-PSS).”
    • hashstring“The hash of the RSA signature algorithm (with rsaScheme only).”
    • exportCertificatesboolean“Attach a PEM bundle of the certificates (CERTIFICATE blocks) then the CRLs (X509 CRL blocks) as the `artefact` — only from a file that opened (valid:true); nev…”
    • outputModestring“'base64' (default) returns the artefact inline as an embedded resource (≤ 50 MiB).”
    • outputPathstring“Relative path inside the sandbox (only when outputMode='file'); the extension must match the encoding (.pem only — a bundle has no DER form).”
    • encodingstring“Artefact encoding: 'pem' (RFC 7468 text), 'der' (raw bytes), 'hex' (lowercase hex in structuredContent, inline only, ≤ 64 KiB).”
    • encodingRulesstring“'der' (strict X.690 DER, default) or 'ber' (indefinite / non-minimal lengths and constructed strings, as legacy CMS producers write).”
    • pemModestring“'strict' (RFC 7468 exactly, default) or 'lax' (tolerates whitespace, line length and RFC 1421 headers).”
    • strictboolean“Escalate the first engine warning to a PKI_STRICT_DIAGNOSTIC error instead of listing it in diagnostics[].”
    • limitsobject“Raise pkinative's 22 named security bounds for this call (trusted input only; absent keys keep the engine defaults).”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • describe_engineon 2 other serversreads or searches

    “Offline preflight (no input needed): server / engine / tool-API versions, whether this host's Web Crypto can verify, sign and decrypt (canVerify / canSign / canDecrypt) and satisfies the engine's Nod…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    2 inputs
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • explain_codeon 3 other serversreads or searches

    “Explain any code this server can emit, from the registries vendored at the pkinative v1.0.0 tag: the 57 PKI_* engine error codes (coarse class, PkiError subclass, when raised, CWE, the engine's remed…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    5 inputs
    • codestring“The code to explain (PKI_*, PKI_REASON_*, PKI_DIAG_* or a wrapper code such as SECURITY_VIOLATION).”
    • kindstring“Restrict a listing to one vocabulary.”
    • listboolean“List the codes (optionally of one kind) instead of explaining one.”
    • verbositystring“'summary' keeps the scalar fields only (token-frugal).”
    • fieldsarray“Dot-paths to keep after verbosity (arrays map over elements); unmatched paths land in _meta.unmatchedFields.”
  • draft_governance_issueon 2 other serversdescribed as changing data

    “Produce a LOCAL GitHub issue draft + compliance report for pkinative / pkinative-cli / pkinative-mcp and NEVER submit it — the agent drafts, a human reviews and files it under their own identity (Hum…”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    11 inputs, 6 required
    • titlestringrequired“Concise issue title (imperative, no trailing period).”
    • summarystringrequired“One or two paragraphs describing the problem or proposal.”
    • issueTypestringrequired“Issue category: 'bug' | 'feature' | 'security' | 'docs' | 'performance'.”
    • targetRepostring“Destination repository label for the draft (documentation only — the server never contacts it).”
    • reproductionobjectrequired“The minimal, locally-executed reproduction that justifies this issue (test material only).”
    • expectedBehaviorstringrequired“What you expected to happen instead.”
    • actualBehaviorstring“What actually happened (defaults to the reproduction result when omitted).”
    • affectedPackagesarray“Packages impacted by this issue (e.g.”
    • duplicateSearchPerformedbooleanrequired“MUST be true: confirms you searched open AND closed issues/PRs for duplicates before drafting.”
    • outputModestring“'inline' (default) returns the draft markdown in the response.”
    • outputPathstring“Relative .md path inside the sandbox (only when outputMode='file').”

Each quoted sentence is the first sentence of the publisher’s own description. The kind of tool and the “changes data” mark are our AI model’s reading of that description, not something we tested: two differently worded runs had to agree, otherwise no label is shown, and nobody has checked them by hand. A tool without the “changes data” mark is described as only reading, searching or calculating, or the two runs did not agree. No tool was called. Read the publisher’s full description before relying on it. “Publisher declares” lists the hints the server itself sends with the tool (MCP annotations: read-only, destructive, idempotent, open-world); they are the publisher's claims, not checked by us. Inputs are the parameters in the tool's own input schema: name, declared type, whether it is required, and the first sentence of its description. Read 2026-10-23.

How well are its tools described?

Features #4 and #5

How clearly this server's own tool descriptions say what a tool does, and how consistent its tool list is. The first part is an AI model's yes/no reading of each description; the second part is counted. We do not turn it into a grade.

Descriptions

AI reading of each description

Says what the tool does
100% of 34 tools
Says what it returns
100% of 29 tools
States limits, defaults or errors
100% of 33 tools
Says when to use it
0% of 34 tools
Items covered per tool
3.0 of 4 on average

Counted from the listing

Parameters with a description
100% of 432
Tools with a description
100% of 34
Typical description length
1,089 characters

The tool set

Counted from the listing

Tools
34
Size of the list
about 107,750 tokens for an agent to load (characters ÷ 4)
Naming
34 of 34 names use snake_case

AI reading: easy to mix up

No pair found.

The AI items cover 34 of 34 tools: for a tool where two differently worded runs disagreed, that item is left out. They were not checked by hand, and no tool was called. “Easy to mix up” means two tools whose names or descriptions overlap without saying how they differ; the AI found none. We do not rate whether the tool set is complete or whether side effects are spelled out, because our AI reading of those was not reliable enough.

How do I add it to my client?

Config from the registry entry
  • No config: the npm package declares runtime arguments (options for the runner itself), and the registry documentation gives no rule for where they go.

Built from the server's registry entry with each client's documented format (checked 2026-10-14; the Cursor link and the VS Code command 2026-10-19; the MCP Inspector command 2026-10-21). Values in < > are yours to fill in; this page never contains a key. Where the server needs a setting the entry does not declare, it can still fail to start.

Can it be installed, and is it up to date?

Version pin · advisories

Listed version

Registry lists
1.0.0
Latest stable
1.0.0
Status
current
Withdrawn
no

Source: registry.npmjs.org · 2026-10-23. About the version the registry lists; a manual install may resolve to a different one.

Dependency advisories

critical0high0moderate0low0

Counted in the full dependency tree as resolved on 2026-10-23 (npm audit). Bars share one scale. The package itself has no known vulnerability (OSV.dev).

Integrity, provenance, license

Integrity
sha512-9L7EewYPOP4DeHmld…
Signature
signed and attested
License
MIT

Source: the package registry · 2026-10-23.

Usage

Downloads
233 in the last month

Source: api.npmjs.org · 2026-10-23.

Does the registry listing match what we found?

Feature #6

The registry verifies a package once, when it is published, and does not re-check it. A difference below is about the listing, not a judgement of the publisher.

Registry saysWe foundResultSource · date
Published package can be startedStarted and answeredmatchesour test · 2026-10-23
Version 1.0.0 on npmExists and can be installedmatchesnpm · 2026-10-23
Repository github.com/Nizoka/pkinative-mcpOpens publiclymatchesapi.github.com · 2026-10-23

Who made it?

Feature #7 · lineage

Facts about the publisher. We do not turn them into a trust score.

Namespace
io.github.Nizoka · 3 servers
GitHub owner
a personal account (Nizoka)
Build record
signed and attested
Repository
github.com/Nizoka/pkinative-mcp
Stars
0
Repository age
31–90 days
Last push
0–30 days ago
Archived
no
Security policy
SECURITY.md

Source: the registry entry and api.github.com · 2026-10-23; security policy read from GitHub · 2026-10-23.

Publish this server? Run these checks against it yourself before release, from your own machine: a server the command starts, or your own server at its URL after a one-time proof that you control it: npx protocolprobe-selftest.

Choosing

Record checks

Public records · not a safety rating

9 of 9 record checks met

  • #8,826 of 15,112 packages by monthly downloads, tied with 25 others
  • Not ranked by stars: 0 stars (ranked from 10)
  • #940 of 1,074 packages meeting all 9 record checks, by downloads
  • MetRegistry entry is active and says how to run itActive, with a package or a remote address.
  • MetSource repository link opensThe linked GitHub repository is public.
  • MetRepository is not archivedNot archived.
  • MetCode pushed to the repository in the 90 days before our checkLast push 0-30 days before our check.
  • MetRepository publishes a security policy (SECURITY.md)SECURITY.md found.
  • MetPackage names its licence with a standard (SPDX) identifierMIT
  • MetThe version the registry lists can be installed and is not withdrawnThe listed version exists and is current.
  • Metnpm package carries build provenance (attestation)Signed, with a build attestation naming the source and workflow.
  • MetNo known critical or high advisory in the package or its dependenciesNone known in the package or its dependency tree.

Read from public records only: the registry entry, npm/PyPI, GitHub and advisory databases, checked 2026-10-23. No tool was called. Only “met” and “not met” are counted, so the total differs between servers; a check that does not apply or that we could not run is listed, never counted against it. It is not a safety rating. How each check works · Leaderboards

Common questions about io.github.Nizoka/pkinative-mcp

Answered from the data above

Is io.github.Nizoka/pkinative-mcp safe to install?

We do not rate servers as safe or unsafe. 9 of its 9 applicable record checks are met (facts from public records, each listed on this page). What the records show: Its npm package carries a build-provenance attestation that names its source repository and build workflow. Its source repository opens publicly. Its repository had a push in the last 90 days. The listed version is the latest stable release. The package itself has no known vulnerability (OSV.dev). Its full dependency tree has no known advisory. 9 of its tools describe changing data (our AI model's reading of the descriptions). These are facts with their sources on this page, not a safety guarantee, and we did not run its tools.

Has io.github.Nizoka/pkinative-mcp been security tested?

Partly. 4 of the 13 checks that apply to it were exercised. We started the package in an isolated sandbox and read what it declares, but this test round was read-only, so its tools were not called. No security verdict is published before verification.

What can io.github.Nizoka/pkinative-mcp do?

It lists 34 tools. In our AI model's reading of their descriptions (two runs had to agree, nobody checked it by hand), they include tools that read or search, create or change data and calculate or convert. We did not call any tool, so this describes the text, not the behaviour.

Can io.github.Nizoka/pkinative-mcp change or delete data?

9 of its tools say in their description that they create, edit, delete, send or run something (our AI model's reading). We did not call any tool, so we cannot say what actually happens.

Does io.github.Nizoka/pkinative-mcp publish a security policy?

Yes: its repository has a public security policy (github.com/nizoka/pkinative-mcp/blob/HEAD/SECURITY.md). That is the publisher's statement, not permission for us to test the server, and we call none of its tools.

Is the listed version current?

Yes. The registry lists 1.0.0, the latest stable release on npm.

Where is the source code of io.github.Nizoka/pkinative-mcp?

In github.com/Nizoka/pkinative-mcp, which opens publicly.

Found this page useful?

Anonymous · no sign-in

A quick, anonymous reaction — no account, no email. One per kind from your browser. The tally updates when the page is next refreshed, and it is only a rough count, never a safety rating or a measured number of people.

Similar servers

Same topic · AI-read

Active servers whose topic is also “security” and that have at least one tool of the same kind; most kinds in common first, then most GitHub stars. The topic and the tool kinds are an AI model's reading of the publishers' descriptions, not checked by hand. Similar is not a recommendation.

Compare with another server

Side by side: registry entry, our read-only session, the tools and the 18 classification fields. Same values as each page; no score.

Security testing

What did we test, and what did we leave out?

18 checks · features #1, #2

Not probed (read-only run)

We started the package in an isolated sandbox and read what it declares, but this test round was read-only, so its tools were not called. No security score is given; a check we did not run is never counted as passed.

The 18 checks at a glanceour test · 2026-10-23
  1. Inventory: exercised
  2. Hidden instructions: exercised
  3. Real execution: not run · our policy
  4. Secret leak: not run · nothing to check it against
  5. Internal addresses: not run · our policy
  6. Unconfirmed changes: not run · our policy
  7. Bad input: not run · our policy
  8. Model requests: not run · nothing to check it against
  9. Sensitive questions: not run · nothing to check it against
  10. Folder boundary: not run · our policy
  11. Log leaks: not run · nothing to check it against
  12. Hidden content: exercised
  13. Fake assistant turns: exercised
  14. Token passthrough: not applicable
  15. Token audience: not applicable
  16. Sign-in redirect: not applicable
  17. Consent handling: not applicable
  18. Sign-in metadata: not applicable

4 exercised9 not run (reason given)5 not applicable

Each check ends in exactly one state: exercised, not run (with the reason), or not applicable (with the reason). 4 of the 13 checks that apply to it were exercised. We do not publish security-check outcomes for named servers.

Exercised · 4
  • 1Inventory
    tool-list
    Reads the declared tools, resources and prompts.exercised
  • 2Hidden instructions
    description-poisoning
    Looks for hidden instructions in tool descriptions.exercised
  • 12Hidden content
    audience-hiding
    Checks resources that hide content from the user.exercised
  • 13Fake assistant turns
    fake-assistant-turn
    Checks prompts that pose as the assistant's own words.exercised
Not run, with the reason · 9
  • 3Real execution
    real-execution
    Calls a tool and checks what really happens.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 4Secret leak
    canary-leak
    Plants a fake secret and checks whether it leaks.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 5Internal addresses
    ssrf
    Checks whether a tool can be steered to internal addresses.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 6Unconfirmed changes
    write-without-confirmation
    Checks whether tools that change data act without asking.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 7Bad input
    error-handling
    Sends bad input and watches how the server answers.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 8Model requests
    sampling
    Checks whether the server asks the client's model to act for it.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 9Sensitive questions
    elicitation-sensitive-data
    Checks whether the server asks users for sensitive data.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 10Folder boundary
    root-boundary
    Checks whether the server reaches outside the folders it was given.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 11Log leaks
    logging-side-channel
    Checks whether log messages carry data they should not.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
Does not apply to this server · 5
  • 14Token passthrough
    token-passthrough
    Checks whether the server forwards a user's token to other services.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 15Token audience
    token-audience-validation
    Checks whether tokens meant for another service are accepted.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 16Sign-in redirect
    open-redirect
    Checks the sign-in redirect for abuse.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 17Consent handling
    confused-deputy
    Checks consent handling when one service acts for another.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 18Sign-in metadata
    oauth-url-scheme
    Checks the published sign-in metadata for unsafe URLs.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable

Source: our own test in an isolated sandbox, 2026-10-23, mcp-runtime-engine@0.1.0. Which checks count and why follows our published scoring model.

What happened during the test?

Feature #8

The steps in order, as the test record holds them.

  1. 0 msStarted the published package in an isolated sandbox (read-only mode)
  2. 1,718 msConnected after 0 redirects.
  3. Read the inventory: 34 tools, 0 resources, 7 prompts.
  4. 2,750 msFinished: 4 checks exercised.

Reference

How is it classified?

18 fields

One value per field, each with its source. Fields written by AI models are marked. A field with no value says why.

TopicAI-classified
AI-classified · 2026-10-23
Pricing modelAI-classified
no value
The website listed in the registry is a code-hosting, package or marketplace page, not the product's own site.
Programming language
api.github.com · 2026-10-23
Hosting type
registry · 2026-10-23
MCP capability
prompts, resources, tools
our test · 2026-10-23
Transport
standard input/output
registry · 2026-10-23
Required credentials
none declared
registry · no declaration is not a guarantee
Package registry
registry · 2026-10-23
Freshness
0–30 days
registry updatedAt · 2026-10-23
Lifecycle status
registry · 2026-10-23
License class
package registry · 2026-10-23
Integrity hash
declared (sri)
package registry · 2026-10-23
Signature / provenance
package registry · 2026-10-23
Dependency advisories
none known
npm audit · 2026-10-23
Popularity
233 downloads a month
package registry · 2026-10-23
Publisher signals
owner: a personal account · repository age: 31–90 days · stars: 0–9 · build record: signed and attested
api.github.com · 2026-10-23
Maintenance
api.github.com · 2026-10-23
Environment
your machine
where it runs, from the hosting type

“Not stated” means the source did not state it; “does not apply” means it does not apply to this kind of server; “our limit” means our own lookup failed. A linked value opens the directory filtered to the same value.

Cite or correct this page

Sources and corrections

Suggested citation

ProtocolProbe. “io.github.Nizoka/pkinative-mcp: MCP server record.” Data checked 2026-10-23. https://protocolprobe.com/mcp/servers/io.github.Nizoka/pkinative-mcp

Figures are valid for the date shown. Our facts on this page are CC BY 4.0: reuse them with a link and the check date. Quoted text (the publisher’s descriptions, website quotes, tool names) is not ours to license.

As JSON: this record in the API · API documentation.

Badge for your README

ProtocolProbe: 9 of 9 record checks met

[![ProtocolProbe](https://protocolprobe.com/api/v1/badge/io.github.Nizoka/pkinative-mcp)](https://protocolprobe.com/mcp/servers/io.github.Nizoka/pkinative-mcp)

It shows this server's record-check count: facts from public records, no tool called. It is not a security rating or a pass. It links here and updates after each data reload.

Something wrong, or is this yours?

If a fact here is wrong, tell us and we will re-check it. If you operate this server, you can run our checks on it yourself with the free self-test command; we call no server’s tools ourselves for anything shown here.

Write to hello@protocolprobe.com · corrections log · methodology