Supports Node.js integration through mcp-remote package for clients that don't support HTTP-based communication, allowing connection to the MCP server via stdio interface.
Uses npm to install and run the mcp-remote package as a bridge between traditional stdio-based MCP clients and the HTTP-based server.
Enables interaction with SiYuan note-taking application, providing search capabilities (keyword and SQL), document retrieval (fetching kramdown by ID and listing notebooks), and writing operations (appending content to diary or specific documents).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@syplugin-anMCPServersearch my notes for meeting minutes from last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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!
Related MCP server: MCP Apple Notes
🔧 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;
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 |
Provides MCP service within the terminal software Tabby; MIT License | Implementation method of MCP service | |
System Prompt CC BY-SA 4.0 | System Prompts etc. which locate at |
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.