kiwiki (natorus87/kiwiki) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 56 tools. No publisher has claimed this listing.

C
Warning
74/100

kiwiki

A self-hosted Markdown knowledge base and Agent Harness with an MCP server that enables AI agents to read and write notes, providing persistent memory and a shared workspace for multi-agent collaboration.

Warning. Serious findings were identified. Review the full report before connecting. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we 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

natorus87

Source: Glama

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

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
🚨
Code appears obfuscated
1 file are unreadable to a human reviewer. Cannot audit what they do.
🔐
You'll be asked for 1 credential: KIWIKI_OAUTH_TOKEN_SECRET
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.
configKIWIKI_BASE_URLPublic base URL used in MCP and OAuth metadata; derived from the request when empty
configKIWIKI_MCP_MAX_SSE_SESSIONSMaximum simultaneous legacy SSE sessions
configKIWIKI_MCP_SSE_QUEUE_MAX_MESSAGESMaximum queued messages per legacy SSE session
configKIWIKI_OAUTH_MAX_CODESMaximum pending OAuth authorization codes per process
configKIWIKI_OAUTH_TOKEN_TTL_SECONDSOAuth access-token lifetime
configKIWIKI_OAUTH_REFRESH_TOKEN_TTL_SECONDSOAuth refresh-token lifetime
configKIWIKI_OAUTH_MAX_CLIENTSMaximum dynamically registered OAuth clients per process
configKIWIKI_OAUTH_CLIENT_TTL_SECONDSInactive dynamic-client lifetime
configKIWIKI_OAUTH_MAX_REDIRECT_URISMaximum redirect URIs per dynamic client
configKIWIKI_MCP_UPLOAD_TTL_SECONDSLifetime of incomplete staged uploads
configKIWIKI_MCP_MAX_UPLOAD_BYTESMaximum assembled bytes per staged upload
configKIWIKI_MCP_MAX_UPLOAD_CHUNKSMaximum chunks per staged upload
configKIWIKI_MCP_MAX_STAGED_UPLOADSMaximum staged chunked uploads per process
configKIWIKI_MCP_MAX_STAGED_BYTESMaximum aggregate bytes held by staged uploads
🔐 secretKIWIKI_OAUTH_TOKEN_SECRETStable OAuth signing secret; explicitly required by the bundled Compose and Helm deployments
configKIWIKI_OAUTH_ALLOWED_REDIRECT_HOSTSAdditional comma-separated OAuth redirect hosts; HTTPS or loopback only
configKIWIKI_LOG_LEVELPython log level
configKIWIKI_CORS_ORIGINSComma-separated list of allowed CORS origins; empty disables cross-origin access
configKIWIKI_TRUST_PROXYTrust forwarding headers and use secure cookies behind a TLS reverse proxy
configKIWIKI_RATE_LIMIT_ENABLEDEnables login, OAuth, UI, read, and write rate limits
configKIWIKI_TRUSTED_PROXY_CIDRSTrusted proxy networks allowed to supply X-Forwarded-For; required when proxy trust is enabled
configKIWIKI_LOGIN_LIMIT/login brute-force attempts per minute and client IP
configKIWIKI_OAUTH_LIMITOAuth handshake requests (authorize/token/register) per minute and client IP
configKIWIKI_WRITE_LIMITAuthenticated write requests per minute and client IP
configKIWIKI_UI_LIMITWeb UI fragment requests per minute and client IP
configKIWIKI_READ_LIMITAuthenticated read requests per minute and client IP
configKIWIKI_SESSION_TTL_SECONDSSliding web-session lifetime (30 days); the browser cookie is renewed during activity, sessions are stored hashed and revoked after user/role changes
configKIWIKI_DATA_DIRData directory for all wiki files
configKIWIKI_MAX_TENANT_FILESMaximum Markdown files per user workspace
configKIWIKI_MAX_TENANT_BYTESMaximum total Markdown bytes per user workspace
configKIWIKI_MAX_LIST_ITEMSMaximum entries returned by one directory listing
configKIWIKI_MAX_RECURSIVE_LIST_ITEMSMaximum entries returned by recursive listings
configKIWIKI_USERSUse the API key configured in .
configKIWIKI_KNOWLEDGE_MIN_FREE_BYTES
configKIWIKI_KNOWLEDGE_ENABLEDEnables the optional deterministic per-user knowledge index and worker
configKIWIKI_KNOWLEDGE_BACKFILL_BATCH_SIZEMaximum queued documents processed per tenant and worker pass
configKIWIKI_KNOWLEDGE_MAX_DB_BYTESPer-user knowledge database size ceiling
// 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

56/56 tools missing one or more hints — read_index (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_files (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); read_file (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +53 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.

No eval / new Function

2 eval() or new Function() calls — dynamic code execution

Replace eval / Function with explicit parsing or safer alternatives.

Readable source code

1 file are minified or bundled, which is usually build output rather than concealment

Ship unminified, readable source.

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 4 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/natorus87/kiwiki?variant=verified)](https://m8ven.ai/mcp/natorus87/kiwiki)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 36dc6cbb77fa6c9fd5bb45494d154c40e5e3994c
code hash: ee0b42c4dd30a08d8ce0f1653f0264992c6e225b27b70c0898d729a809f90ba5
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