README Documentation
A little MCP server for siyuan-note
A plugin that provides MCP service for Siyuan Note.
⚠️ Breaking changes: Upgrading from v0.1.x to v0.2.x introduces breaking changes. CHANGELOG_zh-CN
✨ Quick Start
- Download from the marketplace or 1. unzip the
package.zipin Release, 2. move the folder toworkspace/data/plugins/, 3. and rename the folder tosyplugin-anMCPServer; - Enable the plugin;
- The plugin listens on port
16806by default (Host:127.0.0.1), please usehttp://127.0.0.1:16806/sseas the server access address;
⭐ If this is helpful to you, please consider giving it a star!
🔧 Supported Tools
| Category | Function Item | Doc Exclusion | Status / Description |
|---|---|---|---|
| Search | Keyword Search | N/A | ⚠️ Temporarily removed; feedback is welcome if needed |
| Search | SQL Search | ⚠️ | Checks exclusion only if: result contains ID AND count < 300 |
| Search | RAG Q&A (Note Index) | - | 🚫 To be removed; new solution coming soon |
| Fetch | Get Doc Markdown via ID | ✅ | — |
| Fetch | Get Block Kramdown via ID | ✅ | — |
| Fetch | List Notebooks | ❌ | — |
| Fetch | Get Backlinks via ID | ✅ | — |
| Fetch | Get List of Sub-documents | ✅ | — |
| Fetch | Get List of Sub-blocks | ✅ | — |
| Fetch | Read Attributes | ✅ | — |
| Fetch | Read Daily Note of Specific Date | - | 🚫 Temporarily removed; feedback welcome |
| Fetch | SiYuan Database Format | - | — |
| Write / Doc | Append to Daily Note | ✅ | — |
| Write / Doc | Append to Doc via ID | ✅ | — |
| Write / Doc | Create New Doc at Position via ID | ✅ | — |
| Write / Doc | Insert Sub-block (Prepend/Append) | ✅ | — |
| Write / Doc | Insert Block (Specific Position) | ✅ | — |
| Write / Doc | Update Block | ✅ | — |
| Write / Card | Create Flashcard via Markdown | ✅ | — |
| Write / Card | Create Flashcard via Block ID | ✅ | — |
| Write / Card | Delete Flashcard via Block ID | ❌ | — |
| Write / Attr | Change Attributes (Add/Del/Edit) | ✅ | — |
| Write / Move | Move Document | ✅ | — |
| Write / Move | Move Block | ✅ | ⚠️ Moving headings requires folding, which loses fold status |
❓ FAQ
-
Q: How to use it in an MCP client?
Please refer to the later sections; -
Q: What are some common MCP clients?
-
Q: Does the plugin support authentication?
- Version v0.2.0 now supports authentication. After setting the authentication token in the plugin settings, the MCP client needs to configure the
authorizationrequest header with the valueBearer YourToken;
- Version v0.2.0 now supports authentication. After setting the authentication token in the plugin settings, the MCP client needs to configure the
-
Q: Can it be used in Docker?
-
No, the plugin relies on a Node.js environment and does not support running on mobile devices or Docker.
To support SiYuan deployed in Docker, it is recommended to switch to other MCP projects. Some relevant projects may be listed here.
Alternatively, decouple this plugin from the SiYuan frontend.
-
How to Configure in an MCP Client?
Different MCP clients require different configuration methods. Please refer to the MCP client documentation.
MCP clients are continuously updated, so the configuration or usage instructions here may not be directly applicable and are for reference only.
Here, we assume: the plugin’s port is
16806, and the authorization token isabcdefg.
Modify the MCP application’s configuration, select the Streamable HTTP type, and configure the endpoint.
Clients Supporting Streamable HTTP
The following configuration uses Cherry Studio as an example. Different MCP clients may require different configuration formats—please refer to the MCP client documentation.
Plugin Without Authorization Token
- Type: Select Streamable HTTP (
streamablehttp); - URL:
http://127.0.0.1:16806/mcp; - Headers: Leave empty;
Plugin With Authorization Token
- Type: Select Streamable HTTP (
streamablehttp); - URL:
http://127.0.0.1:16806/mcp; - Headers:
Authorization=Bearer abcedfg;
Clients Supporting Only Stdio
If the MCP client does not support HTTP-based communication and only supports stdio, a conversion method is needed.
Here, we use node.js + mcp-remote@next.
-
Download Node.js: https://nodejs.org/en/download
-
Install
mcp-remote@next:
npm install -g mcp-remote@next
The following configuration uses 5ire as an example. Different MCP clients may require different configuration formats—please refer to the MCP client documentation.
Plugin Without Authorization Token
Command:
npx mcp-remote@next http://127.0.0.1:16806/mcp
Plugin With Authorization Token
Command:
npx mcp-remote@next http://127.0.0.1:16806/mcp --header Authorization:${AUTH_HEADER}
Environment Variable:
Name: AUTH_HEADER
Value: Bearer abcdefg
🙏 References & Acknowledgements
Some dependencies are listed in
package.json.
| Developer/Project | Project Description | Citation |
|---|---|---|
| thuanpham582002/tabby-mcp-server | Provides MCP service within the terminal software Tabby; MIT License | Implementation method of MCP service |
| wilsons / Frostime | System Prompt CC BY-SA 4.0 | System Prompts etc. which locate at static/ |