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.

C
Caution
68/100

SiYuan MCP Server

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

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

Wenri

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
⚠️
Known vulnerabilities in dependencies: 6 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
🔐
You'll be asked for 2 credentials: RAG_API_KEY, SIYUAN_KERNEL_TOKEN
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes61 tools

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_assets

Upload 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_attributes

Set, update, or delete attributes for a specific block. To delete an attribute, set its value to an empty string.

siyuan_get_block_attributes

Get all attributes of a specific block.

siyuan_batch_set_attributes

Set attributes on multiple blocks at once. More efficient than calling set_block_attributes multiple times.

siyuan_insert_block

Insert 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_block

Insert a new block as the first child of a parent container block. Content must be in markdown format.

siyuan_append_block

Insert a new block as the last child of a parent container block. Content must be in markdown format.

siyuan_update_block

Update 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_block

Fold (collapse) a block to hide its children. Works on headings and other container blocks.

siyuan_unfold_block

Unfold (expand) a block to show its children.

siyuan_delete_block

Delete one or more blocks by their IDs. This action is irreversible.

siyuan_append_to_dailynote
siyuan_list_notebook

List all notebooks in SiYuan and return their metadata(such as id, open status, dailyNoteSavePath etc.).

siyuan_read_dailynote

Read the content of a daily note for a specific date.

siyuan_read_doc_content

Retrieve the content of a document or block by its ID or path

siyuan_get_block_kramdown

Get 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_hpath

Get the human-readable path (hpath) for a document or block. Optionally includes document outline for context.

siyuan_get_doc_outline

Get the outline (table of contents) of a document. Returns headings hierarchy which helps understand document structure.

siyuan_export_html

Export a document as HTML. Useful for getting a rendered preview of the document content.

siyuan_append_markdown_to_doc

Append Markdown content to the end of a document in SiYuan.

siyuan_create_note_with_md

Create a new note under a parent document in SiYuan with a specified title and Markdown content.

siyuan_create_new_note_with_markdown_content

Create a new note under a parent document in SiYuan with a specified title and Markdown content.

siyuan_rename_doc

Rename a document.

siyuan_remove_doc

Delete a document. This action moves the document to trash and is irreversible.

siyuan_rename_notebook

Rename an existing notebook in SiYuan.

siyuan_read_file

Read 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_file

Write 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_file

Delete a file or directory from SiYuan workspace.

siyuan_rename_file

Rename or move a file within SiYuan workspace.

siyuan_list_dir

List contents of a directory in SiYuan workspace. Returns file/directory names with metadata.

siyuan_create_dir

Create a new directory in SiYuan workspace.

siyuan_create_archive

Create 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_doc

Create New Document, and Make Flashcards with Specific Method

siyuan_create_flashcards

Create flashcards from one or more block IDs.

siyuan_delete_flashcards

Delete flashcards from a deck using their corresponding block IDs.

siyuan_markdown_syntax_help

Provides help with the Markdown syntax used in SiYuan, including SQL embed blocks, block references, and super block layout syntax.

siyuan_template_function_help

Provides help with the template functions available in SiYuan, including .action{} syntax, Sprig functions, and built-in variables.

siyuan_move_docs_by_ids

Move 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_id

Move 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_backlinks

Retrieve 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_docs

Retrieve 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_blocks

Get 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_block

Find 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_search

Deprecated 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_syntax

Provides documentation about SiYuan's advanced query syntax for searching content blocks, including boolean operators (AND, OR, NOT).

siyuan_database_schema

Provides 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_cheatsheet

Provides a SQL cheatsheet with query examples for SiYuan database, including FTS5 full-text search, window functions, JSON operations, and common patterns.

siyuan_query_sql

Execute 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_search

Fast 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_template

Create a new template file or overwrite an existing one in the SiYuan workspace. Templates are stored as .md files under /data/templates/.

siyuan_search_template

Search for existing templates within the SiYuan workspace using a keyword. Returns a list of matching template names.

siyuan_render_template

Render 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_template

Retrieve the raw source content of a template file. Useful for inspecting or editing the template structure.

siyuan_remove_template

Delete a template file from the workspace. This action is permanent.

siyuan_preview_rendered_template

Generate 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_template

Render a Sprig template string. Useful for testing template expressions without creating a template file.

get_current_time
siyuan_push_notification

Push a notification message to the SiYuan UI. Useful for notifying the user about task progress or completion.

siyuan_reindex_doc

Reindex a document tree. Useful after batch operations to ensure the index is up to date.

siyuan_flush_transaction

Flush 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_doc

This 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

// known CVEs in dependencies6 high1 medium31 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

highhono@4.12.8GHSA-88fw-hqm2-52qc

hono: CORS Middleware reflects any Origin with credentials when `origin` defaults to the wildcard

highlodash-es@4.17.23GHSA-r5fr-rjxr-66jc

lodash vulnerable to Code Injection via `_.template` imports key names

highundici@7.24.5GHSA-4cwx-7wf7-3272

undici vulnerable to cross-user information disclosure and parse-time crash via degenerate private cache directives

highundici@7.24.5GHSA-hm92-r4w5-c3mj

undici vulnerable to cross-origin request routing via SOCKS5 proxy pool reuse

highundici@7.24.5GHSA-vmh5-mc38-953g

undici vulnerable to TLS certificate validation bypass via dropped requestTls in SOCKS5 ProxyAgent

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// 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.
🔐 secretRAG_API_KEYOptional RAG backend API key
configRAG_BASE_URLOptional RAG backend URL for vector search
🔐 secretSIYUAN_KERNEL_TOKENwrangler secret put
configSIYUAN_KERNEL_URLYes SiYuan kernel URL
// quality suggestions

All 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.

// 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/wenri/siyuan-mcp?variant=verified)](https://m8ven.ai/mcp/wenri/siyuan-mcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 2220aa34f2adab64c380d9e59a3f5b6ea314d080
code hash: c35a3492c6878a176c7c1d4db151d6d61f832e2dfc54b56ee8e11311f9ee7ee1
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