siyuan-note-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SIYUAN_TOKEN | No | API token. Only required when authentication is enabled on the SiYuan kernel. | |
| SIYUAN_API_URL | No | The URL of the SiYuan kernel. Alias: SIYUAN_BASE_URL. | http://127.0.0.1:6806 |
| SIYUAN_BASE_URL | No | Alternative environment variable to SIYUAN_API_URL. | http://127.0.0.1:6806 |
| SIYUAN_TIMEOUT_MS | No | Timeout for each request in milliseconds. | 30000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_notebooksA | List every notebook (思源笔记本) in the workspace with its ID, name and open state. Call this first when you need a notebook ID for other tools. |
| search_notesA | Full-text search across the workspace and return matching blocks with their IDs and document paths. Use this to locate content before reading or editing it. Supports SiYuan search syntax, e.g. |
| list_documentsA | List documents in the workspace or in one notebook, most recently updated first. Useful for browsing what exists before searching. |
| get_documentA | Read a document as Markdown. Accepts a document ID or a human-readable path such as |
| get_blockA | Read one block by ID. |
| insert_blockA | Append Markdown as new blocks. With |
| update_blockA | Replace the content of an existing block with new Markdown. The block type may change (e.g. a paragraph into a heading) unless |
| delete_blockA | Delete a block (and its children) by ID. Deleting a document block removes the whole document. Use |
| create_documentA | Create a document from Markdown. |
| rename_documentC | Change the title of a document. Accepts a document ID or a path. |
| remove_documentB | Delete a document. Accepts a document ID or a path. The document is moved to the workspace trash (数据历史) and can be recovered from SiYuan. |
| move_documentA | Move a document under a different parent document, or into a different notebook. |
| sql_queryA | Run a read-only SQL query against the SiYuan index to answer questions the other tools cannot, e.g. counting blocks or filtering by tag/attribute. Main table: |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Most tools target distinct resource+action pairs and descriptions explicitly distinguish reading vs editing. However, delete_block (which can delete a whole document) overlaps with remove_document, and get_document vs get_block require reading descriptions to separate. These are minor and well-clarified.
Nearly every tool follows a clean verb_noun pattern (list_notebooks, get_document, insert_block, update_block, delete_block, create_document, rename_document, remove_document, move_document). The only outlier is sql_query, which is a conventional, idiomatic exception.
13 tools is well within the ideal range and each earns its place across document, block, search, and query operations. No redundant or filler tools.
Document lifecycle (create/read/rename/move/remove) and block CRUD (get/insert/update/delete) are fully covered, plus search and SQL escape hatch. The main gap is notebook-level management — notebooks can only be listed, not created/renamed/deleted.