C
Caution
74/100
5 days ago

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

juanqui

Source: modelscope

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.

// key findings
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
🔐
You'll be asked for 8 credentials: HF_TOKEN, PDFKB_OPENAI_API_KEY, OPENAI_API_KEY, PDFKB_HUGGINGFACE_API_KEY, PDFKB_OPENROUTER_API_KEY, OPENROUTER_API_KEY, PDFKB_DEEPINFRA_API_KEY, PDFKB_SUMMARIZER_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
🔐 secretHF_TOKEN
configPDFKB_EMBEDDING_PROVIDER
🔐 secretPDFKB_OPENAI_API_KEY2. API key: : "your-deepinfra-api-key-here"
🔐 secretOPENAI_API_KEY
configPDFKB_OPENAI_API_BASE
configPDFKB_KNOWLEDGEBASE_PATH
configKNOWLEDGEBASE_PATH
configPDFKB_CACHE_DIR
configCACHE_DIR
configPDFKB_CHUNK_SIZE
configCHUNK_SIZE
configPDFKB_CHUNK_OVERLAP
configCHUNK_OVERLAP
configPDFKB_MIN_CHUNK_SIZE
configPDFKB_EMBEDDING_BATCH_SIZE
configEMBEDDING_BATCH_SIZE
configPDFKB_VECTOR_SEARCH_K
configVECTOR_SEARCH_K
configPDFKB_FILE_SCAN_INTERVAL
configFILE_SCAN_INTERVAL
configPDFKB_ENABLE_PERIODIC_SCAN
configPDFKB_ENABLE_MANUAL_RESCAN
configPDFKB_EMBEDDING_MODEL
configEMBEDDING_MODEL
configPDFKB_LOCAL_EMBEDDING_MODEL
configPDFKB_LOCAL_EMBEDDING_BATCH_SIZE
configPDFKB_EMBEDDING_DEVICE
configPDFKB_EMBEDDING_CACHE_SIZE
configPDFKB_GGUF_QUANTIZATION
configPDFKB_HUGGINGFACE_EMBEDDING_MODEL
configPDFKB_HUGGINGFACE_PROVIDER
🔐 secretPDFKB_HUGGINGFACE_API_KEY
configPDFKB_MAX_SEQUENCE_LENGTH
configPDFKB_USE_MODEL_OPTIMIZATION
configPDFKB_MODEL_CACHE_DIR
configPDFKB_EMBEDDING_DIMENSION
configPDFKB_FALLBACK_TO_OPENAI
configPDFKB_LOG_LEVEL
configLOG_LEVEL
configPDFKB_PDF_PROCESSING_STRATEGY
configPDF_PROCESSING_STRATEGY
configPDFKB_UNSTRUCTURED_PDF_PROCESSING_STRATEGY
configUNSTRUCTURED_PDF_PROCESSING_STRATEGY
configPDFKB_PDF_PARSER
configPDF_PARSER
configPDFKB_DOCLING_OCR_ENGINE
configDOCLING_OCR_ENGINE
configPDFKB_DOCLING_OCR_LANGUAGES
configDOCLING_OCR_LANGUAGES
configPDFKB_DOCLING_TABLE_MODE
configDOCLING_TABLE_MODE
configPDFKB_DOCLING_FORMULA_ENRICHMENT
configDOCLING_FORMULA_ENRICHMENT
configPDFKB_DOCLING_PROCESSING_TIMEOUT
configDOCLING_PROCESSING_TIMEOUT
configPDFKB_DOCLING_DEVICE
configDOCLING_DEVICE
configPDFKB_DOCLING_MAX_PAGES
configDOCLING_MAX_PAGES
configPDFKB_MARKER_USE_LLM
configMARKER_USE_LLM
configPDFKB_MARKER_LLM_MODEL
configMARKER_LLM_MODEL
🔐 secretPDFKB_OPENROUTER_API_KEY
🔐 secretOPENROUTER_API_KEY
configPDFKB_MINERU_LANG
configMINERU_LANG
configPDFKB_MINERU_METHOD
configMINERU_METHOD
configPDFKB_MINERU_VRAM
configMINERU_VRAM
configPDFKB_DOCUMENT_CHUNKER
configPDFKB_PDF_CHUNKER
configPDF_CHUNKER
configPDFKB_PAGE_CHUNKER_MIN_CHUNK_SIZE
configPDFKB_PAGE_CHUNKER_MAX_CHUNK_SIZE
configPDFKB_PAGE_CHUNKER_MERGE_SMALL
configPDFKB_MARKDOWN_PARSE_FRONTMATTER
configPDFKB_MARKDOWN_EXTRACT_TITLE
configPDFKB_MARKDOWN_PAGE_BOUNDARY_PATTERN
configPDFKB_MARKDOWN_SPLIT_ON_PAGE_BOUNDARIES
configPDFKB_SEMANTIC_CHUNKER_THRESHOLD_TYPE
configPDFKB_SEMANTIC_CHUNKER_THRESHOLD_AMOUNT
configPDFKB_SEMANTIC_CHUNKER_BUFFER_SIZE
configPDFKB_SEMANTIC_CHUNKER_NUMBER_OF_CHUNKS
configPDFKB_SEMANTIC_CHUNKER_SENTENCE_SPLIT_REGEX
configPDFKB_SEMANTIC_CHUNKER_MIN_CHUNK_SIZE
configPDFKB_SEMANTIC_CHUNKER_MIN_CHUNK_CHARS
configPDFKB_WEB_ENABLE
configWEB_ENABLED
configPDFKB_WEB_PORT
configWEB_PORT
configPDFKB_WEB_HOST
configWEB_HOST
configPDFKB_WEB_CORS_ORIGINS
configWEB_CORS_ORIGINS
configPDFKB_ENABLE_HYBRID_SEARCH
configPDFKB_HYBRID_VECTOR_WEIGHT
configPDFKB_HYBRID_TEXT_WEIGHT
configPDFKB_RRF_K
configPDFKB_HYBRID_EXPANSION_FACTOR
configPDFKB_HYBRID_MAX_EXPANDED_LIMIT
configPDFKB_MAX_PARALLEL_PARSING
configPDFKB_MAX_PARALLEL_EMBEDDING
configPDFKB_BACKGROUND_QUEUE_WORKERS
configPDFKB_THREAD_POOL_SIZE
configPDFKB_ENABLE_RERANKER
configPDFKB_RERANKER_PROVIDER
configPDFKB_RERANKER_MODEL
configPDFKB_RERANKER_SAMPLE_ADDITIONAL
configPDFKB_RERANKER_DEVICE
configPDFKB_RERANKER_MODEL_CACHE_DIR
configPDFKB_RERANKER_GGUF_QUANTIZATION
🔐 secretPDFKB_DEEPINFRA_API_KEY
configPDFKB_DEEPINFRA_RERANKER_MODEL
configPDFKB_ENABLE_SUMMARIZER
configPDFKB_SUMMARIZER_PROVIDER
configPDFKB_SUMMARIZER_MODEL
configPDFKB_SUMMARIZER_MAX_PAGES
configPDFKB_SUMMARIZER_DEVICE
configPDFKB_SUMMARIZER_MODEL_CACHE_DIR
configPDFKB_SUMMARIZER_API_BASE
🔐 secretPDFKB_SUMMARIZER_API_KEY
configPDFKB_TRANSPORT
configTQDM_DISABLE
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

5/5 tools missing one or more hints — add_document (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); search_documents (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_documents (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +2 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Destructive tools are labelled

1 tool perform destructive updates without destructiveHint — remove_document deletes at line 982 (file_path.unlink())

Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.

Tool test coverage

2/5 tools referenced in tests (40%)

Write tests that reference each tool by name so every tool has at least one test.

Shell command execution

4 child_process/subprocess calls in production code — runs shell commands (src/pdfkb/embeddings_local.py:232, src/pdfkb/reranker_local.py:184, src/pdfkb/summarizer_local.py:102)

Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 5 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/juanqui-pdfkb-mcp-1nnete?variant=verified)](https://m8ven.ai/mcp/juanqui-pdfkb-mcp-1nnete)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 6d5dc76f4f36f53d1929865bf1e506dcc68b9aca
code hash: 61edff5d4597a43e4621e7aa78fa188444d191d2d527ae1a9dc40796dff43a6c
verified: 8/13/2026, 10:38:33 PM
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client