pypi shiori-mcpstdioMITupdated 3mo ago
A Model Context Protocol (MCP) server for Shiori, the self-hosted bookmark and read-it-later manager.
What can you do with Shiori MCP?
Shiori MCP
A Model Context Protocol (MCP) server for Shiori, the self-hosted bookmark and read-it-later manager.
Capabilities
- Verify Shiori connectivity and authentication
- List bookmarks
- Search bookmarks by title, URL, excerpt, and tag
- Get one bookmark by id or exact URL from the bookmark list
- Add bookmarks with Shiori's required tag-object format
- Update bookmarks via either a full-bookmark payload or common field parameters
- Delete bookmarks by id list
- List tags and bookmark counts
- Rename tags
- List accounts visible to the authenticated session
Installation
pipx install git+https://github.com/rusty4444/shiori-mcp.git
Or from a checkout:
python -m venv .venv
source .venv/bin/activate
pip install -e .
Configuration
| Variable | Required | Description |
|---|---|---|
SHIORI_BASE_URL |
Yes | Base URL of the Shiori instance, e.g. https://shiori.example.com |
SHIORI_SESSION_ID |
Optional | Existing Shiori session id; skips login if provided |
SHIORI_USERNAME |
Required unless session id is set | Shiori username |
SHIORI_PASSWORD |
Required unless session id is set | Shiori password |
SHIORI_TIMEOUT |
No | HTTP timeout in seconds, default 20 |
MCP client config
{
"mcpServers": {
"shiori": {
"command": "shiori-mcp",
"env": {
"SHIORI_BASE_URL": "https://shiori.example.com",
"SHIORI_USERNAME": "your-username",
"SHIORI_PASSWORD": "your-password"
}
}
}
}
Tools
| Tool | Purpose |
|---|---|
shiori_health_check |
Verify API connectivity/authentication |
shiori_list_bookmarks |
List bookmarks with client-side limit/offset |
shiori_search_bookmarks |
Search bookmarks by text and/or tag |
shiori_get_bookmark |
Get one bookmark by id from the bookmark list |
shiori_get_bookmark_by_url |
Get one bookmark by exact URL |
shiori_add_bookmark |
Add a bookmark with optional tags/archive/public flags |
shiori_update_bookmark |
Update a bookmark using full Shiori bookmark JSON |
shiori_update_bookmark_fields |
Update common fields without manually constructing full JSON |
shiori_delete_bookmark |
Delete one bookmark id |
shiori_delete_bookmarks |
Delete bookmark ids from a JSON array |
shiori_list_tags |
List tags and bookmark counts |
shiori_rename_tag |
Rename a tag |
shiori_list_accounts |
List accounts visible to this session |
Development and validation
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -e '.[dev]'
ruff check .
pytest
python scripts/live_docs_test.py
live_docs_test.py validates Shiori public API documentation and repository pages without credentials. Authenticated read/write API behaviours are covered with mocked HTTP tests.
Optional LLM validation can be run with any configured OpenAI-compatible endpoint. For local Aeon validation, set AEON_BASE_URL and optionally AEON_MODEL / AEON_API_KEY before running python scripts/model_validate.py.
API note
This server targets Shiori's documented legacy API under /api/* because the new API v1 is still documented as in development and self-documented at /swagger/index.html on running instances.
Safety
The write-capable tools mutate a Shiori bookmark database. Keep credentials in environment variables or a secret manager, never in source control.
This project was developed with the assistance of AI tools.
Install
Add Shiori MCP to your client. Pick the one you use.
claude mcp add shiori-mcp -- uvx shiori-mcpcodex mcp add shiori-mcp -- uvx shiori-mcpamp mcp add shiori-mcp -- uvx shiori-mcp{
"mcpServers": {
"shiori-mcp": {
"command": "uvx",
"args": [
"shiori-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"shiori-mcp": {
"command": "uvx",
"args": [
"shiori-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"shiori-mcp","command":"uvx","args":["shiori-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"shiori-mcp": {
"command": "uvx",
"args": [
"shiori-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"shiori-mcp": {
"command": "uvx",
"args": [
"shiori-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"shiori-mcp": {
"command": "uvx",
"args": [
"shiori-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"shiori-mcp": {
"type": "local",
"command": "uvx",
"args": [
"shiori-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"shiori-mcp": {
"command": {
"path": "uvx",
"args": [
"shiori-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
uvx shiori-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
13 tools
Shiori MCP exposes 13 tools to a connected agent.
- shiori_health_check
- Verify API connectivity/authentication
- shiori_list_bookmarks
- List bookmarks with client-side limit/offset
- shiori_search_bookmarks
- Search bookmarks by text and/or tag
- shiori_get_bookmark
- Get one bookmark by id from the bookmark list
- shiori_get_bookmark_by_url
- Get one bookmark by exact URL
- shiori_add_bookmark
- Add a bookmark with optional tags/archive/public flags
- shiori_update_bookmark
- Update a bookmark using full Shiori bookmark JSON
- shiori_update_bookmark_fields
- Update common fields without manually constructing full JSON
- shiori_delete_bookmark
- Delete one bookmark id
- shiori_delete_bookmarks
- Delete bookmark ids from a JSON array
- shiori_list_tags
- List tags and bookmark counts
- shiori_rename_tag
- Rename a tag
- shiori_list_accounts
- List accounts visible to this session
Score
68 / 100
Good
- Documentation22/25
- Maintenance13/25
- Trust13/20
- Capability8/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 93 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 13 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.0Latest | May 18, 2026 |