pdfnative MCP — PDF/A & PDF/X-4 generation, PAdES signing & introspection for VS Code
io.github.nizoka/pdfnative-mcp
PDF MCP: generate PDF/A & PDF/X-4, sign & verify PAdES (LTV), forms, merge, split, encrypt. 28 tools
client:VS Code
transport:stdio
runtime:npm
Install pdfnative MCP — PDF/A & PDF/X-4 generation, PAdES signing & introspection in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "pdfnative-mcp-output-dir",
"description": "PDFNATIVE_MCP_OUTPUT_DIR",
"password": true
},
{
"type": "promptString",
"id": "pdfnative-mcp-cache-dir",
"description": "PDFNATIVE_MCP_CACHE_DIR",
"password": true
},
{
"type": "promptString",
"id": "pdfnative-mcp-port",
"description": "PDFNATIVE_MCP_PORT",
"password": true
},
{
"type": "promptString",
"id": "pdfnative-mcp-http-token",
"description": "PDFNATIVE_MCP_HTTP_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "pdfnative-mcp-max-inflate-bytes",
"description": "PDFNATIVE_MCP_MAX_INFLATE_BYTES",
"password": true
},
{
"type": "promptString",
"id": "pdfnative-mcp-creation-date",
"description": "PDFNATIVE_MCP_CREATION_DATE",
"password": true
},
{
"type": "promptString",
"id": "source-date-epoch",
"description": "SOURCE_DATE_EPOCH",
"password": true
},
{
"type": "promptString",
"id": "pdfnative-mcp-tsa-url",
"description": "PDFNATIVE_MCP_TSA_URL",
"password": true
},
{
"type": "promptString",
"id": "pdfnative-mcp-tsa-auth",
"description": "PDFNATIVE_MCP_TSA_AUTH",
"password": true
},
{
"type": "promptString",
"id": "pdfnative-mcp-revocation",
"description": "PDFNATIVE_MCP_REVOCATION",
"password": true
},
{
"type": "promptString",
"id": "pdfnative-mcp-network-allowed-hosts",
"description": "PDFNATIVE_MCP_NETWORK_ALLOWED_HOSTS",
"password": true
},
{
"type": "promptString",
"id": "pdfnative-mcp-network-timeout-ms",
"description": "PDFNATIVE_MCP_NETWORK_TIMEOUT_MS",
"password": true
}
],
"servers": {
"pdfnative-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"pdfnative-mcp"
],
"env": {
"PDFNATIVE_MCP_OUTPUT_DIR": "${input:pdfnative-mcp-output-dir}",
"PDFNATIVE_MCP_CACHE_DIR": "${input:pdfnative-mcp-cache-dir}",
"PDFNATIVE_MCP_PORT": "${input:pdfnative-mcp-port}",
"PDFNATIVE_MCP_HTTP_TOKEN": "${input:pdfnative-mcp-http-token}",
"PDFNATIVE_MCP_MAX_INFLATE_BYTES": "${input:pdfnative-mcp-max-inflate-bytes}",
"PDFNATIVE_MCP_CREATION_DATE": "${input:pdfnative-mcp-creation-date}",
"SOURCE_DATE_EPOCH": "${input:source-date-epoch}",
"PDFNATIVE_MCP_TSA_URL": "${input:pdfnative-mcp-tsa-url}",
"PDFNATIVE_MCP_TSA_AUTH": "${input:pdfnative-mcp-tsa-auth}",
"PDFNATIVE_MCP_REVOCATION": "${input:pdfnative-mcp-revocation}",
"PDFNATIVE_MCP_NETWORK_ALLOWED_HOSTS": "${input:pdfnative-mcp-network-allowed-hosts}",
"PDFNATIVE_MCP_NETWORK_TIMEOUT_MS": "${input:pdfnative-mcp-network-timeout-ms}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs