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.
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
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
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.
KIWIKI_BASE_URLPublic base URL used in MCP and OAuth metadata; derived from the request when emptyKIWIKI_MCP_MAX_SSE_SESSIONSMaximum simultaneous legacy SSE sessionsKIWIKI_MCP_SSE_QUEUE_MAX_MESSAGESMaximum queued messages per legacy SSE sessionKIWIKI_OAUTH_MAX_CODESMaximum pending OAuth authorization codes per processKIWIKI_OAUTH_TOKEN_TTL_SECONDSOAuth access-token lifetimeKIWIKI_OAUTH_REFRESH_TOKEN_TTL_SECONDSOAuth refresh-token lifetimeKIWIKI_OAUTH_MAX_CLIENTSMaximum dynamically registered OAuth clients per processKIWIKI_OAUTH_CLIENT_TTL_SECONDSInactive dynamic-client lifetimeKIWIKI_OAUTH_MAX_REDIRECT_URISMaximum redirect URIs per dynamic clientKIWIKI_MCP_UPLOAD_TTL_SECONDSLifetime of incomplete staged uploadsKIWIKI_MCP_MAX_UPLOAD_BYTESMaximum assembled bytes per staged uploadKIWIKI_MCP_MAX_UPLOAD_CHUNKSMaximum chunks per staged uploadKIWIKI_MCP_MAX_STAGED_UPLOADSMaximum staged chunked uploads per processKIWIKI_MCP_MAX_STAGED_BYTESMaximum aggregate bytes held by staged uploadsKIWIKI_OAUTH_TOKEN_SECRETStable OAuth signing secret; explicitly required by the bundled Compose and Helm deploymentsKIWIKI_OAUTH_ALLOWED_REDIRECT_HOSTSAdditional comma-separated OAuth redirect hosts; HTTPS or loopback onlyKIWIKI_LOG_LEVELPython log levelKIWIKI_CORS_ORIGINSComma-separated list of allowed CORS origins; empty disables cross-origin accessKIWIKI_TRUST_PROXYTrust forwarding headers and use secure cookies behind a TLS reverse proxyKIWIKI_RATE_LIMIT_ENABLEDEnables login, OAuth, UI, read, and write rate limitsKIWIKI_TRUSTED_PROXY_CIDRSTrusted proxy networks allowed to supply X-Forwarded-For; required when proxy trust is enabledKIWIKI_LOGIN_LIMIT/login brute-force attempts per minute and client IPKIWIKI_OAUTH_LIMITOAuth handshake requests (authorize/token/register) per minute and client IPKIWIKI_WRITE_LIMITAuthenticated write requests per minute and client IPKIWIKI_UI_LIMITWeb UI fragment requests per minute and client IPKIWIKI_READ_LIMITAuthenticated read requests per minute and client IPKIWIKI_SESSION_TTL_SECONDSSliding web-session lifetime (30 days); the browser cookie is renewed during activity, sessions are stored hashed and revoked after user/role changesKIWIKI_DATA_DIRData directory for all wiki filesKIWIKI_MAX_TENANT_FILESMaximum Markdown files per user workspaceKIWIKI_MAX_TENANT_BYTESMaximum total Markdown bytes per user workspaceKIWIKI_MAX_LIST_ITEMSMaximum entries returned by one directory listingKIWIKI_MAX_RECURSIVE_LIST_ITEMSMaximum entries returned by recursive listingsKIWIKI_USERSUse the API key configured in .KIWIKI_KNOWLEDGE_MIN_FREE_BYTESKIWIKI_KNOWLEDGE_ENABLEDEnables the optional deterministic per-user knowledge index and workerKIWIKI_KNOWLEDGE_BACKFILL_BATCH_SIZEMaximum queued documents processed per tenant and worker passKIWIKI_KNOWLEDGE_MAX_DB_BYTESPer-user knowledge database size ceilingTool 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.
[](https://m8ven.ai/mcp/natorus87/kiwiki)?variant=verified from the URL.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