SiYuan MCP Server (Wenri/siyuan-mcp) is an MCP server listed on the M8ven Trust Index. It scores 68 out of 100, grade C. It declares 61 tools. No publisher has claimed this listing.
Enables AI assistants like Claude to interact with your SiYuan knowledge base through a secure, authenticated API.
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
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
Wenri
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.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
siyuan_upload_assetsUpload one or more files to SiYuan assets. Provide either content (base64/JSON) or a URL to fetch from. Can optionally auto-insert all uploaded assets into a document in order.
siyuan_set_block_attributesSet, update, or delete attributes for a specific block. To delete an attribute, set its value to an empty string.
siyuan_get_block_attributesGet all attributes of a specific block.
siyuan_batch_set_attributesSet attributes on multiple blocks at once. More efficient than calling set_block_attributes multiple times.
siyuan_insert_blockInsert a new block at a specified position. Content must be in markdown format. Position is anchored by one of: `nextID` (ID of block after), `previousID` (ID of block before), or `parentID` (parent block ID). `nextID` has highest priority.
siyuan_prepend_blockInsert a new block as the first child of a parent container block. Content must be in markdown format.
siyuan_append_blockInsert a new block as the last child of a parent container block. Content must be in markdown format.
siyuan_update_blockUpdate an existing block's content by ID. Content must be in markdown format. Note: for container blocks (list, blockquote, super block), child block IDs will be regenerated. To preserve custom block attributes, append an IAL line at the end (e.g. `{: custom-foo="bar"}`); use `siyuan_get_block_kramd…
siyuan_fold_blockFold (collapse) a block to hide its children. Works on headings and other container blocks.
siyuan_unfold_blockUnfold (expand) a block to show its children.
siyuan_delete_blockDelete one or more blocks by their IDs. This action is irreversible.
siyuan_append_to_dailynotesiyuan_list_notebookList all notebooks in SiYuan and return their metadata(such as id, open status, dailyNoteSavePath etc.).
siyuan_read_dailynoteRead the content of a daily note for a specific date.
siyuan_read_doc_contentRetrieve the content of a document or block by its ID or path
siyuan_get_block_kramdownGet block content in Kramdown format from SiYuan. Unlike plain text, Kramdown preserves all rich formatting including colors, attributes, and IDs. Use this tool before modifying blocks to ensure formatting is preserved.
siyuan_get_hpathGet the human-readable path (hpath) for a document or block. Optionally includes document outline for context.
siyuan_get_doc_outlineGet the outline (table of contents) of a document. Returns headings hierarchy which helps understand document structure.
siyuan_export_htmlExport a document as HTML. Useful for getting a rendered preview of the document content.
siyuan_append_markdown_to_docAppend Markdown content to the end of a document in SiYuan.
siyuan_create_note_with_mdCreate a new note under a parent document in SiYuan with a specified title and Markdown content.
siyuan_create_new_note_with_markdown_contentCreate a new note under a parent document in SiYuan with a specified title and Markdown content.
siyuan_rename_docRename a document.
siyuan_remove_docDelete a document. This action moves the document to trash and is irreversible.
siyuan_rename_notebookRename an existing notebook in SiYuan.
siyuan_read_fileRead a file from SiYuan workspace. For text files, returns content in structured data. For media files (images/audio), returns metadata in structured data and the binary content as separate MCP content blocks. For other binary files, returns metadata with download URL only.
siyuan_write_fileWrite content to a file in SiYuan workspace. Content can be text, base64-encoded binary, JSON object/array, or a URL to fetch from.
siyuan_remove_fileDelete a file or directory from SiYuan workspace.
siyuan_rename_fileRename or move a file within SiYuan workspace.
siyuan_list_dirList contents of a directory in SiYuan workspace. Returns file/directory names with metadata.
siyuan_create_dirCreate a new directory in SiYuan workspace.
siyuan_create_archiveCreate a zip archive from files or directories in SiYuan workspace. Returns a download URL for the zip file. Can archive any workspace path including assets, widgets, notebooks, etc.
siyuan_create_flashcards_with_new_docCreate New Document, and Make Flashcards with Specific Method
siyuan_create_flashcardsCreate flashcards from one or more block IDs.
siyuan_delete_flashcardsDelete flashcards from a deck using their corresponding block IDs.
siyuan_markdown_syntax_helpProvides help with the Markdown syntax used in SiYuan, including SQL embed blocks, block references, and super block layout syntax.
siyuan_template_function_helpProvides help with the template functions available in SiYuan, including .action{} syntax, Sprig functions, and built-in variables.
siyuan_move_docs_by_idsMove one or more documents to a target location. Documents can be moved under a parent document or to the root of a notebook.
siyuan_move_block_by_idMove one or more blocks (paragraph, heading, superblock, table, etc.) to a target location. Blocks are moved in order, maintaining their relative sequence. Does not support moving document blocks — use siyuan_move_docs_by_ids for documents.
siyuan_get_doc_backlinksRetrieve all documents or blocks that reference a specified document or block within the workspace. The result includes the referencing document's ID, name, notebook ID, and path. Useful for understanding backlinks and document relationships within the knowledge base.
siyuan_list_sub_docsRetrieve the basic information of sub-documents under a specified document within the SiYuan workspace. Useful for analyzing document structure and hierarchy relationships.
siyuan_get_children_blocksGet all child blocks under a parent block by its ID. This includes directly nested blocks and blocks under headings. Long block content will be abbreviated. Useful for understanding block hierarchy and content organization.
siyuan_find_blockFind blocks by text content using full-text search. Searches paragraphs, headings, and other content blocks. Optionally filter by document or notebook using the scope parameter. For complex queries with date ranges, path restrictions, or metadata filtering, use `siyuan_query_sql` instead.
siyuan_searchDeprecated alias for siyuan_find_block. Perform a keyword-based full-text search across blocks in SiYuan. Use `siyuan_find_block` for the full feature set including scope filtering and hpath support.
siyuan_query_syntaxProvides documentation about SiYuan's advanced query syntax for searching content blocks, including boolean operators (AND, OR, NOT).
siyuan_database_schemaProvides the SiYuan database schema, including table names, field names, and their relationships, to help construct valid SQL queries for retrieving notes or note content. Returns the schema in markdown format.
siyuan_sql_cheatsheetProvides a SQL cheatsheet with query examples for SiYuan database, including FTS5 full-text search, window functions, JSON operations, and common patterns.
siyuan_query_sqlExecute SQL queries on SiYuan's SQLite database (read-only). This tool is also used when you need to search notes content. Always use the 'siyuan_database_schema' tool to understand the database schema, including table names, field names, and relationships, before writing your query. Supports advanc…
siyuan_fulltext_searchFast full-text search using FTS5 with BM25 relevance ranking. Returns matching blocks with highlighted snippets. Supports FTS5 query syntax: AND (implicit), OR, NOT, "exact phrase", prefix*, column:term.
siyuan_create_templateCreate a new template file or overwrite an existing one in the SiYuan workspace. Templates are stored as .md files under /data/templates/.
siyuan_search_templateSearch for existing templates within the SiYuan workspace using a keyword. Returns a list of matching template names.
siyuan_render_templateRender a template and insert the result into a specified document. The template is rendered with the document as context, then the rendered content is prepended to the document.
siyuan_get_raw_templateRetrieve the raw source content of a template file. Useful for inspecting or editing the template structure.
siyuan_remove_templateDelete a template file from the workspace. This action is permanent.
siyuan_preview_rendered_templateGenerate the rendered DOM of a template without modifying the document. Use this to check the output or get the content for further processing before any insertion.
siyuan_render_sprig_templateRender a Sprig template string. Useful for testing template expressions without creating a template file.
get_current_timesiyuan_push_notificationPush a notification message to the SiYuan UI. Useful for notifying the user about task progress or completion.
siyuan_reindex_docReindex a document tree. Useful after batch operations to ensure the index is up to date.
siyuan_flush_transactionFlush pending database transactions. Call this after write operations (insert/update/delete blocks) if you need to immediately query the updated data. SiYuan uses async write queues for performance, so this ensures all pending writes are committed.
siyuan_generate_answer_with_docThis tool provides a Retrieval-Augmented Generation (RAG) based Q&A capability. It generates context-aware answers using only the notes that the user has explicitly indexed from their siyuan-notes. Please note: the tool does not access or use all documents—only those that have been indexed by the us…
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
hono: CORS Middleware reflects any Origin with credentials when `origin` defaults to the wildcard
lodash vulnerable to Code Injection via `_.template` imports key names
undici vulnerable to cross-user information disclosure and parse-time crash via degenerate private cache directives
undici vulnerable to cross-origin request routing via SOCKS5 proxy pool reuse
undici vulnerable to TLS certificate validation bypass via dropped requestTls in SOCKS5 ProxyAgent
RAG_API_KEYOptional RAG backend API keyRAG_BASE_URLOptional RAG backend URL for vector searchSIYUAN_KERNEL_TOKENwrangler secret putSIYUAN_KERNEL_URLYes SiYuan kernel URLAll four hints declared on every tool
61/61 tools missing one or more hints — siyuan_upload_assets (missing: openWorldHint); siyuan_set_block_attributes (missing: openWorldHint); siyuan_get_block_attributes (missing: destructiveHint, idempotentHint, openWorldHint), +58 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.
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Tool test coverage
Only 2/61 tools referenced in tests (3%)
Write tests that reference each tool by name so every tool has at least one test.
Production dependencies are patched
0 critical, 2 high severity in production deps — hono@4.12.8 (high), lodash-es@4.17.23 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Dev dependencies
4 critical/high in dev-only deps (does not ship to users)
Upgrade dev dependencies when convenient.
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/wenri/siyuan-mcp)?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