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
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
- 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
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 inventory9 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.”
“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.”
“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.”
“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.”
“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 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.”
“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
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 #6The 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 says | We found | Result | Source · date |
|---|---|---|---|
| Published package can be started | Started and answered | matches | our test · 2026-10-23 |
| Version 1.0.0 on npm | Exists and can be installed | matches | npm · 2026-10-23 |
| Repository github.com/Nizoka/pkinative-mcp | Opens publicly | matches | api.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 rating9 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 aboveIs 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-inA 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
- io.github.hashgraph-online/hol-guardHOL Guardalso has tools that calculates or converts, creates or changes data, reads or searchescompare with this one
- io.github.quantakrypto/pqc-toolsquantakrypto pqc-toolsalso has tools that calculates or converts, creates or changes data, reads or searchescompare with this one
- io.github.OrygnsCode/opa-mcpOPA MCPalso has tools that calculates or converts, creates or changes data, reads or searchescompare with this one
- io.github.imokokok/priorsealPriorSealalso has tools that calculates or converts, creates or changes data, reads or searchescompare with this one
- io.github.agent-passport-system/agent-passport-mcpAgent Passport System — Cryptographic Identity for AI Agentsalso has tools that calculates or converts, creates or changes data, reads or searchescompare with this one
- io.github.doteyeso-ops/mcp-server-vibes-codedVibes-Coded Agent Security and Commerce Toolsalso has tools that calculates or converts, creates or changes data, reads or searchescompare with this one
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.
- Inventory: exercised
- Hidden instructions: exercised
- Real execution: not run · our policy
- Secret leak: not run · nothing to check it against
- Internal addresses: not run · our policy
- Unconfirmed changes: not run · our policy
- Bad input: not run · our policy
- Model requests: not run · nothing to check it against
- Sensitive questions: not run · nothing to check it against
- Folder boundary: not run · our policy
- Log leaks: not run · nothing to check it against
- Hidden content: exercised
- Fake assistant turns: exercised
- Token passthrough: not applicable
- Token audience: not applicable
- Sign-in redirect: not applicable
- Consent handling: not applicable
- 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.
- 1Inventory
tool-listReads the declared tools, resources and prompts.exercised - 2Hidden instructions
description-poisoningLooks for hidden instructions in tool descriptions.exercised - 12Hidden content
audience-hidingChecks resources that hide content from the user.exercised - 13Fake assistant turns
fake-assistant-turnChecks prompts that pose as the assistant's own words.exercised
- 3Real execution
real-executionCalls 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-leakPlants 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
ssrfChecks 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-confirmationChecks 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-handlingSends 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
samplingChecks 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-dataChecks 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-boundaryChecks 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-channelChecks 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
- 14Token passthrough
token-passthroughChecks 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-validationChecks 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-redirectChecks 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-deputyChecks 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-schemeChecks 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.
- 0 msStarted the published package in an isolated sandbox (read-only mode)
- 1,718 msConnected after 0 redirects.
- Read the inventory: 34 tools, 0 resources, 7 prompts.
- 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.
“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
[](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